実機でデバッグしながら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]
反映された。