The Android Developer Challenge is back! Submit your idea before December 2.

探索 Android Studio

Android Studio 是基于 IntelliJ IDEA 的适用于 Android 应用开发的官方集成开发环境 (IDE)。除了 IntelliJ 强大的代码编辑器和开发者工具,Android Studio 还提供更多可提高 Android 应用编译效率的功能,例如:

  • 基于 Gradle 的灵活编译系统
  • 快速且功能丰富的模拟器
  • 统一的环境(供您开发适用于所有 Android 设备的应用)
  • Apply Changes 功能可将代码和资源更改推送给正在运行的应用,而无需重启应用
  • 代码模板和 GitHub 集成,可协助您打造常见的应用功能及导入示例代码
  • 大量的测试工具和框架
  • Lint 工具,能够找出性能、易用性和版本兼容性等方面的问题
  • C++ 和 NDK 支持
  • 内置对 Google Cloud Platform 的支持,可轻松集成 Google 云消息传递和 App Engine

本页面介绍了 Android Studio 的基本功能。要查看最新变更摘要,请参阅 Android Studio 版本说明

项目结构

图 1. Android 视图中的项目文件。

Android Studio 中的每个项目都包含一个或多个含源代码文件和资源文件的模块。模块类型包括:

  • Android 应用模块
  • 库模块
  • Google App Engine 模块

默认情况下,Android Studio 会在 Android 项目视图中显示您的项目文件(如图 1 所示)。该视图按模块组织结构,方便您快速访问项目的关键源文件。

所有编译文件都在顶层的 Gradle Scripts 下显示,且每个应用模块都包含以下文件夹:

  • manifests:包含 AndroidManifest.xml 文件。
  • java:包含 Java 源代码文件,包括 JUnit 测试代码。
  • res:包含所有非代码资源,例如 XML 布局、界面字符串和位图图像。

磁盘上的 Android 项目结构与此扁平表示形式的项目结构有所不同。要查看项目的实际文件结构,请从 Project 下拉菜单中选择 Project(在图 1 中显示为 Android)。

您也可以自定义项目文件的视图,重点显示应用开发的特定方面。例如,选择项目的 Problems 视图会显示指向包含任何已识别编码和语法错误(例如布局文件中缺失一个 XML 元素结束标记)的源文件的链接。

图 2. Problems 视图中的项目文件,显示存在问题的布局文件。

如需了解详情,请参阅项目概览

界面

Android Studio 主窗口由图 3 中标注的几个逻辑区域组成。

图 3. Android Studio 主窗口。

  1. 工具栏供您执行各种操作,其中包括运行应用和启动 Android 工具。
  2. 导航栏助您在项目中导航,以及打开文件进行修改。此区域提供 Project 窗口中所示结构的精简视图。
  3. 编辑器窗口供您创建和修改代码。编辑器可能因当前文件类型而异。例如,查看布局文件时,该编辑器会显示布局编辑器。
  4. 工具窗口栏在 IDE 窗口外部运行,并包含可用于展开或折叠各个工具窗口的按钮。
  5. 工具窗口可让您访问特定任务,例如项目管理、搜索和版本控制等。您可以展开和折叠这些窗口。
  6. 状态栏显示项目和 IDE 本身的状态以及任何警告或消息。

您可以通过隐藏或移动工具栏和工具窗口调整主窗口,以便留出更多屏幕空间。您还可以使用键盘快捷键访问大多数 IDE 功能。

您可以随时按两下 Shift 键或点击 Android Studio 窗口右上角的放大镜,从而搜索源代码、数据库、操作和界面元素等。此功能非常实用,例如在您忘记如何触发特定 IDE 操作时,可以利用此功能进行查找。

工具窗口

Android Studio 不使用预设窗口,而是根据情境在您执行操作时自动显示相关工具窗口。默认情况下,最常用的工具窗口会固定在应用窗口边缘的工具窗口栏上。

  • 要展开或收起工具窗口,请在工具窗口栏中点击该工具的名称。您还可以拖动、固定、取消固定、关联和分离工具窗口。
  • 要返回到当前默认工具窗口布局,请依次点击 Window > Restore Default Layout,或者依次点击 Window > Store Current Layout as Default 自定义默认布局。
  • 要显示或隐藏整个工具窗口栏,请点击 Android Studio 窗口左下角的窗口图标
  • 要找到特定工具窗口,请将鼠标指针悬停在窗口图标上方,并从菜单中选择相应的工具窗口。

您也可以使用键盘快捷键打开工具窗口。表 1 列出了最常用窗口的快捷键。

表 1. 部分实用工具窗口的键盘快捷键。

