ADB と Android アプリのテスト

Chromebook で Android アプリを実行できることには大きな意味があります。ユーザーは Android エコシステムの膨大なサービスを利用できるようになり、Android デベロッパーは ChromeOS ユーザーにリーチする機会を得られます。

デベロッパーは、積極的にさまざまなフォーム ファクタでアプリを検証する必要があります。それによってユーザー エクスペリエンスが向上するからです。Android デベロッパーが Chromebook にアプリをデプロイしてテストするためのツールが ChromeOS に用意されているのは、この目的のためです。

デベロッパーは、Android アプリを ChromeOS から直接デプロイする(Chromebook で Android Studio を使用する)か別のデバイスからデプロイするかにかかわらず、ADB でアプリをデプロイして Chromebook でさまざまなインタラクションをデバッグできます。詳しくは、下記の手順をご確認ください。

ADB デバッグを有効にする

以前は、Chromebook で ADB を使用できるのはデベロッパー モードに移行したときだけでした。それには Powerwash(リセット)が必要で、セキュリティが低下するおそれがありました。Chrome 81 以降では、デベロッパーはデバイスをデベロッパー モードに移行しなくても、スイッチを切り替えるだけで、直接 ChromeOS で開発したアプリをデプロイできるようになりました。手順は次のとおりです。

最初に、Chromebook がデベロッパー モードでないことを確認します。次に、設定に移動して Linux を有効にします(まだ有効にしていない場合)。

Linux をオンにする

Linux が使用可能になったら、Linux の設定を開きます。すると、[Android アプリの開発] という新しいオプションが表示されます。このオプションを開きます。

[ADB デバッグを有効にする] をオンにします。デバイスが再起動します。

ADB デバッグの有効化

再起動すると、アプリストアからダウンロードされなかったアプリがデバイスに存在する可能性があることを示すメッセージが表示されます。

このデバイスには Google が確認していないアプリがインストールされている可能性があります

これで、ADB を使用して Chromebook にアプリをデプロイし、デバッグ コマンドを実行して、デバイスを直接操作できるようになりました。

さまざまな Chromebook デバイスと使用可能なフォーム ファクタで Android アプリが適切に動作することを確認するには、以下のデバイスでアプリをテストすることをおすすめします。

  • ARM ベースの Chromebook
  • x86 ベースの Chromebook
  • タッチスクリーン付きのデバイスとそうでないデバイス
  • コンバーチブル デバイス(ノートパソコンにもタブレットにもなるデバイス)
  • タッチペン付きのデバイス

ChromeOS からデプロイする

ADB デバッグを有効にしたら、Android Studio を使用して Android アプリを ChromeOS デバイスに直接読み込むか、APK があればターミナルを使用して読み込むことができます。

Android Studio でデプロイする

上記の説明のように Android Studio と ADB を設定したら、Android Studio から直接 Chromebook の Android コンテナにアプリをプッシュできます。

デバイスのプルダウンに Chromebook がオプションとして表示されます。

Android Studio のデバイスのプルダウン

これで、他の Android デバイスと同じようにアプリをプッシュできるようになります。新しいデバイスに初めてプッシュしようとすると、ADB 承認ダイアログが表示されます。承認すると、アプリが新しいウィンドウで起動します。

Android Studio で ADB を使用してデバイスに接続する

これで、Chromebook にアプリをデプロイし、デベロッパー モードに移行する手間をかけずにテストとデバッグを行えるようになります。

ターミナルでデプロイする

必要に応じて ADB をインストールします。

sudo apt install adb

デバイスに接続します。

adb connect arc

デバイスに初めてデプロイしようとすると、USB デバッグの承認を求めるポップアップが表示されるので、許可する必要があります。

デバイスへの接続の承認

ターミナルからアプリをインストールします。

adb install [path to your APK]

ターミナルからアプリをインストールする

別のデバイスからデプロイする

上記の方法を使用できず、別のデバイスからアプリをプッシュする必要がある場合は、USB またはネットワーク アドレスを使用してデバイスを ADB に接続できます。

ADB へのネットワーク経由での接続

  1. ADB デバッグが有効になっていることを確認します。

Chromebook の IP アドレスを取得します。

  1. 画面の右下にある時計をクリックします。

  2. 歯車アイコンをクリックします。

  3. 接続しているネットワークの種類(Wi-Fi またはモバイルデータ)、ネットワークの名前、の順にクリックします。

  4. IP アドレスをメモします。

Chromebook に接続します。

  1. 開発用マシンに戻り、ADB で Chromebook の IP アドレスに接続します。

    adb connect 
  2. Chromebook で、デバッガを許可するかどうかを確認するメッセージが表示されたら、[許可] をクリックします。これで ADB セッションが確立されます。

ネットワーク経由の ADB デバッグのトラブルシューティング

すべてが正しく接続されているにもかかわらず、ADB デバイスがオフラインと表示されることがあります。この場合は、以下の手順でトラブルシューティングを行います。

  1. [開発者向けオプション] で [ADB デバッグ] を無効にします。
  2. ターミナル ウィンドウで、adb kill-server を実行します。
  3. [ADB デバッグ] オプションを再度有効にします。
  4. ターミナル ウィンドウで、adb connect を実行します。
  5. デバッグを許可するかどうかを確認するメッセージが表示されたら、[許可] をクリックします。これで ADB セッションが確立されます。

ADB への USB 経由での接続

別のデバイスから USB 経由で Chromebook に APK をプッシュするには、Chromebook を構成してホストマシンからアプリをプッシュできるように、ChromeOS をデベロッパー モードで起動する必要があります。現在、デベロッパー モードが必要なのはこの方法のみで、少数のデバイスでのみ機能します。そのため、代わりにネットワーク経由で ADB を使用することをおすすめします。それでも続行する場合は、デベロッパー モードに移行する手順に沿って操作してください。

  1. ADB デバッグが有効になっていることを確認します。
  2. デバイスが USB デバッグをサポートしているかどうかを確認します。
  3. control+alt+t キーを押して ChromeOS ターミナルを起動します。
  4. shell」と入力して bash コマンドシェルを起動します。
    crosh> shell
    chronos@localhost / $
  5. 次のコマンドを入力してデバイスをセットアップします。
    $ sudo crossystem dev_enable_udc=1
    $ sudo reboot
  6. 再起動後にターミナルを再度開き、次のコマンドを実行して Chromebook の USB ポートで ADB を有効にします。
    $ sudo ectool usbpd  dr_swap

USB ケーブルを取り外して再接続するたびに、このコマンドを実行します。Chromebook が UFP モードであることを確認するには、ectool usbpd を実行します。

  1. USB ケーブルをデバイスのサポートされているポートに接続します。
  2. ホストマシンで Android SDK プラットフォーム ツールの adb devices を実行し、Chromebook が ADB 対応デバイスの一覧に表示されることを確認します。
  3. Chromebook で、デバッガを許可するかどうかを確認するメッセージが表示されたら、[許可] をクリックします。これで ADB セッションが確立されます。