サイネージの Android アプリ開発で adb コマンドを使ったのでまとめ
接続
adb kill-server
adb start-server
adb tcpip 5555
adb connect 192.168.x.x:5555
connect に失敗した場合は、もう一度 kill-server から。
connect するときの ip アドレスは、
Android の 設定 --> 端末情報 的なところに表示されているのでそれを丸々タイプすればおk。
接続確認
接続確認コマンド
adb devices
出力例
List of devices attached
XXXXXXXX device
ここで、device と出力されない場合は、これ以降の apk インストールやら、ファイルの push やらができない
解決策として以下があるので参考まで
- Android端末 の wifi を ON OFF してみる
- Android の開発者オプションから USB デバッグを ON OFF してみる
- 接続 kill-server からやり直す
これでダメならわからん。。とりあえず自分は基本的に 3 の解決策で解決、開発が進んだ。
接続した Android 端末の /sdcard とかを確認したい時
adb shell
これで Android の内部に入れるので、あとは ls とか cd とか使ってフォルダの中身とかを確認できる。
/sdcard の中身とかも見れる。
接続した Android 端末の /sdcard とかにファイル送りたい時
adb push xxx.png /ファイルを送りたいフォルダの絶対パス
絶対パスは、adb shell で潜って、pwd で取得とかすれば問題ない。
pull は使わなかった。使う必要があるときにときググればおk。
apk ファイルのインストール
adb install xxx.apk
install が reject されるときは、signed_apk ではなかった場合、プレイストアのプロテクトが ON になっていたりする場合があった。
インストール時に adb で接続された Android 端末が複数ある時
adb -s xxxxxxx(端末名) install xxxx.apk
xxxxxxx(端末名)については、adb devices で出力される端末名を入れればおk。
補完で出てくるので Tab を押せばわからなくても解決。
log を出力したい
adb logcat
Android Studio でいつも見ている Logcat 画面が terminal で流れる。
とはいえ、adb connect した時点で Android Studio の Logcat 画面に ログが流れるのであんまり意味ないかもしれない。
Android Studio を起動しない、できないけどデバッグしたい時に使うくらいしか用途がわからない。
その他
開発中に BroadCastIntent とかの intent 周りを adb を使って起動できたコマンドを使ったけど、ちょっとコマンドを忘れてしまった。
https://maku77.github.io/android/adb/adb-am-start.html
こちらの方のサイトのおかげで思い出したので書いておく。
am broadcast -a android.intent.action.アクション名
確かこれで動作したはず。ダメだったらもう一度確認が必要。