よく使うadbのコマンド

  • 562
    Like
  • 0
    Comment
More than 1 year has passed since last update.

自分が比較的よく使うadbのコマンドです。

adb

コマンド
adb

ダウンロードしたSDKのplatform-toolsディレクトリにパスを通しておく。
adb だけで実行すると使い方を見られる。

オプション
adb -e コマンド # エミュレータにコマンドを送る
adb -d コマンド # 端末にコマンドを送る
adb -s xxxx コマンド # コマンドを送る端末を指定できる

接続している端末が1台だけのときは指定しなくて良い。

adbのバージョン

コマンド
adb version
出力例
Android Debug Bridge version 1.0.31

このコマンドはほとんど使わないけど、この記事を書いた時の記録として。

接続している端末の確認

コマンド
adb devices
出力例
List of devices attached 
HT05FPL09004    device

HT05FPL09004 が端末の識別番号のようなもの。
複数端末をつないでいる時に adb -s HT05FPL09004 shell のように指定すると、その端末にコマンドを送れる。

apkのインストール・アンインストール

インストール

コマンド
# 通常のインストール
adb install xxxx.apk
# アップデートインストール
adb install -r xxxx.apk

xxxx.apk にインストールしたいapkのファイル名を指定する。
すでに端末に同じ署名のapkがインストールされてる場合は adb install -r xxxx.apk のように -r をつけると上書きできる。データファイルは保持される。

アンインストール

コマンド
adb uninstall com.xxxx.appname

com.xxxx.appname にアンインストールしたいアプリのパッケージ名を指定する。
完全なパッケージ名を覚えていない場合、後述のpm list packages が便利。

ログの取得

コマンド
# オプションを指定せずにログ出力
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 のようにして取り込んだりする。

ファイルの転送

コマンド
# PCから端末へ
adb push PC上のファイル名 端末上のファイル名
adb push hoge.txt /sdcard/ # 例
# 端末からPCへ
adb pull 端末上のファイル名 PC上のファイル名
adb pull /sdcard/hoge.txt . # 例

転送先のファイル名は指定しても良いけど、ファイル名を変えることはあんまりないので省略することが多い。

adbの起動・停止

コマンド
# adbの停止
adb kill-server
# adbを起動
adb start-server

adbがうまく動いてないんじゃないか?と思った時にkill→startで再起動させてる。

shell

コマンド
# shellを起動
adb shell
# shelコマンドを実行
adb shell コマンド

shellにコマンドを実行させたいときは adb shell コマンド の形で使う。
以下は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 のように使うことが多い。