×

【译】遇见Android Studio

96
清风流苏
2016.06.26 16:21* 字数 3797

原文地址:https://developer.android.com/studio/intro/index.html

Android Studio是Android应用开发的官方IDE,基于IntelliJ IDEA构建。在IDEA强大的代码编辑器和开发者工具之上,Android Studio提供了更多增强Android应用开发的特性,比如:

  • 一个弹性的基于Gradle的构建系统
  • 一个快速而功能强大的仿真器
  • 一个统一的开发环境,可用来开发所有Android设备
  • 即时运行,将修改推向你正在运行的App,而无须构建一个新的APK
  • 代码模板和GitHub聚合,帮助你构建常用应用功能以及导入示例代码
  • 可扩展性的测试工具以及框架
  • Lint工具,可用来捕捉性能、可用性、版本兼容性和其他问题。
  • C++和NDK支持
  • 内置对Google云平台的支持,很容易聚合Google云消息和App Engine。

本文提供对Android Studio基本特性的介绍,要查看最新改动,请看Android Studio Release Notes

工程结构


Android Studio中每个工程(Project)包含一个或者多个模块(Module),每个Module可以包含源码和资源文件。Module类型有:

  • Android app modules(应用模块)
  • Library modules(库模块)
  • Google App Engine modules

默认,Android Studio以Android工程视图来显示你的工程文件,如图1所示。这种视图是由Module形式组织,可以很方便地快速访问你工程中的关键源码文件。

图1 Android工程视图形式的工程文件

所有的build文件都可以在顶级标签Gradle Scripts下找到。每个app module包含下面的文件夹:

  • manifests:包含AndroidManifest.xml文件
  • java:包含Java源码文件,以及JUnit测试代码
  • res:包含所有非代码资源,比如XML布局,UI字符串文件和bitmap图片资源等。

Android工程结构在磁盘上的形式与这个扁平化的视图不同,想要看实际的工程结构的话,从工程下拉菜单中选择Project(图1显示为Android)。

你也可以根据你应用开发时关注点的不同,选择不同的工程文件视图。比如,选择Problems视图,将会展示工程中包含任何可识别的编码或者语法错误的文件,比如布局文件中缺少XML元素tag这种。

图2 Problems视图形式的Android工程文件,显示有问题的文件

更多信息,请查看Managing Projects

The User Interface(用户接口)


Android Studio主窗口是由几个逻辑区域构成,如图3所示。

图3 主窗口
  1. 工具栏(toolbar)可以让你执行许多操作,包括运行app以及启动Android tools。
  2. 导航栏(navigation bar)帮助你浏览你的工程以及打开文件用于编辑。
  3. 编辑器窗口(editor window)是你创建和修改代码的地方。根据当前的文件类型,窗口会进行变化。比如,当浏览布局文件时,编辑器窗口会显示布局编辑器以及提供查看相应的XML文件的选项功能。
  4. 工具窗口(Tool windows)让你能够访问具体的任务,比如工程管理,搜索,版本控制等等。你可以展开以及折叠这些窗口。
  5. 状态栏(status bar)显示工程和IDE本身的一些状态,以及任何警告和消息。

你可以管理主窗口来给自己更多的屏幕空间,通过隐藏或者移动工具栏和工具窗口。也可以使用键盘快捷键来访问更多的IDE特性。

在任何时候,你想要搜索源码,数据库,actions,以及用户界面元素等等的时候,都可以双击Shift键,或者点击Android Studio窗口右上角的搜索图标。有时候会非常有用,比如说,你想要定位一个特殊的IDE操作(action),但是你又忘了怎么触发它的时候。

工具窗口Tool windows

代替使用预设的透视视图,Android Studio根据你使用的场景,自动为你展现相应的工具窗口。默认情况下,最常用的工具窗口会固定在工具栏上面。

  • 点击工具名字,可以展开或者折叠工具窗口。
  • 点击Window>Restore Default Layout可以还原到默认工具窗口布局。可以点击Window>Store Current Layout as Default来自定义默认布局。
  • 显示或者隐藏整个工具窗口条:点击Android Studio窗口左下角的窗口图标。
  • 定位一个具体的工具窗口:悬停在窗口图标上,然后从弹出的菜单中进行选择。

你也可以通过键盘快捷键来打开工具窗口。表1列出了最常用的窗口的快捷键。

Tool Window Windows and Linux Mac
Project Alt+1 Command+1
Version Control Alt+9 Command+9
Run Shift+F10 Control+R
Debug Shift+F9 Control+D
Android Monitor Alt+6 Command+6
Return to Editor Esc Esc
Hide All Tool Windows Control+Shift+F12 Command+Shift+F12