工具窗口 Windows 和 Linux Mac
项目 Alt+1 Command+1
版本控制 Alt+9 Command+9
运行 Shift+F10 Control+R
调试 Shift+F9 Control+D
Logcat Alt+6 Command+6
返回编辑器 Esc Esc
隐藏所有工具窗口 Control+Shift+F12 Command+Shift+F12

如果您想隐藏所有工具栏、工具窗口和编辑器标签,请依次点击 View > Enter Distraction Free Mode。此操作会启用“无干扰模式”。要退出“无干扰模式”,请依次点击 View > Exit Distraction Free Mode

您可以使用“快速搜索”在 Android Studio 中的大多数工具窗口中执行搜索和过滤。要使用“快速搜索”,请选择工具窗口,然后输入您的搜索查询。

如需了解更多提示,请参阅键盘快捷键

代码完成

Android Studio 有三种代码完成类型,您可以使用键盘快捷键进行访问这些类型。

表 2. 代码完成的键盘快捷键。

类型 说明 Windows 和 Linux Mac
基本完成 显示对变量、类型、方法和表达式等的基本建议。如果连续两次调用基本完成,系统将显示更多结果,包括私有成员和非导入静态成员。 Control+空格键 Control+空格键
智能完成 根据上下文显示相关选项。智能完成可识别预期类型和数据流。如果连续两次调用智能完成,系统将显示更多结果,包括链。 Control+Shift+空格键 Control+Shift+空格键
语句完成 完成当前语句,添加缺失的圆括号、大括号、花括号和格式等。 Control+Shift+Enter Shift+Command+Enter

您还可以按 Alt+Enter 执行快速修复并显示建议的操作。

查找示例代码

Android Studio 中的代码示例浏览器可以帮助您根据项目中当前突出显示的符号查找 Google 提供的优质 Android 代码示例。如需了解详情,请参阅查找示例代码

以下是一些操作 Android Studio 的提示。

  • 使用“最近文件”操作可在最近访问的文件之间切换。Control+E(在 Mac 上,按 Command+E)可调出“最近文件”操作。默认情况下,系统将选择最后一次访问的文件。使用此操作,您还可以通过左侧列访问任何工具窗口。
  • 使用“文件结构”操作可查看当前文件的结构。Control+F12(在 Mac 上,按 Command+F12)可调出“最近文件”操作。您可以使用此操作快速转到当前文件的任何部分。
  • 使用“转到类”操作可搜索并转到项目中的特定类。Control+N(在 Mac 上,按 Command+O)可调出此操作。“转到类”支持复杂的表达式,包括驼峰、路径、直线导航和中间名匹配等。如果连续两次调用此操作,系统将显示项目类以外的结果。
  • 使用“转到文件”操作可转到文件或文件夹。Control+Shift+N(在 Mac 上,按 Command+Shift+O)可调出“转到文件”操作。要搜索文件夹(而不是文件),请在表达式末尾添加“/”。
  • 使用“转到符号”操作可按名称转到方法或字段。Control+Shift+Alt+N(在 Mac 上,按 Command+Option+O)可调出此操作。
  • Alt+F7(在 Mac 上,按 Option+F7)可查找引用当前光标位置处的类、方法、字段、参数或语句的所有代码片段。

样式和格式

在您编辑时,Android Studio 会自动应用代码样式设置中指定的格式和样式。您可以通过编程语言自定义代码样式设置,其中包括指定制表符和缩进、空格、换行、花括号以及空白行的规范。要自定义代码样式设置,请依次点击 File > Settings > Editor > Code Style(在 Mac 上,请依次点击 Android Studio > Preferences > Editor > Code Style)。

虽然 IDE 会在您执行操作时自动应用格式,但您也可以通过按 Control+Alt+L(在 Mac 上,按 Opt+Command+L)显式调用“重新格式化代码”操作,或按 Control+Alt+I(在 Mac 上,按 Control+Option+I)自动缩进所有行。

图 4. 格式化前的代码。

图 5. 格式化后的代码。

版本控制基础知识

Android Studio 支持多个版本控制系统 (VCS),其中包括 Git、GitHub、CVS、Mercurial、Subversion 和 Google Cloud Source Repositories。

在将您的应用导入 Android Studio 后,请使用 Android Studio VCS 菜单选项启用对所需版本控制系统的 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 命名。它们是使用 Android Plugin for Gradle 提供的元素以 Groovy 语法配置编译的纯文本文件。每个项目都有一个用于整个项目的顶级编译文件,以及用于各模块的单独模块级编译文件。在导入现有项目时,Android Studio 会自动生成必要的编译文件。

要详细了解编译系统以及如何进行配置,请参阅配置编译

编译变体

编译系统可帮助您从一个项目创建同一应用的不同版本。如果您同时拥有免费版本和付费版本的应用,或想要在 Google Play 上为不同设备配置分发多个 APK,此功能就十分实用。

