lightbulb_outline Help shape the future of the Google Play Console, Android Studio, and Firebase. Start survey

设置 Android P SDK 和模拟器

Android P 是 Android 平台的下一个重大版本,其包含一些会影响所有应用的行为变更,无论您将 targetSdkVersion 设置为何版本均如此。

为确保您的应用在 Android P 上表现出最佳的外观和行为,请按照此页面中的说明,利用 Android P Preview SDK 构建并运行您的应用。

获取 Android Studio 3.1 或更高版本

Android P Preview SDK 包含一些不兼容 Android Studio 3.0 的变更。

您可以使用 Android Studio 3.1 编译和测试 Android P 应用,但某些 Android P Preview SDK 用户可能会遇到 Gradle 同步故障并且依赖于 Android Studio 3.1 的过时依赖项增多。

为获得最佳的 Android P Preview SDK 开发体验,我们建议您安装最新的 Android Studio 3.2 Canary。

获取 Android Studio 3.2 Canary

您可以保留已安装的现有 Android Studio 版本,因为您可以并行安装多个版本

获取 Android P Preview SDK

在安装并打开 Android Studio 3.2 之后,按照如下步骤安装 Android P Preview SDK:

  1. 点击 Tools > SDK Manager
  2. SDK Platforms 标签下,选择 Android P Preview
  3. SDK Tools 标签下,选择 Android SDK Build-Tools 28-rc1 (或更高版本)。
  4. 点击 OK,开始安装。

更新构建配置

要全面测试应用的 Android P 兼容性并开始使用新 API,请打开您的模块级 build.gradle 文件并更新 compileSdkVersiontargetSdkVersion,如下所示:

android {
    compileSdkVersion 'android-P'

    defaultConfig {
        targetSdkVersion 'P'
    }
    ...
}

注:从 3.0.0 版的 Android Plugin for Gradle 开始,您不再需要声明 buildToolsVersion

要了解 Android P 中可能影响您的应用的变更并开始测试它们,请阅读 Android P 行为变更

要详细了解 Android P 中提供的新 API,请阅读 Android P 功能和 API

在模拟器中运行 Android P

您可以在 Pixel 设备上安装 Android P,不过,在 Android Emulator 上运行 Android P 会方便快捷,还可以让您模拟任何手持式设备或平板设备。

图 1. 带有模拟屏幕缺口的模拟器

要在模拟器中运行 Android P,请按下述方法安装最新的系统映像并创建新的虚拟设备:

  1. 在 Android Studio 3.2 中,点击 Tools > SDK Manager
  2. SDK Platforms 标签下,选择窗口底部的 Show Package Details
  3. Android P Preview下,选择 Google APIs Intel x86 Atom System Image之类的系统映像。
  4. SDK Tools 标签下,选择最新版的 Android Emulator(27.1.12 或更高版本)。
  5. 点击 OK,开始安装。
  6. 在完成安装后,选择 Tools > AVD Manager 并按照说明创建新 AVD

    务必选择不包含 Play 商店的设备定义,对于系统映像,请选择 P

  7. 当您返回 AVD 管理器的虚拟设备列表时,双击您的新虚拟设备以启动它。

请务必使用屏幕缺口来测试您的应用,为耳机和/或摄像头留出空间,如图 1. 所示。您可以按如下方法模拟屏幕缺口:

  1. 启用开发者选项
  2. Developer options 屏幕中,向下滚动至 Drawing 部分并选择 Simulate a display with a cutout
  3. 选择屏幕缺口的大小。

如果您希望根据屏幕缺口的大小和位置来优化 UI,则 P 中提供的新 API 可以助您一臂之力新增对屏幕缺口的支持