よく使うadbのコマンド
自分が比較的よく使うadbのコマンドです。
※2013年にQiitaに投稿した記事を持ってきました。
adb
adb
ダウンロードしたSDKのplatform-tools
ディレクトリにパスを通しておく。
adb
だけで実行すると使い方を見られる。
$ adb -e コマンド # エミュレータにコマンドを送る
$ adb -d コマンド # 端末にコマンドを送る
$ adb -s xxxx コマンド # コマンドを送る端末を指定できる
接続している端末が1台だけのときは指定しなくて良い。
adbのバージョン
adb version
$ adb version
Android Debug Bridge version 1.0.41
Version 30.0.4-6686687
このコマンドはほとんど使わないけど、この記事を書いた時の記録として。
接続している端末の確認
adb devices
$ adb devices
List of devices attached
27eb76b1cb217ece device
emulator-5554 device
27eb76b1cb217ece
が端末の識別番号のようなもの。
複数端末をつないでいる時に adb -s 27eb76b1cb217ece shell
のように指定すると、その端末にコマンドを送れる。
apkのインストール・アンインストール
インストール
adb install
# 通常のインストール
$ adb install xxxx.apk
# アップデートインストール
$ adb install -r xxxx.apk
xxxx.apk
にインストールしたいapkのファイル名を指定する。
すでに端末に同じ署名のapkがインストールされてる場合は adb install -r xxxx.apk
のように -r
をつけると上書きできる。データファイルは保持される。
アンインストール
adb uninstall
$ adb uninstall com.xxxx.appname
com.xxxx.appname
にアンインストールしたいアプリのパッケージ名を指定する。
完全なパッケージ名を覚えていない場合、後述のpm list packages
が便利。
ログの取得
adb log
# オプションを指定せずにログ出力
adb logcat
# 出力形式を指定してログ出力
adb logcat -v time
# 現在のログをダンプする
adb logcat -d
# ログのクリア
adb logcat -c
標準出力に出力されるので、だいたいは adb logcat -v time > log.txt
のようにリダイレクトしてる。
あとはvimで :r! adb logcat -v time -d
のようにして取り込んだりする。
ファイルの転送
adb push
adb pull
# PCから端末へ
adb push PC上のファイル名 端末上のファイル名
adb push hoge.txt /sdcard/ # 例
# 端末からPCへ
adb pull 端末上のファイル名 PC上のファイル名
adb pull /sdcard/hoge.txt . # 例
転送先のファイル名は指定しても良いけど、ファイル名を変えることはあんまりないので省略することが多い。
adbの起動・停止
adb kill-server
adb start-server
# adbの停止
adb kill-server
# adbを起動
adb start-server
adbがうまく動いてないんじゃないか?と思った時にkill→startで再起動させてる。
shell
adb shell
# shellを起動
adb shell
# shelコマンドを実行
adb shell コマンド
shellにコマンドを実行させたいときは adb shell コマンド
の形で使う。
以下はshell上で実行できるコマンド。
Shellから抜ける
exit
exit
でShellから抜ける。
(これが書いてなくて困る人はいないと思うけど一応書いておく)
アプリの起動
# Activityの起動(ACTION_VIEW + URL)
am start -a android.intent.action.VIEW -d http://google.com
# Activityの起動(クラス名を指定)
am start -n com.hoge.app/.FugaActivity
# サービスの起動
am startservice ... # Intentの指定方法はActivityと同じ
# ブロードキャストの送信
am broadcast ... # Intentの指定方法はActivityと同じ
Intentの内容を -a
、-d
、-n
などのオプションで指定する。デバッグ実行したい場合は -D
をつける。その他のオプションは am
単体で実行すれば見ることができる。
shellを起動せずに実行するときは adb shell am start -a android.intent.action.VIEW -d http://google.com
のように指定する。
文字入力・キーイベント送信
文字入力
input text hoge
マルチバイト文字列は送信できない(と思う)。
IMEが起動していると、IMEの入力モードの影響を受けることがある。
キーイベント送信
input keyevent 3 # HOMEキー
input keyevent 4 # BACKキー
input keyevent 82 # MENUキー
数値でキーコードを指定する。
キーコードは KeyEvent | Android Developers を参照。
パッケージ名列挙
pm list packages
インストールされてるアプリのパッケージ名が列挙される。
adb uninstall
で必要なパッケージ名を一部しか覚えていないときに adb shell pm list packages | grep hoge
のようにして使うことが多い。
(追記) grepを使わなくても、adb shell pm list packages hoge
でフィルタリングできた。
cat
cat /sdcard/hoge.txt
読み込み権限のあるファイルの中身を簡単に確認するときに使う。
vimで :r! adb shell cat /sdcard/hoge.txt
のように使うことが多い。
Discussion