如需详细了解如何配置编译变体,请参阅配置编译变体

多 APK 支持

利用多 APK 支持,您可以根据屏幕密度或 ABI 高效创建多个 APK。例如,您可以针对 hdpi 和 mdpi 屏幕密度创建单独的应用 APK,同时仍将它们视为一个变体,并允许它们共享测试 APK、javac、dx 和 ProGuard 设置。

如需详细了解多 APK 支持,请参阅编译多个 APK

资源压缩

Android Studio 中的资源压缩功能可自动从您的封装应用和库依赖项中移除不使用的资源。例如,如果您的应用正在使用 Google Play 服务来访问 Google 云端硬盘功能,且您当前未使用 Google 登录,则资源压缩功能可移除 SignInButton 按钮的各种可绘制资源。

注意:资源压缩与代码压缩工具(例如 ProGuard)协同工作。

如需详细了解压缩代码和资源,请参阅压缩代码和资源

管理依赖项

项目的依赖项在 build.gradle 文件中按名称指定。Gradle 可以自动查找您的依赖项,并在编译中提供这些依赖项。您可以在 build.gradle 文件中声明模块依赖项、远程二进制文件依赖项以及本地二进制文件依赖项。Android Studio 配置项目时默认使用 Maven 中央代码库(该配置包含在项目的顶级编译文件中)。如需详细了解如何配置依赖项,请参阅添加编译依赖项

调试和分析工具

Android Studio 可帮助您调试和改进代码的效果,包括内联调试和性能分析工具。

内联调试

使用内联调试功能在调试程序视图中对引用、表达式和变量值进行内联验证,提高代码走查效率。内联调试信息包括:

  • 内联变量值
  • 引用某选定对象的引用对象
  • 方法返回值
  • Lambda 和运算符表达式
  • 工具提示值

图 6. 内联变量值。

要启用内联调试,请在 Debug 窗口中点击 Settings 图标 ,并选中 Show Values Inline 复选框。

性能分析器

Android Studio 会提供性能分析器,让您可以更加轻松地跟踪应用的内存和 CPU 使用情况、查找已解除内存分配的对象、查找内存泄漏以及优化图形性能和分析网络请求。应用在设备或模拟器上运行时,请打开 Android Profiler 标签。

如需详细了解性能分析器,请参阅性能分析工具

堆转储

在 Android Studio 中分析内存使用情况时,您可以同时启动垃圾回收,并将 Java 堆转储为 Android 专有 HPROF 二进制格式文件中的堆快照。HPROF 查看器会显示类、每个类的实例以及引用树,以帮助您跟踪内存使用情况及找出内存泄漏。

如需详细了解如何使用堆转储,请参阅检查堆和分配情况

内存分析器

您可以使用内存分析器跟踪内存分配情况,并在执行某些操作时监视对象目前的分配位置。了解这些分配情况后,您就可以相应地调整与这些操作相关的方法调用,从而优化应用的性能和内存使用。

如需详细了解如何跟踪和分析分配情况,请参阅检查堆和分配情况

数据文件访问

诸如 Systracelogcat 等 Android SDK 工具可以生成性能和调试数据,用于对应用进行详细分析。

要查看已生成的数据文件,请打开“Captures”工具窗口。在已生成的文件列表中,双击某个文件即可查看相应数据。右键点击任何 .hprof 文件,可将其转换为标准调查 RAM 使用情况文件格式。

代码检查

在您每次编译程序时,Android Studio 都会自动运行已配置的 Lint 及其他 IDE 检查,以帮助您轻松识别和更正代码结构的质量问题。

Lint 工具可以检查您的 Android 项目源文件是否有潜在的错误,以及在正确性、安全性、性能、易用性、无障碍性和国际化方面是否需要优化改进。

图 7. Android Studio 中 Lint 检查的结果。

除了 Lint 检查,Android Studio 还可以执行 IntelliJ 代码检查和注解验证,以简化您的编码工作流程。

如需了解详情,请参阅使用 lint 检查改进您的代码

Android Studio 中的注解

Android Studio 支持为变量、参数和返回值添加注解,以帮助您捕捉错误,例如 null 指针异常和资源类型冲突。Android SDK 管理器将支持注解库纳入 Android 支持代码库中,供与 Android Studio 结合使用。Android Studio 在代码检查期间会验证已配置的注解。

如需详细了解 Android 注解,请参阅使用注解改进代码检查

日志消息

在使用 Android Studio 编译和运行应用时,您可以在 Logcat 窗口中查看 adb 输出和设备日志消息。

性能分析

如果您要分析应用的 CPU、内存和网络性能,请依次点击 View > Tool Windows > Android Profiler,打开 Android Profiler