1.1 探索Android Studio
Android Studio是基于IntelliJ IDEA的官方Android应用集成开发环境(IDE)。除了IntelliJ强大的代码编辑器和开发者工具,Android Studio提供了更多可提高Android应用构建效率的功能,例如:
• 基于Gradle的灵活构建系统。
• 快速且功能丰富的模拟器。
• 可针对所有Android设备进行开发的统一环境。
• Instant Run,可将变更推送到正在运行的应用,无须构建新的APK。
• 帮助构建应用程序和导入示例代码以及GitHub集成。
• 丰富的测试工具和框架。
• 可捕捉性能、易用性、版本兼容性以及其他问题的Lint工具。
• C++和NDK支持。
• 内置对Google云端平台的支持,可轻松集成Google Cloud Messaging和App引擎。
1.1.1 项目结构
图1-1 Android视图中的项目文件
Android Studio中的每个项目包含一个或多个含有源代码文件和资源文件的模块。模块类型包括:
• Android应用模块。
• 库模块。
• Google App引擎模块。
默认情况下,Android Studio会在Android项目视图中显示项目文件,如图1-1所示。该视图按模块组织结构,便于快速访问项目的关键源文件。
所有构建文件在项目层次结构顶层Gradle Scripts下显示,并且每个应用模块都包含以下文件夹:
• manifests:包含AndroidManifest.xml文件。
• java:包含Java源代码文件,包括JUnit测试代码。
• res:包含所有非代码资源,例如XML布局、UI字符串和位图图像。
磁盘上的Android项目结构与此扁平项目结构有所不同。要查看实际的项目文件结构,可以从Project下拉菜单(在图1-1中显示为Android)选择Project。
用户还可以自定义项目文件的视图,重点显示应用开发的特定方面。例如,选择项目的Problems视图会显示指向包含任何已识别编码和语法错误(如布局文件中缺少一个XML元素结束标记)的源文件链接,如图1-2所示。
图1-2 项目的Problems视图
1.1.2 Android Studio主窗口
Android Studio主窗口由如图1-3所示的几个逻辑区域组成。
图1-3 Android Studio主窗口
① 工具栏,提供执行各种操作的工具,包括运行应用和启动Android工具。
② 导航栏,可以帮助在项目中导航,以及打开文件进行编辑。此区域提供Project窗口所示结构的精简视图。
③ 编辑器窗口,是创建和修改代码的区域。编辑器可能因当前文件类型的不同而有所差异。例如,在查看布局文件时,编辑器显示布局编辑器。
④ 工具窗口栏,在IDE窗口外部运行,并且包含可用于展开或折叠各个工具窗口的按钮。
⑤ 工具窗口,提供对特定任务的访问,例如项目管理、搜索和版本控制等。可以展开和折叠这些窗口。
⑥ 状态栏,显示项目和IDE本身的状态以及任何警告或消息。
用户可以通过隐藏或移动工具栏和工具窗口调整主窗口,以便留出更多屏幕空间,还可以使用键盘快捷键访问大多数IDE功能。
可以随时通过按两下Shift键或点击Android Studio窗口右上角的放大镜搜索源代码、数据库、操作和用户界面的元素等。此功能非常实用,例如在忘记如何触发特定IDE操作时,可以利用此功能进行查找。
1.1.3 工具窗口
Android Studio不使用默认窗口,而是根据情境在工作时自动显示相关工具窗口。默认情况下,最常用的工具窗口固定在应用窗口边缘的工具窗口栏上。
• 要展开或折叠工具窗口,请在工具窗口栏中点击该工具的名称,还可以拖动、固定、取消固定、关联和分离工具窗口。
• 要返回当前默认工具窗口布局,请点击Window→Restore Default Layout或点击Window→Store Current Layout as Default自定义默认布局。
• 要显示或隐藏整个工具窗口栏,请点击Android Studio窗口左下角的窗口图标。
• 要找到特定工具窗口,请将鼠标指针悬停在窗口图标上方,并从菜单选择相应的工具窗口。
还可以使用键盘快捷键打开工具窗口。表1-1列出了最常用的窗口快捷键。
表1-1 部分实用工具窗口的键盘快捷键
如果想要隐藏所有工具栏、工具窗口和编辑器选项卡,请点击View→Enter Distraction Free Mode。此操作可启用无干扰模式。要退出“无干扰模式”,请点击View→Exit Distraction Free Mode。
用户可以使用快速搜索在Android Studio中的大多数工具窗口中执行搜索和筛选。要使用快速搜索,请选择工具窗口,然后输入搜索查询。
1.1.4 代码自动完成
Android Studio有三种自动补全代码快捷键,如表1-2所示。
表1-2 代码自动完成的键盘快捷键
还可以按Alt+Enter组合键执行快速修复并显示建议的操作。
1.1.5 样式和格式化
在编辑时,Android Studio将自动应用代码样式设置中指定的格式设置和样式。可以通过编程语言自定义代码样式设置,包括指定选项卡和缩进、空格、换行、花括号以及空白行的约定。要自定义代码样式设置,请点击File→Settings→Editor→Code Style(在Mac上,点击Android Studio→Preferences→Editor→Code Style)。
IDE会在你写代码时自动对代码进行格式化,也可以通过按快捷键Ctrl+Alt+L(在Mac上,按Opt+Command+L)格式化代码、按快捷键Ctrl+Alt+I(在Mac上,按Alt+Option+I*)自动缩进所有行。图1-4(a)是格式化之前的代码,图1-4(b)是格式化之后的代码。
图1-4-2 格式化前后的代码
1.1.6 版本控制基础知识
Android Studio支持多个版本控制系统(VCS),包括Git、GitHub、CVS、Mercurial、Subversion和Google Cloud Source Repositories。
在将应用导入Android Studio后,使用Android Studio VCS菜单选项启用对所需版本控制系统的VCS支持、创建存储库、导入新文件至版本控制以及执行其他版本控制操作:
• 在Android Studio VCS菜单中点击Enable Version Control Integration。
• 从下拉菜单中选择要与项目根目录关联的版本控制系统,然后点击OK按钮。
此时,VCS菜单将根据选择的系统显示多个版本控制选项。
提 示
还可以使用 File→Settings→Version Control菜单选项设置和修改版本控制设置。
1.1.7 Gradle构建系统
Android Studio基于Gradle构建系统,并通过适用于Gradle的Android插件提供更多面向Android的功能。该构建系统可以作为集成工具从Android Studio菜单运行,还可以从命令行独立运行。
可以利用构建系统的功能执行以下操作:
• 自定义、配置和扩展构建流程。
• 使用相同的项目和模块为用户的应用创建多个具有不同功能的APK。
• 在不同源代码集之间重复使用代码和资源。
利用Gradle的灵活性,可以在不修改应用核心源文件的情况下实现以上所有目的。Android Studio构建文件以build.gradle命名。
这些文件是纯文本文件,使用适用于Gradle的Android插件提供的元素以Groovy语法配置构建。
每个项目有一个用于整个项目的顶级构建文件,以及用于各模块的单独的模块层级构建文件。在导入现有项目时,Android Studio会自动生成必要的构建文件。
1.1.8 Debug调试
使用Debug调试功能在调试程序视图中对引用、表达式和变量值进行内联验证,提高代码检查效率,如图1-5所示。Debug调试信息包括:
• 变量值
• 引用某选定对象的引用对象
• 方法返回值
• Lambda和运算符表达式
• 工具提示值
图1-5 内联变量值
要启用Debug调试,请在Debug窗口中点击Settings,然后选中Show Values Inline复选框。
1.1.9 性能监视器
Android Studio提供性能监视器,让用户可以更加轻松地跟踪应用的内存和CPU使用情况、查找已解除内存分配的对象、查找内存泄漏以及优化图形性能和分析网络请求。
在设备或模拟器上运行应用时,打开Android Monitor工具窗口,然后点击Monitors标签。
1.1.10 分配跟踪器
Android Studio允许在监视内存使用情况的同时跟踪内存分配情况。利用跟踪内存分配功能,可以在执行某些操作时监视对象被分配到哪些位置。了解这些分配后,就可以相应地调整与这些操作相关的方法调用,从而优化应用的性能和内存使用。
1.1.11 数据文件访问
Systrace、logcat和Traceview等Android SDK工具可生成性能和调试数据,用于对应用进行详细分析。
要查看已生成的数据文件,请打开Captures工具窗口。在已生成的文件列表中,双击相应的文件即可查看数据。右击任何.hprof文件,即可将其转换为标准.hprof文件格式。
1.1.12 代码检查
在每次编译程序时,Android Studio都将自动运行已配置的Lint及其他IDE检查,帮助轻松识别和纠正代码结构质量问题。
Lint工具可检查你的Android项目源文件是否有潜在的错误,以及在正确性、安全性、性能、可用性、无障碍性和国际化方面是否需要优化改进,如图1-6所示。
图1-6 Android Studio中Lint检查的结果
除了Lint检查,Android Studio还可以执行IntelliJ代码检查和注解验证,以简化编码工作流程。
1.1.13 日志消息
在使用Android Studio构建和运行应用时,点击窗口底部的Android Monitor查看adb输出和设备日志消息(logcat)。