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 の設定を開きます。すると、[Android アプリの開発] という新しいオプションが表示されます。このオプションを開きます。
[ADB デバッグを有効にする] をオンにします。デバイスが再起動します。
再起動すると、アプリストアからダウンロードされなかったアプリがデバイスに存在する可能性があることを示すメッセージが表示されます。
これで、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 デバイスと同じようにアプリをプッシュできるようになります。新しいデバイスに初めてプッシュしようとすると、ADB 承認ダイアログが表示されます。承認すると、アプリが新しいウィンドウで起動します。
これで、Chromebook にアプリをデプロイし、デベロッパー モードに移行する手間をかけずにテストとデバッグを行えるようになります。
ターミナルでデプロイする
必要に応じて ADB をインストールします。
sudo apt install adb
デバイスに接続します。
adb connect arc
デバイスに初めてデプロイしようとすると、USB デバッグの承認を求めるポップアップが表示されるので、許可する必要があります。
ターミナルからアプリをインストールします。
adb install [path to your APK]
別のデバイスからデプロイする
上記の方法を使用できず、別のデバイスからアプリをプッシュする必要がある場合は、USB またはネットワーク アドレスを使用してデバイスを ADB に接続できます。
ADB へのネットワーク経由での接続
-
ADB デバッグが有効になっていることを確認します。
Chromebook の IP アドレスを取得します。
-
画面の右下にある時計をクリックします。
-
歯車アイコンをクリックします。
-
接続しているネットワークの種類(Wi-Fi またはモバイルデータ)、ネットワークの名前、の順にクリックします。
-
IP アドレスをメモします。
Chromebook に接続します。
-
開発用マシンに戻り、ADB で Chromebook の IP アドレスに接続します。
adb connect
-
Chromebook で、デバッガを許可するかどうかを確認するメッセージが表示されたら、[許可] をクリックします。これで ADB セッションが確立されます。
ネットワーク経由の ADB デバッグのトラブルシューティング
すべてが正しく接続されているにもかかわらず、ADB デバイスがオフラインと表示されることがあります。この場合は、以下の手順でトラブルシューティングを行います。
- [開発者向けオプション] で [ADB デバッグ] を無効にします。
- ターミナル ウィンドウで、
adb kill-serverを実行します。 - [ADB デバッグ] オプションを再度有効にします。
- ターミナル ウィンドウで、
adb connectを実行します。 - デバッグを許可するかどうかを確認するメッセージが表示されたら、[許可] をクリックします。これで ADB セッションが確立されます。
ADB への USB 経由での接続
別のデバイスから USB 経由で Chromebook に APK をプッシュするには、Chromebook を構成してホストマシンからアプリをプッシュできるように、ChromeOS をデベロッパー モードで起動する必要があります。現在、デベロッパー モードが必要なのはこの方法のみで、少数のデバイスでのみ機能します。そのため、代わりにネットワーク経由で ADB を使用することをおすすめします。それでも続行する場合は、デベロッパー モードに移行する手順に沿って操作してください。
- ADB デバッグが有効になっていることを確認します。
- デバイスが USB デバッグをサポートしているかどうかを確認します。
control+alt+tキーを押して ChromeOS ターミナルを起動します。- 「
shell」と入力して bash コマンドシェルを起動します。crosh> shell chronos@localhost / $
- 次のコマンドを入力してデバイスをセットアップします。
$ sudo crossystem dev_enable_udc=1 $ sudo reboot
- 再起動後にターミナルを再度開き、次のコマンドを実行して Chromebook の USB ポートで ADB を有効にします。
$ sudo ectool usbpd
dr_swap
USB ケーブルを取り外して再接続するたびに、このコマンドを実行します。Chromebook が UFP モードであることを確認するには、ectool usbpd を実行します。
- USB ケーブルをデバイスのサポートされているポートに接続します。
- ホストマシンで Android SDK プラットフォーム ツールの
adb devicesを実行し、Chromebook が ADB 対応デバイスの一覧に表示されることを確認します。 - Chromebook で、デバッガを許可するかどうかを確認するメッセージが表示されたら、[許可] をクリックします。これで ADB セッションが確立されます。