Chromebook で Android アプリを実行できることには大きな意味があります。ユーザーは Android エコシステムの膨大なサービスを利用できるようになり、Android デベロッパーは Chrome OS ユーザーにリーチする機会を得られます。
デベロッパーは、積極的にさまざまなフォーム ファクタでアプリを検証する必要があります。それによってユーザー エクスペリエンスが向上するからです。Android デベロッパーが Chromebook にアプリをデプロイしてテストするためのツールが Chrome OS に用意されているのは、この目的のためです。
デベロッパーは、Android アプリを Chrome OS から直接デプロイする(Chromebook で Android Studio を使用する)か別のデバイスからデプロイするかにかかわらず、ADB でアプリをデプロイして Chromebook でさまざまなインタラクションをデバッグできます。詳しくは、下記の手順をご確認ください。
ADB デバッグを有効にする
以前は、Chromebook で ADB を使用できるのはデベロッパー モードに移行したときだけでした。それには Powerwash(リセット)が必要で、セキュリティが低下するおそれがありました。Chrome 81 以降では、デベロッパーはデバイスをデベロッパー モードに移行しなくても、スイッチを切り替えるだけで、直接 Chrome OS で開発したアプリをデプロイできるようになりました。その方法は次のとおりです。
最初に、Chromebook がデベロッパー モードでないことを確認します。次に、設定に移動して Linux を有効にします(まだ有効にしていない場合)。
Linux が使用可能になったら、Linux の設定を開きます。すると、[Android アプリの開発] という新しいオプションが表示されます。このオプションを開きます。
[ADB デバッグを有効にする] をオンにします。デバイスが再起動します。
再起動すると、アプリストアからダウンロードされなかったアプリがデバイスに存在する可能性があることを示すメッセージが表示されます。
これで、ADB を使用して Chromebook にアプリをデプロイし、デバッグ コマンドを実行して、デバイスを直接操作できるようになりました。
さまざまな Chromebook デバイスと使用可能なフォーム ファクタで Android アプリが適切に動作することを確認するには、以下のデバイスでアプリをテストすることをおすすめします。
- ARM ベースの Chromebook
- x86 ベースの Chromebook
- タッチスクリーン付きのデバイスとそうでないデバイス
- コンバーチブル デバイス(ノートパソコンにもタブレットにもなるデバイス)
- タッチペン付きのデバイス
Chrome OS からデプロイする
ADB デバッグを有効にしたら、Android Studio を使用して Android アプリを Chrome OS デバイスに直接読み込むか、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 に接続できます。
別のデバイスから Chromebook に APK をプッシュするには、Chromebook を構成してホストマシンからアプリをプッシュできるように、Chrome OS をデベロッパー モードで起動する必要があります。デベロッパー モードに移行するには、リンク先の手順に従います。
ADB への USB 経由での接続
- ADB デバッグを有効にします。
- デバイスが USB デバッグをサポートしているかどうかを確認します。
- Ctrl+Alt+T キーを押して Chrome OS のターミナルを起動します。
「
shell
」と入力して bash コマンドシェルを起動します。crosh> shell chronos@localhost / $
次のコマンドを入力してデバイスをセットアップします。
$ sudo crossystem dev_enable_udc=1 $ sudo reboot
再起動後にターミナルを再度開き、次のコマンドを実行して Chromebook の USB ポートで ADB を有効にします。
$ sudo ectool usbpd <port number> dr_swap
USB ケーブルを取り外して再接続するたびに、このコマンドを実行します。Chromebook が UFP モードであることを確認するには、ectool usbpd <port number>
を実行します。
- USB ケーブルをデバイスのサポートされているポートに接続します。
- ホストマシンで Android SDK プラットフォーム ツールの
adb devices
を実行し、Chromebook が ADB 対応デバイスの一覧に表示されることを確認します。 - Chromebook で、デバッガを許可するかどうかを確認するメッセージが表示されたら、[許可] をクリックします。これで ADB セッションが確立されます。
ADB へのネットワーク経由での接続
ネットワーク経由でデバッグを行うには、次のようにして、Chrome OS ファイアウォールを ADB 接続の受信を許可するように設定する必要があります。
- Ctrl+Alt+T キーを押して Chrome OS のターミナルを起動します。
「
shell
」と入力して bash コマンドシェルを起動します。crosh> shell chronos@localhost / $
次のコマンドを入力してデベロッパー機能を設定し、ファイアウォール設定を変更するためにディスク書き込みアクセス権を有効にします。
chronos
ユーザーの sudo パスワードを入力する必要がある場合は、Ctrl+Alt+→ キーを押すとアクセスできる VT-2 プロンプトでchromeos-setdevpassword
を実行することにとより、パスワードを設定(リセット)できます。これには root パスワードが必要です。$ sudo crossystem dev_boot_signed_only=0 $ sudo /usr/libexec/debugd/helpers/dev_features_rootfs_verification $ sudo reboot
sudo reboot
コマンドにより、Chromebook を再起動します。Tab キーを押すと、ファイル名のオートコンプリートを有効にできます。この手順は Chromebook で 1 回のみ行う必要があります。
デバイスが再起動したら、テストアカウントにログインします。その後、次のコマンドを入力してセキュアシェルを有効にし、ファイアウォールを適切に設定します。
$ sudo /usr/libexec/debugd/helpers/dev_features_ssh
コマンドが完了したら、シェルを終了できます。
次のようにして、Chromebook の IP アドレスを取得します。
- 画面の右下にある時計をクリックします。
- 歯車アイコンをクリックします。
- 接続しているネットワークの種類(Wi-Fi またはモバイルデータ)、ネットワークの名前、の順にクリックします。
- IP アドレスをメモします。
次のようにして、Chromebook に接続します。
開発用マシンに戻り、ADB で Chromebook の IP アドレスに接続します。
adb connect <ip_address>:22
Chromebook で、デバッガを許可するかどうかを確認するメッセージが表示されたら、[許可] をクリックします。これで ADB セッションが確立されます。
ネットワーク経由の ADB デバッグのトラブルシューティング
すべてが正しく接続されているにもかかわらず、ADB デバイスがオフラインと表示されることがあります。この場合は、以下の手順でトラブルシューティングを行います。
- [開発者向けオプション] で [ADB デバッグ] を無効にします。
- ターミナル ウィンドウで、
adb kill-server
を実行します。 - [ADB デバッグ] オプションを再度有効にします。
- ターミナル ウィンドウで、
adb connect
を実行します。 - デバッグを許可するかどうかを確認するメッセージが表示されたら、[許可] をクリックします。これで ADB セッションが確立されます。