开发环境

能够在 Chromebook 上运行 Android 应用着实不错,这样可让用户使用大量的 Android 生态系统产品/服务,还能让 Android 开发者有机会吸引 Chrome 操作系统用户。

开发者应特别重视在不同类型的设备上验证他们的应用,因为这样有助于改善用户体验。正因如此,Chrome 操作系统才为 Android 开发者提供了各种工具,供他们在 Chromebook 上部署和测试应用。

无论是直接从 Chrome 操作系统部署 Android 应用(在 Chromebook 中使用 Android Studio),还是从其他设备部署 Android 应用,开发者均可使用 ADB 部署他们的应用,并调试与 Chromebook 的不同交互。如需了解更多详情,请查看下面的步骤。

启用 ADB 调试

以前,开发者只能在开发者模式下在 Chromebook 上使用 ADB,这要求对设备执行 powerwash(重置)操作,并且会降低安全性。幸运的是,自 Chrome 81 推出以来,开发者可让其设备脱离开发者模式,同时仍可直接在 Chrome 操作系统中部署他们开发的应用,只需轻轻一按开关即可。方法如下:

首先,请确保 Chromebook 未处于开发者模式。然后,转到设置并开启 Linux(如果之前未执行过此操作)。

Linux 可用后,打开 Linux 设置,您会发现一个新的选项,即开发 Android 应用,打开该选项。

开启启用 ADB 调试,计算机将重启。

当计算机重启时,您会看到一条消息,告知您可能有一些应用不是从设备上的应用商店下载的。

ADB 现在可以将应用部署到 Chromebook、运行调试命令并直接与设备进行交互了。

为了确保您的 Android 应用可以在各种 Chromebook 设备和可用设备类型上正常运行,Google 建议您在以下设备上对您的应用进行测试:

  • 基于 ARM 的 Chromebook
  • 基于 x86 的 Chromebook
  • 带触摸屏的设备和不带触摸屏的设备
  • 可转换的设备;也就是说,可在笔记本电脑和平板电脑之间切换的设备
  • 带触控笔的设备

从 Chrome 操作系统部署

启用 ADB 调试后,您可以使用 Android Studio 直接将 Android 应用加载到 Chrome 操作系统设备上,或者如果您有 APK,也可以使用终端加载

使用 Android Studio 部署

按照上述说明设置 Android Studio 和 ADB 后,您可以直接从 Android Studio 将应用推送到 Chromebook 的 Android 容器。Chromebook 将在设备下拉菜单中显示为一个选项:

现在,您可以像推送其他任何 Android 设备一样来推送您的应用了!系统将显示 ADB 授权对话框。在您授权后,您的应用将在一个新窗口中打开。

就是这么简单,您现在可以将应用部署到 Chromebook、进行测试和调试了,这样就省去了在开发者模式下的麻烦。

使用终端部署

如有必要,安装 ADB:

    sudo apt install adb

连接到设备:

    adb connect arc

系统会显示 USB 调试的授权弹出窗口。授予权限。

从终端安装您的应用:

    adb install [path to your APK]

从其他设备部署

如果您无法使用上述方法而需要从其他设备推送您的应用,您可以使用 USB网络地址将设备连接到 ADB。

为了从其他设备将 APK 推送到 Chromebook,您必须在开发者模式下启动 Chrome 操作系统,以便配置 Chromebook 并从主机推送应用。请按照以下步骤进入开发者模式

通过 USB 连接到 ADB

  1. 启用 ADB 调试。
  2. 确定您的设备是否支持 USB 调试
  3. 按 Ctrl + Alt + T 以启动 Chrome 操作系统终端。
  4. 输入 shell 以进入 bash 命令 shell:

    crosh> shell
    chronos@localhost / $
    
  5. 输入以下命令以设置您的设备:

    $ sudo crossystem dev_enable_udc=1
    $ sudo reboot
    
  6. 重新启动后,再次打开终端并运行以下命令,以在 Chromebook 的 USB 端口上启用 ADB:

    $ sudo ectool usbpd <port number> dr_swap
    

每次拔下 USB 线再重新插上时,都应使用此命令。如需确保 Chromebook 处于 UFP 模式,您可以运行 ectool usbpd <port number>

  1. 将 USB 线插入设备上支持的端口
  2. 通过主机上的 Android SDK 平台工具运行 adb devices,可以看到您的 Chromebook 列为 ADB 支持的设备。
  3. 在 Chromebook 上,当系统提示您是否允许使用调试程序时,点击允许。您的 ADB 会话即已建立。

通过网络连接到 ADB

  1. 启用 ADB 调试。

为了通过网络进行调试,您必须将 Chrome 操作系统防火墙配置为允许传入 ADB 连接:

  1. 按 Ctrl + Alt + T 以启动 Chrome 操作系统终端。
  2. 输入 shell 以进入 bash 命令 shell:

    crosh> shell
    chronos@localhost / $
    
  3. 输入以下命令,设置开发者功能并启用磁盘写入权限,以更改防火墙设置。如果您需要为 chronos 用户输入 sudo 密码,可以通过在 VT-2 提示符(按 Ctrl + Alt + 向前箭头即可访问该提示符)下运行 chromeos-setdevpassword 来设置(重置)一个密码。您需要输入自己的 root 密码。

    $ sudo crossystem dev_boot_signed_only=0
    $ sudo /usr/libexec/debugd/helpers/dev_features_rootfs_verification
    $ sudo reboot
    
  4. sudo reboot 命令会重启您的 Chromebook。您可以按 Tab 键来启用文件名自动填充功能。您只能在 Chromebook 上完成一次此过程。

设备重启后,请登录您的测试帐号并输入以下命令,以启用安全 shell 并正确配置防火墙:

    $ sudo /usr/libexec/debugd/helpers/dev_features_ssh

该命令完成后,您可以退出 shell。

获取 Chromebook 的 IP 地址:

  1. 点击屏幕右下角区域的时钟。
  2. 点击齿轮图标。
  3. 点击您连接到的网络类型(WLAN 或移动数据网络),然后点击相应网络的名称。
  4. 记下 IP 地址。

连接到 Chromebook:

  1. 返回开发计算机,并使用 ADB 连接到 Chromebook(通过其 IP 地址):

    adb connect <ip_address>:22
    
  2. 在 Chromebook 上,当系统提示您是否允许使用调试程序时,点击“允许”。您的 ADB 会话即已建立。

通过网络进行 ADB 调试的问题排查

有时,当一切连接正常时,ADB 设备却显示为离线状态。在这种情况下,请完成以下步骤来排查问题:

  1. 在“开发者选项”中停用 ADB 调试
  2. 在终端窗口中,运行 adb kill-server
  3. 重新激活 ADB 调试选项。
  4. 在终端窗口中,尝试运行 adb connect
  5. 当系统提示您是否允许进行调试时,点击允许。您的 ADB 会话即已建立。