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
73
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

@tkc_tsuchiya

きっと開発が楽しくなるADBコマンドまとめ

はじめに

adb系のコマンドはいろんなことができるので
よく使うものをメインにまとめておきます

コマンド一覧

接続されたAndroid端末が認識されているか確認する

adb devices

※複数接続されている場合、この実行結果にあるシリアルコードを利用して端末指定が可能

result
c:\>adb devices
List of devices attached
YT9110CJHC      device
c:\>

認識されていない場合とかに、adbプロセスを再起動

adb kill-server && adb start-server
※これを記載した adb-restartとか作っておくと便利

result
c:\>adb kill-server && adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
c:\>

端末にログインする

adb shell

result
c:\>adb shell
shell@SO-02G:/ $ exit
c:\>

端末のアクティビティ状態をモニタリングする

adb shell am monitor

result
c:\>adb shell am monitor
Monitoring activity manager...  available commands:
(q)uit: finish monitoring
** Activity starting: com.android.chrome
** Activity starting: com.android.chrome
** Activity starting: com.android.systemui
** Activity starting: com.google.android.googlequicksearchbox
^C
c:\>

インストールパッケージの確認

adb shell pm list packages

result
c:\>adb shell pm list packages chrome
package:com.android.partnerbrowsercustomizations.chromeHomepage.res.overlay_305
package:com.android.partnerbrowsercustomizations.chromeHomepage
package:com.android.chrome
c:\>

パッケージのインストール

ローカルにあるファイルからインストールする場合
adb install <APKファイル>

result
c:\>adb install prod_app-release.apk
3195 KB/s (4904805 bytes in 1.499s)
        pkg: /data/local/tmp/prod_app-release.apk
Success
c:\>

端末上に転送済のファイルからインストールする場合
adb shell pm install <APKファイル名>

result
c:\>adb shell pm install /sdcard/prod_app-release.apk
        pkg: /sdcard/prod_app-release.apk
Success
c:\>

ファイルの転送

ローカルから端末へ
adb push <ローカルファイル> <端末側ファイル>

result
c:\>adb push prod_app-release.apk /sdcard/prod_app-release.apk
2728 KB/s (4904805 bytes in 1.755s)
c:\>

端末からローカルへ
adb pull <端末側ファイル> <ローカルファイル>

result
c:\>adb pull /sdcard/prod_app-release.apk prod_app-release.apk
3537 KB/s (4904805 bytes in 1.354s)
c:\>

パッケージのアンインストール

adb uninstall <パッケージ名>

result
c:\>adb uninstall com.sample.app
Success
c:\>

adb shell pm uninstall <パッケージ名>

result
c:\>adb shell pm uninstall com.sample.app
Success
c:\>

ログ表示(logcat)

adb shell logcat

イベント送信

テキスト入力
adb shell input text <メッセージ>

result
c:\>adb shell input text message
// 端末側にmessageというテキストが送信されます
c:\>

キー(HOME)送信
adb shell input keyevent 3

result
c:\>adb shell input keyevent 3
// 端末側でHOMEキー押下が送信されます
c:\>

※その他のキーコードは
 http://developer.android.com/intl/ja/reference/android/view/KeyEvent.html

intent

インテント直で投げる
adb shell am start -n <パッケージ名>/<アクティビティクラス>

result
c:\>adb shell am start -n com.sample.app/.MainActivity
Starting: Intent { cmp=com.sample.app/.MainActivity }
c:\>

端末にまかせる
adb shell am start -a <アクション> -d <URL>

result
c:\>adb shell am start -a android.intent.action.VIEW -d http://www.google.com/
Starting: Intent { act=android.intent.action.VIEW dat=http://www.google.com/ }
// http:なのでブラウザが起動します
c:\>
result
c:\>adb shell am start -a android.intent.action.VIEW -d market://details?id=com.sample.app
Starting: Intent { act=android.intent.action.VIEW dat=market://details?id=com.sample.app }
// market:なのでGoogle Playが起動します
c:\>

※<アクション>の部分は他に「android.intent.action.SEND」などがあります

broadcast

adb shell am broadcast -a <アクション>

result
// 電源低下通知
adb shell am broadcast -a android.intent.action.BATTERY_LOW
// 起動完了通知(やってみたら再起動しちゃった( ;´Д`))
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED

まとめ

コマンドラインでの操作をバッチ化するなどして
まとめておくと結構便利です

下記を参考に作成しました
http://developer.android.com/intl/ja/tools/help/shell.html

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
73
Help us understand the problem. What are the problem?