Android アプリ開発で adb コマンドを操作することがあります。基本的にはLinuxをベースとしたOSなのでLinux commandを使うことが多いですがAndroidとしてのコマンドもある程度知っておいた方がいいでしょう。
2021.2.1
adb コマンド
アプリ開発でよく使うコマンドです
 
端末にPCからUSBでつないでadbコマンドが使える段階からですので、そこまでできていない場合はアプリを実機でデバッグするためのUSB ドライバーを設定するを参考に設定してください。
WiFi経由でも使えますが最初はUSBケーブルが必要だったりします
またadbの実行本体のためにはsdkをインストールしておきます。windowsあるいはMac
adbを使うためにPATHを通しておく、PATHを切ると便利です。
尚、以下の例はMacのケースですがWindowsとの差異は、ファイルパスの違いです。
 
 
| adb shell | シェルの起動 | 
| adb devices | android deviceの確認 | 
| adb install [packagename] | アプリのインストール | 
| adb install -r [packagename] | アプリの再インストール | 
| adb shell pm list packages | アプリの一覧 | 
| adb uninstall [packagename] | アプリの削除 | 
| adb push A B | AをAndroidのBにコピー | 
| adb pull A B | AをPCのBにコピー | 
| adb kill-server | adb の停止 | 
| adb start-server | adb の起動 | 
| exit | shellから出る | 
コマンドを入力するためにはAndroid StudioのTerminalを使います。
あるいは個別のソフト、Macではターミナル
Windowsではコマンドプロンプトでも可能です
adb shell
このコマンドで接続端末の Linux OS に入り
ファイルを見ることができます
 
| 1 2 3 | hoge$ adb shell shell@flo:/ $ | 
 
これ以降はLinuxコマンドを使います
ls でこの場合トップにあるファイル、ディレクトリーを見ることが可能。
 
| 1 2 3 4 5 6 7 8 | shell@flo:/ $ ls acct ... ueventd.rc vendor shell@flo:/ $ | 
 
ls -l でより詳しくわかります
 
| 1 2 3 4 5 6 7 8 9 | 1|bullhead:/ $ ls -l total 68 drwxr-xr-x   2 root   root       4096 2009-01-01 09:00 acct drwxr-xr-x  56 root   root       1180 2022-06-14 08:30 apex lrw-r--r--   1 root   root         11 2009-01-01 09:00 bin -> /system/bin ... lrw-r--r--   1 root   root         21 2009-01-01 09:00 sdcard -> /storage/self/primary ... 1|bullhead:/ $ | 
Pixelの例
 
/sdcard は /storage/self/primary にリンクされているのがわかります
screencap
このコマンドではスクリーンショットを撮り、sdcard以下のscreenTest01.pngで保存します
| 1 | adb shell screencap -p /sdcard/screenTest01.png | 
保存した画像は「フォト」アプリで確認できます
あるいはadb pull でPC側に抜き出すことも可能
screenrecord
画面の動画キャプチャをすることもできます
| 1 | adb shell screenrecord /sdcard/movie.mp4 | 
停止させるときは「Ctrl」+「C」
入力の診断情報
キーボードやタッチスクリーンなど、システムの入力デバイスの状態と、入力イベントの処理がダンプさる
| 1 | adb shell dumpsys input | 
dumpsys | Android デベロッパー にはその他いくつかのスマホの診断をするオプションの説明があります
adb devices
接続している Android 端末のIDが分かります
尚、shellの中にいると見えないので、exitすれば確認できます
 
| 1 2 3 4 5 6 | hoge$ adb devices List of devices attached 0a852d57	device hoge$ | 
adb install [packagename]
apk ファイルをインストールします
同じレベルにAndroid アプリのapk(app-release.apk)があるとすると
以下コマンドでインストールできます
| 1 2 3 4 5 6 | hoge$ adb install app-release.apk 5471 KB/s (856743 bytes in 0.152s) 	pkg: /data/local/tmp/app-debug.apk Success hoge$ | 
adb install -r [packagename]
-r を付加して再インストール
| 1 2 3 4 5 6 | hoge$ adb install -r app-debug.apk 5157 KB/s (856743 bytes in 0.162s) 	pkg: /data/local/tmp/app-debug.apk Success hoge$ | 
adb shell pm list packages
インストールされているアプリの一覧
adb shell で入った後で
pm list packages
でも可能です
| 1 2 3 4 5 6 7 8 | hoge$ adb shell pm list packages package:com.chartcross.gpstest package:com.android.packageinstaller ... package:com.example.test002 ... hoge$ | 
adb uninstall [packagename]
インストールされているアプリを選んで削除
| 1 2 3 4 | hoge$ adb uninstall com.example.test002 Success hoge$ | 
adb push A B
ホームディレクトリのDesktop/temp/以下にあるtest.txt を
端末の /sdcard/ ディレクトリにコピーする例です
 
Mac の場合 ~/ はホームディレクトリですが
コマンドを入力するロケーションにtest.txtがあれば
adb push test.txt /sdcard/
で済みます
 
| 1 2 3 4 | hoge$ adb push ~/Desktop/temp/test.txt /sdcard/ 52 KB/s (325 bytes in 0.006s) hoge$ | 
 
また、全てのディレクトリに書き込みができる訳ではありません
adb pull A B
これは端末の /sdcard/test.txt ファイルを ~/Desktop/temp/ のフォルダーにコピーしています
 
| 1 2 3 4 | hoge$ adb pull /sdcard/test.txt ~/Desktop/temp/ 158 KB/s (325 bytes in 0.002s) hoge$ | 
adb kill-server, adb start-server
adb を再起動させる場合に使います
 
| 1 2 3 4 5 | hoge$ adb kill-server t2-no-MacBook-Pro:temp t2$ adb start-server * daemon not running. starting it now on port 5037 * * daemon started successfully * hoge$ | 
exit
入ったshellから出ます。
| 1 2 | shell@flo:/ $ exit hoge$  | 
関連ページ:
Reference:
Android Debug Bridge
![[Android] アプリ開発でのadb コマンド操作 1x1.trans - [Android] アプリ開発でのadb コマンド操作](https://akira-watson.com/wp-content/themes/simplicity2/images/1x1.trans.gif)
![[Android] アプリ開発でのadb コマンド操作 cat66 00 100x100 - [Android] アプリ開発でのadb コマンド操作](https://akira-watson.com/wp-content/uploads/2019/08/cat66_00-100x100.jpg)
