Androidアプリを実機でデバッグできるようにしてみた

2023.02.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、CX事業本部 Delivery部の若槻です。

今回は、Androidアプリを実機でデバッグできるようにしてみました。

デバッグ方法の確認

Androidアプリを公開するフォーマットとして「AAB(Android App Bundle)」と「APK」があります。2018年にローンチされたAABは公開のみを目的としており、APKはインストールかつ実行が可能なフォーマットとなっているとのこと。

実機でデバッグしながら開発をしたい場合はAPKを引き続き使えば良さそうです。

やってみた

Android Studioで作成した次のアプリを、APKを利用して実機で動かしてみます。

実機となるAndroid端末は、OSバージョンは13で、予めデバッグモードを有効化済みです。

APKの生成

まずはアプリのソースコードからAPKファイルを生成します。

Android Studioで[Build > Generate Signed Bundles / APK]を選択。

[APK]を選択して[Next]。

Keystoreファイルが未作成なので、[Key store path]で[Create new]をクリック。

Keystore systemを利用することにより暗号化キーをAndroidアプリ内の安全な領域に保管することができるようになります。詳しくは下記を御覧ください。

ファイル名を指定して任意の場所に保存します。次回以降はこのKeystoreファイルを再利用できます。

[Next]をクリック。

いずれかのBuild Variantsを選択して[Create]。

app/release/app-release.apkにapkファイルが作成されました。

実機でアプリを動作させる

Android Debug Bridge(adb)を使用すると、Android Studioを動作させているPCから実機にapkによるアプリインストールをコマンドで行うことができます。

そこでadb installをしようとしたらcommand not foundエラーとなりました。

$ adb install ./AndroidStudioProjects/MyApplication/app/release/app-release.apk 
zsh: command not found: adb

PATHを通す必要があったので通します。

export PATH=$PATH:$HOME/Library/Android/sdk/platform-tools

再度adb installをしようとしたら次はmore than one device/emulatorエラーとなりました。

$ adb install ./AndroidStudioProjects/MyApplication/app/release/app-release.apk
adb: more than one device/emulator

これは、Android Studioでのエミュレーターの起動と、実機の接続を同時にしているため、adbがどちらにインストールすればよいか判断できないことが原因でした。

デバイス一覧を取得して実機のIDを確認します。

$ adb devices -l
List of devices attached
R5CR31RFKEA            device usb:17825792X product:SC-52B model:SC_52B device:SC-52B transport_id:3
emulator-5554          device product:sdk_gphone64_arm64 model:sdk_gphone64_arm64 device:emu64a transport_id:1

-sオプションで実機のIDを指定してインストール実行。

adb -s R5CR31RFKEA install ./AndroidStudioProjects/MyApplication/app/release/app-release.apk

するとインストールできました。

アプリの起動もできました。

adbにより実機にアプリがインストールされたら、Android Studioでのアプリの実行および停止操作は、エミュレーターではなく実機に対して行われるようになります。

シミュレーターコンソールをよく見るとエミュレータ端末として実機(Samsung)が選択されています。

ソースコードの変更を実機上のアプリに反映させる

コードの変更を実機上のアプリに再インストールせずに反映させることもできます。

ソースコードを変更したら、Android Studioで[Apply Change and Restart Activity]をクリックします。

するとアプリ側にソースコードの変更が反映されました。

実機からアプリを削除する

実機からアプリを削除したく、adb uninstallコマンドを実行してみると、エラーと成りました。

$ adb -s R5CR31RFKEA uninstall ./AndroidStudioProjects/MyApplication/app/release/app-release.apk
Failure [DELETE_FAILED_INTERNAL_ERROR]

何かがよろしく無いようですが、原因が分からなかったので別の方法を取ります。

まずUSBケーブルの接続を物理的に外します。

するとエミュレーターの端末一覧から実機が消えました。

その後、実機に残っているアプリを手動でアンインストールします。

これで実機からアプリを削除できました。

その他の実機デバッグ方法

MacBookから実機にAPKファイルを転送して、実機側でインストールする方法もあるようです。

MacとAndroid間なら、Android File Transferを使うと良さそうです。

参考

以上