adbコマンドはAndroidのapkファイルなどをデバイスにインストールしたり、ログを見たりするときに使うコマンドです。
Android Studioをはじめとして、大抵の開発用の統合環境はadbコマンドと連動する機能があり、あまりその存在を意識することはないのですが、たまにadb単体で使いたくなることがあります。
例えば、
といった場合などです。
以下で、そのような時に便利なadbのコマンドの使い方をまとめています。
adbはAndroid SDKの「platform-tools」の中にあります。
/sdkのパス/platform-tools/
SDKの場所が分からないときは、Android Studioを使っている場合、上のメニューから「Android Studio->Preferences」を選び、表示されたウインドウの左のメニューから「Appearance & Behavior-> System Settings->Android SDK」を選ぶと、SDKのパスが表示されます。
adbコマンドを使うときは、フルパスでコマンドを打つか、platform-toolsにパスを通しておくと良いでしょう。
デバイスがちゃんと認識されているかどうかは以下のようにして確かめられます。
adb devices
うまく接続されていると
List of devices attached NB45071911000001 device
といった感じでデバイスのリストが表示されます。
接続されていないと、見出しのみが表示されます。
List of devices attached
apkをインストールするには、以下のようにinstallコマンドを使います。
adb install yourApp.apk
しかし、これは上書きインストールはしてくれないので、すでにアプリがインストール済みの場合は以下のようなエラーがでて失敗します。
adb: failed to install yourApp.apk: Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install jp.njf.yourApp without first uninstalling.]
その場合は一度アプリをアンインストールし、再びインストールするか「-r」をつけて上書きアップデートします。
adb uninstall jp.njf.yourApp
このコマンドでアンインストールできます。 「jp.njf.yourApp」の部分はアプリのパッケージ名です。 この場合、アプリの領域に保存したデータなども消えます。
または、
adb install -r yourApp.apk
とすると、アプリは上書きされますが、アプリの領域に保存したデータなどは消えません。
以下のコマンドでログが表示されます。
adb logcat
しかし、これだと全部のログが出るので、見るのが大変です。 特定の文字列だけ検索するなら、grepが使えます。
adb logcat | grep 検索文字列
例えば検索文字列としてパッケージ名を指定すると、そのパッケージ名のアプリに関するログがとれます。
以下のようにファイル出力も可能です。
adb logcat > test.log
実用上、これで十分使えると思います。しかし、logcatはログレベルの指定など、他にもいろいろな機能があり、多すぎてここではとても書き切れません。もしここで紹介した以上の機能が必要なら、Googleの公式ドキュメントを参照してください。
まれにadbがうまく動いていないのでは、という場合があります。 例えば複数の違う開発環境を立ち上げてなんらかの競合が起こった場合などです。 そんなときは以下の起動、終了コマンドでadbのサーバーを再起動します。
adb start-server
すでに起動している場合はなにも表示されません。 新たに起動した場合は、
* daemon not running; starting now at tcp:5037 * daemon started successfully
といったメッセージが出ます。
adb kill-server
正常に終了した場合は特にメッセージは出ません。 すでに終了済みの時には
cannot connect to daemon at tcp:5037: Connection refused
といったメッセージが出ます。
開発中のちょっとしたアプリの確認に使うには上のコマンドぐらい覚えておけば十分ですが、より詳しくはGoogleの公式ドキュメント、Android Debug Bridgeを参照してください。