Android Studio是基于IntelliJ IDEA的官方Android应用集成开发环境(IDE)。除了IntelliJ强大的代码编辑器和开发者工具,Android Studio提供了更多可提高Android应用构建效率的功能,例如:
• 基于Gradle的灵活构建系统。
• 快速且功能丰富的模拟器。
• 可针对所有Android设备进行开发的统一环境。
• Instant Run,可将变更推送到正在运行的应用,无须构建新的APK。
• 帮助构建应用程序和导入示例代码以及GitHub集成。
• 丰富的测试工具和框架。
• 可捕捉性能、易用性、版本兼容性以及其他问题的Lint工具。
• C++和NDK支持。
• 内置对Google云端平台的支持,可轻松集成Google Cloud Messaging和App引擎。
项目结构
Android Studio 中的每个项目包含一个或多个含有源代码文件和资源文件的模块。模块类型包括
- Android 应用模块
- 库模块
- Google App 引擎模块
默认情况下,Android Studio会在Android项目视图中显示项目文件,如上图所示该视图按模块组织结构,便于快速访问项目的关键源文件。
所有构建文件在项目层次结构顶层Gradle Scripts下显示,并且每个应用模块都包含以下文件夹:
- manifests:包含AndroidManifest.xml文件。
- java:包含Java源代码文件,包括JUnit测试代码。
- res:包含所有非代码资源,例如XML布局、UI字符串和位图图像。
磁盘上的Android项目结构与此扁平项目结构有所不同。要查看实际的项目文件结构,可以从Project下拉菜单选择Project
用户还可以自定义项目文件的视图,重点显示应用开发的特定方面。例如,选择项目的Problems视图会显示指向包含任何已识别编码和语法错误(如布局文件中缺少一个XML元素结束标记)的源文件链接
Android Studio主窗口
① 工具栏,提供执行各种操作的工具,包括运行应用和启动Android工具。
② 导航栏,可以帮助在项目中导航,以及打开文件进行编辑。此区域提供Project窗口所示结构的精简视图。
③ 编辑器窗口,是创建和修改代码的区域。编辑器可能因当前文件类型的不同而有所差异。例如,在查看布局文件时,编辑器显示布局编辑器。
④ 工具窗口栏,在IDE窗口外部运行,并且包含可用于展开或折叠各个工具窗口的按钮。
⑤ 工具窗口,提供对特定任务的访问,例如项目管理、搜索和版本控制等。可以展开和折叠这些窗口。
⑥ 状态栏,显示项目和IDE本身的状态以及任何警告或消息。
用户可以通过隐藏或移动工具栏和工具窗口调整主窗口,以便留出更多屏幕空间,还可以使用键盘快捷键访问大多数IDE功能。可以随时通过按两下Shift键或点击Android Studio窗口右上角的放大镜搜索源代码、数据库、操作和用户界面的元素等。此功能非常实用,例如在忘记如何触发特定IDE操作时,可以利用此功能进行查找。
工具窗口
Android Studio不使用默认窗口,而是根据情境在工作时自动显示相关工具窗口。默认情况下,最常用的工具窗口固定在应用窗口边缘的工具窗口栏上。
- 要展开或折叠工具窗口,请在工具窗口栏中点击该工具的名称,还可以拖动、固定、取消固定、关联和分离工具窗口。
- 要返回当前默认工具窗口布局,请点击Window→Restore Default Layout或点击Window→Store Current Layout as Default自定义默认布局。
- 要显示或隐藏整个工具窗口栏,请点击Android Studio窗口左下角的窗口图标。
- 要找到特定工具窗口,请将鼠标指针悬停在窗口图标上方,并从菜单选择相应的工具窗口。还可以使用键盘快捷键打开工具窗口
如果想要隐藏所有工具栏、工具窗口和编辑器选项卡,请点击View→Enter Distraction FreeMode。此操作可启用无干扰模式。要退出“无干扰模式”,请点击View→Exit Distraction FreeMode。
用户可以使用快速搜索在Android Studio中的大多数工具窗口中执行搜索和筛选。要使用快速搜索,请选择工具窗口,然后输入搜索查询。
代码自动完成
Android Studio有三种自动补全代码快捷键
还可以按Alt+Enter组合键执行快速修复并显示建议的操作。
样式和格式化
在编辑时,Android Studio将自动应用代码样式设置中指定的格式设置和样式。可以通过编程语言自定义代码样式设置,包括指定选项卡和缩进、空格、换行、花括号以及空白行的约定。要自定义代码样式设置,请点击File→Settings→Editor→Code Style(在Mac上,点击AndroidStudio→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)是格式化之后的代码。
版本控制基础知识
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菜单选项设置和修改版本控制设置。
Gradle构建系统
Android Studio基于Gradle构建系统,并通过适用于Gradle的Android插件提供更多面向Android的功能。该构建系统可以作为集成工具从Android Studio菜单运行,还可以从命令行独立运行。
可以利用构建系统的功能执行以下操作:
• 自定义、配置和扩展构建流程。
• 使用相同的项目和模块为用户的应用创建多个具有不同功能的APK。
• 在不同源代码集之间重复使用代码和资源。
利用Gradle的灵活性,可以在不修改应用核心源文件的情况下实现以上所有目的。AndroidStudio构建文件以build.gradle命名。
每个项目有一个用于整个项目的顶级构建文件,以及用于各模块的单独的模块层级构建文件。在导入现有项目时,Android Studio会自动生成必要的构建文件。
Debug调试
使用Debug调试功能在调试程序视图中对引用、表达式和变量值进行内联验证,提高代码检查效率
• 变量值
• 引用某选定对象的引用对象
• 方法返回值
• Lambda和运算符表达式
• 工具提示值
要启用Debug调试,请在Debug窗口中点击Settings,然后选中Show Values Inline复选框。
性能监视器
Android Studio提供性能监视器,让用户可以更加轻松地跟踪应用的内存和CPU使用情况、查找已解除内存分配的对象、查找内存泄漏以及优化图形性能和分析网络请求。在设备或模拟器上运行应用时,打开Android Monitor工具窗口,然后点击Monitors标签。
分配跟踪器
Android Studio允许在监视内存使用情况的同时跟踪内存分配情况。利用跟踪内存分配功能,可以在执行某些操作时监视对象被分配到哪些位置。了解这些分配后,就可以相应地调整与这些操作相关的方法调用,从而优化应用的性能和内存使用。
数据文件访问
Systrace、logcat和Traceview等Android SDK工具可生成性能和调试数据,用于对应用进行详细分析。
要查看已生成的数据文件,请打开Captures工具窗口。在已生成的文件列表中,双击相应的文件即可查看数据。右击任何.hprof文件,即可将其转换为标准.hprof文件格式。
代码检查
在每次编译程序时,Android Studio都将自动运行已配置的Lint及其他IDE检查,帮助轻松识别和纠正代码结构质量问题。
Lint工具可检查你的Android项目源文件是否有潜在的错误,以及在正确性、安全性、性能、可用性、无障碍性和国际化方面是否需要优化改进
除了Lint检查,Android Studio还可以执行IntelliJ代码检查和注解验证,以简化编码工作流程。
在使用Android Studio构建和运行应用时,点击窗口底部的Android Monitor查看adb输出和设备日志消息(logcat)
Debug断点调试
Debug断点调试是每个开发工具必备的功能,当然Android Studio也有,使用Debug断点调试可以查看运行中变量的值与表达式的值,可以一行一行代码逐步进行调试。
如果你的程序是逻辑问题(程序本身不报错,但是结果错误),用Debug调试进行问题定位非常方便。
- 设置断点
找到想断点的代码行位置,点击该代码左侧空白处,或者将光标停留在这行代码上,然后按组合键Ctrl+F8(在Mac上,按Command+F8)
- 调试
给需要调试的代码设置断点之后,点击Android Studio工具栏上的Debug App[插图]按钮运行项目。点击这个按钮之后就会以Debug模式运行App。
我们可以使用Debugger标签中的工具来确定应用的状态:
• 要检查变量的对象树,在Variables视图中将其展开。
• 要在当前执行点对某个表达式求值,点击Evaluate Expression [插图]按钮。
• 要前进到下一行代码(而不进入方法),点击Step Over [插图]按钮。
• 要前进到方法调用内的第一行,点击Step Into [插图]按钮。
• 要前进到当前方法之外的下一行,点击Step Out [插图]按钮。• 要让应用继续正常运行,点击Resume Program [插图]按钮。
日志调试
要在代码中写入日志,使用Log类,日志消息可以帮助了解执行流程。android.util.Log常用的方法有以下5个:
• Log.v():对应verbose,调试颜色为黑色的,任何消息都会输出。
• Log.d():对应debug,仅输出debug调试的意思,但它会输出上层的信息。
• Log.i():对应info,一般提示性的消息。
• Log.w():对应warn,输出为蓝色,可以看作warning(警告),一般需要注意优化Android代码。
• Log.e():对应error(异常),输出为红色,红色错误需要认真解决。
这5个方法都有两个参数,第一个参数是tag(为Log打上标签),第二个参数是打印内容。
首先在MainActivity的onCreate中加入打印5种日志的代码。
重新运行程序,然后在Android Monitor标签的logcat中看到输出的日志
① 选择设备。
② 选择运行的程序包名。
③ 选择要显示的日志级别,对应Log打印日志的5种方法。
④ 根据字符串过滤日志,例如这里是根据ansen过滤,日志的tag或内容必须要包含ansen这个字符串才会显示出来。
⑤ 在过滤之后的日志中进行字符串查找。我们在MainActivity的oncreate方法中最后一行用到了java sdk里面的System类来打印,这样也是可以的,但是不推荐使用。System类打印日志没有tag标签,没有日志级别,当日志过多时过滤不方便。