如果你想要隐藏所有工具条,工具窗口,以及编辑器tab,点击View > Enter Distraction Free Mode。这将会开启沉浸模式。要退出沉浸模式,点击View > Exit Distraction Free Mode

代码补全

Android Studio有三种代码补全。

Type Description Windows and Linux Mac
Basic Completion 为变量,类型,方法,表达式等等提供基本的建议。如果在一行中调用基本补全两次,你可以看到更多的结果。 Control+Space Control+Space
Smart Completion 基于长下文选择相关的建议. 比如期望的类型和数据流等。一行中调用两次,可以看到更多结果 Control+Shift+Space Control+Shift+Space
Statement Completion 补全当前语句, 添加缺少的括号,引号,格式化等等 Control+Shift+Enter Shift+Command+Enter

你也可以执行快速修复和显示意图行为通过按下 Alt+Enter

更多关于代码补全的信息,请查看 Code Completion

导航

下面是一些小提示可以帮助你在Android Studio中玩的风生水起。

  • 在最近访问的文件中切换,可以使用Control+E (Command+E / Mac)
  • 查看当前文件结构,Control+F12 (Command+F12 / Mac)。使用这个操作可以很方便的在当前文件的任何部分进行导航。
  • 搜索并且导航到你工程中的一个具体的类文件,使用Control+N (Command+O / Mac)。如果在同一行执行两次,会显示工程以外的类文件结果。
  • 导航到文件或者文件夹,使用Control+Shift+N (Command+Shift+O / Mac)。搜索文件夹而不是文件的时候,在你的搜索表达式后面加上斜杠 /
  • 查找引用类、方法、属性、参数,或者当前光标所在位置语句的地方,可以使用Alt+F7

样式和格式化(Style and Formatting)

当你开始编辑的时候,Android Studio根据你的代码样式设置自动应用格式化和样式。你可以根据不同的编程语言定制代码风格设置,点击 File > Settings > Editor > Code Style (Android Studio > Preferences > Editor > Code Style on a Mac.)
尽管IDE自动为你引用格式化,你也可以通过调用格式化代码操作(Control+Alt+L)来显式格式化代码,或者按下Control+Alt+I来自动缩进所有行。

图4 代码格式化前
图5 代码格式化后

版本控制基础

Android Studio支持多种版本控制系统(VCS),包括Git,GitHub,CVS,Mercurial,Subversion,以及Google Cloud Source Repositories(Google云源码仓库)。

在将你的app导入Android Studio后,可以使用Android Studio VCS菜单项来开启对你的版本控制系统的支持。创建仓库,导入新的文件到版本控制,以及执行一些其他的版本控制操作:

  1. 从Android Studio VCS菜单中,点击Enable Version Control Integration
  2. 从弹出的下拉菜单中,选择一个版本控制系统关联到当前工程,然后点击OK

VCS菜单现在就会显示一些版本控制选项,基于你选择的系统。

注意:你也可以使用File > Settings > Version Control菜单项设置和修改版本控制设置。

Gradle 构建系统


Android Studio使用Gradle作为构建系统的基石,Android Plugin for Gradle提供了更多Android相关的功能。构建系统作为一个集成工具,可以从Android Studio菜单及单独的命令行运行。你可以使用构建系统的特性做下面的事情:

  • 定制,配置以及扩展构建过程。
  • 使用同一个工程和模块,根据不同的特性创建多个APK
  • 跨源复用代码和资源

通过利用Gradle的灵活性,你可以实现上面的这些而无需修改你的应用的核心源码。Android Studio构建文件命名为build.gradle。它们是简单的文本文件,使用Groovy语法根据Gradle的Android插件版本(Android Plugin for Gradle)提供构建元素来配置。每个工程Project有一个对整个工程的顶级构建文件,以及多个单独的模块Module级别构建文件用于每个Module。当你导入一个存在的工程时,Android Studio会自动生成必要的构建文件。

学习更多有关构建系统和如何配置,参见 Configure Your Build

Build Variants(构建变种)

构建系统可以让你从一个单独的工程创建不同版本的应用程序。这将是非常有用的,当你的APP有两个版本,一个免费版本和一个付费版本,或者如果你想要在Google Play上根据不同设备配置分发多个APK的时候。

更多信息关于build variants,参见 Configuring Gradle Builds

APK Splits(APK 切割)

