Android Hacks - Hack57

14
ANDROID HACKS #57 ADB ををををを をを をををを SE ををををを Twitter : @motooomiya3 22/08/17 1

description

「Android Hacks ―プロが教えるテクニック & ツール」(株式会社ブリリアントサービス 著)を教材とした勉強会でのまとめ資料です。http://www.oreilly.co.jp/books/9784873114569/

Transcript of Android Hacks - Hack57

Page 1: Android Hacks - Hack57

ANDROIDHACKS#57 ADB を使用する担当:オタクな SE やってます

Twitter : @motooomiya3

23/04/08

1

Page 2: Android Hacks - Hack57

この資料について• この資料は下記の本をベースに勉強会で作成した資料です。

• 『 Android Hacks 』(株式会社ブリリアントサービス著、オライリー・ジャパン刊)

• この本の紹介ページが下記にあります。

• http://www.oreilly.co.jp/books/9784873114569/

23/04/08

2

Page 3: Android Hacks - Hack57

アジェンダ1. Android Debug Bridge(adb) とは ?

1. ADB とは何ぞや ?

2. ADB の仕組み1. ADB クライアント2. ADB サーバ

3. ADB のコマンド例1. 種々のコマンド

23/04/08

3

Page 4: Android Hacks - Hack57

1. Android Debug Bridge(adb) とは ?

23/04/08

4

Page 5: Android Hacks - Hack57

1. ADB とは何ぞや ?• ADB(Android Debug Bridge) の意味でデバイスやエミュレータの状

態を管理するツール ※ Android SDK の platform-tools に含まれるツール

  このツールを用いると、現在利用可能なデバイス・エミュレータの

  列挙、シェルコマンドの発行、ファイルの転送等が行える。

  また、 Eclipse から Android アプリをビルドしたときも、裏側で

   ADB を用いてエミュレータまたは実際のデバイスに接続している。

   ADB は主に、 ADB クライアントと ADB サーバから構成される。

23/04/08

5

Page 6: Android Hacks - Hack57

2. ADB の仕組み

23/04/08

6

Page 7: Android Hacks - Hack57

1. ADB クライアント• ADB クライアントとはシェルから adb を実行して起動する

  プログラムのことで、通常、 ADB といえばこれを指す。

• ADB クライアントはユーザがシェルで起動する以外にも、

   ADT プラグインと DDMS によって起動する。

• ADB クライアントは TCP 5037 ポートを使って ADB サーバと通信

  する。複数のデバイスが接続されていても問題なく、 ADB クライ

  アントで接続先を指定できる。

  23/04/08

7

Page 8: Android Hacks - Hack57

2. ADB サーバ• シェルから adb コマンドでクライアントを起動するときに

、バックグラウンドで ADB サーバも同時に起動される。サーバ起動時は以下のようなログが表示される。

* daemon not running. Starting it now *

* daemon started successfully *

• ADB サーバは一度起動すると意図的に kill するまでデーモンとして駐在する。

• 二重起動はしないようになっているので、クライアントを複数起動してもサーバーは常に1つだけであり、 ADB サーバーは TCP 5037 ポートを listen する。

23/04/08

8

Page 9: Android Hacks - Hack57

3. ADB のコマンド例

23/04/08

9

Page 10: Android Hacks - Hack57

1. 種々のコマンド• ADB サーバを明示的に起動・停止するコマンド

   $adb start-server

   $adb kill-server

• ADB サーバで認識できているデバイスリストを表示するコマンド

   $adb devices

• デバイスのシェルをホストマシンから操作するコマンド

   $adb shell

23/04/08

10

Page 11: Android Hacks - Hack57

1. 種々のコマンド• デバイスのログを表示するコマンド

   $adb logcat

• リアルタイムでログを出力するのではなく、今現在のログを一度だけ出力したい場合は以下のコマンド

   $adb logcat -d

• ログをフィルタリングしたい場合は、例えば以下のコマンド

   $adb logcat *:I

23/04/08

11

Page 12: Android Hacks - Hack57

1. 種々のコマンド• ログに発生日時を付加して出力したい場合のコマンド

   $adb logcat –v time

• 出力するログバッファを切り替えるコマンド

   $adb logcat –b events

• stdout と stderr を出力できるようにするコマンド

   $adb shell stop

   $adb shell setprop log.redirect-stdio true

   $adb shell start

23/04/08

12

Page 13: Android Hacks - Hack57

1. 種々のコマンド• ログをクリアするコマンド

   $adb logcat -c

• ログバッファの容量を確認するコマンド

   $adb logcat -g

• デバイスのバグレポートを表示するコマンド

   $adb bugreport

23/04/08

13

Page 14: Android Hacks - Hack57

参考 URL• Android プログラミング入門

• http://android.keicode.com/devenv/what-is-adb.php

23/04/08

14