Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
727
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

よく使うadbのコマンド

自分が比較的よく使う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 のように使うことが多い。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
727
Help us understand the problem. What are the problem?