APK分割可以让你基于屏幕分辨率或者ABI创建多个APK。比如,APK分割允许你创建一个单独的hdpi或者mdpi应用版本,并且把他们仍然看作是同一个变种,可以共享测试app,javac, dx和ProGuard设置。

更多信息关于使用APK分割,参见APK Splits

资源压缩(Resource Shrinking)

Android Studio中的资源压缩指从你打包的app中自动移除不用的资源和library依赖。比如说,如果你的应用使用Google Play Services访问Google Drive功能,但你当前没有使用Google Sign-in,那么资源压缩可以移除登录相关按钮的drawable资源。

注意:资源压缩可以和代码压缩工具结合使用,比如ProGuard。

更多关于代码和资源压缩信息,参见Shrink Your Code and Resources.

管理依赖

你的工程依赖在build.gradle文件中由具体名字指明。Gradle负责找出相关依赖,并且在你的构建过程中可用。你可以在build.gradle文件中声明模块依赖,远程二进制依赖,以及本地二进制依赖。Android Studio默认使用jcenter仓库来配置工程(这个配置是包括在工程底层配置文件中)。

更多关于配置依赖的信息,参见Configure Build Variants.

调试和监测工具 Debug and Profile Tools


Android Studio辅助你调试和改善代码性能,包括内联调试和性能分析工具。

内联调试

使用内联调试可以增强在调试视图代码走读过程的信息,包括引用、表达式和变量的验证。
内联调试信息包括:

  • 内联变量值
  • 引用选择对象的参考对象
  • 方法返回值
  • Lambda和操作表达式
  • 提示值
图6 一个内联变量值

开启内联调试,在Debug窗口,点击Settings,勾选Show Values Inline

性能监测器

Android Studio提供性能监测器,因此你可以更容易地跟踪你的APP的内存和CPU使用情况,发现释放对象,定位内存泄漏,优化图标性能,以及分析网络请求。当你的app运行于设备或者模拟器时,打开Android Monitor工具窗口,点击Monitors标签。

更多信息关于性能监测器,参见 Android Monitor.

堆快照 Heap dump

当你在Android Studio中监测内存使用情况时,你可以同时启动垃圾回收,并且将Java堆信息输出一个快照,以Android特有的HPROF二进制格式文件形式保存。HPROF查看器显示类,每个类实例,以及一个引用树,可以帮助你跟踪内存使用情况,发现内存泄漏。

更多信息关于堆快照相关,参见Dumping and Analyzing the Java Heap.

分配跟踪器 Allocation tracker

Android Studio允许你在监测内存使用的时候跟踪内存分配情况。跟踪内存分配让你监测对象在哪里分配的当你执行确定的操作时。了解这些分配情况可以让你优化你的应用性能和内存使用,通过调整这些相关操作的方法调用。

更多信息关于跟踪和分析内存分配,参见Allocation Tracker.

数据文件访问 Data file access

Android SDK工具,比如Systrace, logcat, 和Traceview,为详细的app分析生成性能和调试数据。

打开Captures工具窗口,就可以查看生成的可用的数据文件。在这份生成文件列表中,双击一个文件就可以查看数据,右击任何.hprof文件可以将他们转换成标准的.hprof文件格式。

代码检查

无论什么时候当你编译程序,Android Studio自动运行配置的Lint和别的IDE检查工具来帮助你更容易的识别和纠正代码中的结构质量问题。

Lint工具检查你的Android工程源文件,发现潜在的bug以及优化改进正确性、安全性、性能、可用性、可访问行以及国际化特性。

图7 Android Studio中一次Lint检查结果

除了Lint检查之外,Android Studio还执行IDEA拼写和验证注解来简化你的代码工作流程。

更多信息,参见 Improving Your Code with Lint and lint tool.

Android Studio中的注解 Annotations in Android Studio

Android Studio支持变量,参数和返回值的注解,来帮助你捕捉bug,比如空指针异常和资源类型冲突。Android SDK管理器将支持注解的库打包放在Android Support Repository中方便Android Studio使用。 Android Studio在代码检查阶段验证配置的注解。

更多信息关于Android注解,参见Improving Code Inspection with Annotations.

日志消息 Log messages

当你使用Android Studio构建和运行你的app时,你可以查看adb输出和设备日志消息logcat,通过点击窗口底部的Android Monitor

如果你想要使用Android Device Monitor调试你的app,你可以通过点击 Tools > Android > Android Device Monitor来启动设备监视器。在这里,你可以发现完整的DDMS工具用于配置app,控制设备行为等等。另外,还包括绘制层级查看工具,可以用来帮助优化你的布局。

Android Studio
Web note ad 1