実機でデバッグしながらAndroidアプリ開発。
DevIOでブログ化した。
まずは実機デバッグの方法を確認。
Androidアプリを公開するフォーマットとして「AAB(Android App Bundle)」と「APK」がある。AABは公開のみを目的としており、APKはインストールかつ実行が可能な形式である。
実機でデバッグしながらの開発はAPKを引き続き使えば良さそう。
Android Studioでデフォルトで作成したアプリでAPKを実機で動かしてみる。
APKの生成

[Build > Build Bundles]

すぐに完了したっぽい。

違うこれじゃない。
正しくはこっち。

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

[Key store path]で[Create new]


パスワードが長すぎた

[Next]

[Create]

選択しなかったらエラーが出た。
選択して[Create]

作成されたっぽい。

app/release/app-release.apkに作成されていた。

MacBookからAndroid端末にAPKを転送
Android File Transferを使ってみる。
ここからMacBookにダウンロードしてインストール。
Android端末は予めデバッグモードを有効化済み。
adbコマンドを使うなら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 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でのアプリの実行および停止操作は、エミュレーターではなく実機に対して行われるようになる。


アンインストールする場合のコマンド。
adb -s R5CR31RFKEA uninstall ./AndroidStudioProjects/MyApplication/app/release/app-release.apk
Failure [DELETE_FAILED_INTERNAL_ERROR]
エラーになった。
USBケーブルの接続を物理的に外す。
するとエミュレーターの端末一覧から実機が消えた。

後は実機に残っているアプリを手動でアンインストールした。

コードの変更を実機上のアプリに再インストールせずに反映させたい場合。
[Apply Change and Restart Activity]


反映された。
