1: 2018-06-07 (木) 14:09:21 njf |
現: 2018-06-07 (木) 16:19:51 njf |
| adbコマンドはAndroidのapkファイルなどをデバイスにインストールしたり、ログを見たりするときに使うコマンドです。 | | adbコマンドはAndroidのapkファイルなどをデバイスにインストールしたり、ログを見たりするときに使うコマンドです。 |
| | | |
- | Android Studioをはじめとして、大抵のIDEはadbコマンドと連動する機能があり、あまりあまりその存在を意識することはないのですが、たまにadb単体で使いたくなることがあります。 | + | Android Studioをはじめとして、大抵の開発用の統合環境はadbコマンドと連動する機能があり、あまりその存在を意識することはないのですが、たまにadb単体で使いたくなることがあります。 |
| | | |
- | 例えば、リリース用、デバッグ用のapkを作ってテストしていたとき、いざリリースするときに、このapkは本当にリリース用のものか実行して確かめたくなったり、apkを後から暗号化するソフトを使っていて、暗号化後のapkが正常に動くか確かめたりする場合などです。 | + | 例えば、 |
| + | -リリース用、デバッグ用のapkを作ってテストしていて、いざリリースするときに、このapkは本当にリリース用のものか実行して確かめたくなった |
| + | -apkを後から暗号化するソフトを使っていて、暗号化後のapkが正常に動くか確かめたい |
| + | -リリース後ログを見たい、または使っている統合環境のログ機能が貧弱 |
| + | |
| + | といった場合などです。 |
| | | |
| 以下で、そのような時に便利なadbのコマンドの使い方をまとめています。 | | 以下で、そのような時に便利なadbのコマンドの使い方をまとめています。 |
| + | |
| + | *adbの場所 [#p27b6c5e] |
| + | |
| + | adbはAndroid SDKの「platform-tools」の中にあります。 |
| + | /sdkのパス/platform-tools/ |
| + | |
| + | SDKの場所が分からないときは、Android Studioを使っている場合、上のメニューから「Android Studio->Preferences」を選び、表示されたウインドウの左のメニューから「Appearance & Behavior-> System Settings->Android SDK」を選ぶと、SDKのパスが表示されます。 |
| + | |
| + | adbコマンドを使うときは、フルパスでコマンドを打つか、platform-toolsにパスを通しておくと良いでしょう。 |
| + | |
| + | *デバイスの確認 [#p64d8222] |
| + | デバイスがちゃんと認識されているかどうかは以下のようにして確かめられます。 |
| + | adb devices |
| + | |
| + | うまく接続されていると |
| + | List of devices attached |
| + | NB45071911000001 device |
| + | |
| + | といった感じでデバイスのリストが表示されます。 |
| + | |
| + | 接続されていないと、見出しのみが表示されます。 |
| + | |
| + | List of devices attached |
| + | |
| + | *インストール・アンインストール [#ec0e429c] |
| + | |
| + | 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 |
| + | |
| + | とすると、アプリは上書きされますが、アプリの領域に保存したデータなどは消えません。 |
| + | |
| + | *ログを見る [#l563eb37] |
| + | 以下のコマンドでログが表示されます。 |
| + | |
| + | adb logcat |
| + | |
| + | しかし、これだと全部のログが出るので、見るのが大変です。 |
| + | 特定の文字列だけ検索するなら、grepが使えます。 |
| + | adb logcat | grep 検索文字列 |
| + | |
| + | 例えば検索文字列としてパッケージ名を指定すると、そのパッケージ名のアプリに関するログがとれます。 |
| + | |
| + | 以下のようにファイル出力も可能です。 |
| + | |
| + | adb logcat > test.log |
| + | |
| + | 実用上、これで十分使えると思います。しかし、logcatはログレベルの指定など、他にもいろいろな機能があり、多すぎてここではとても書き切れません。もしここで紹介した以上の機能が必要なら、Googleの公式ドキュメントを参照してください。 |
| + | |
| + | *adbサーバーの起動、終了 [#n56be313] |
| + | |
| + | まれにadbがうまく動いていないのでは、という場合があります。 |
| + | 例えば複数の違う開発環境を立ち上げてなんらかの競合が起こった場合などです。 |
| + | そんなときは以下の起動、終了コマンドでadbのサーバーを再起動します。 |
| + | |
| + | **adbサーバーの起動 [#u0299eb9] |
| + | adb start-server |
| + | |
| + | すでに起動している場合はなにも表示されません。 |
| + | 新たに起動した場合は、 |
| + | |
| + | * daemon not running; starting now at tcp:5037 |
| + | * daemon started successfully |
| + | |
| + | といったメッセージが出ます。 |
| + | |
| + | **adbサーバーの終了 [#p575d1df] |
| + | adb kill-server |
| + | |
| + | 正常に終了した場合は特にメッセージは出ません。 |
| + | すでに終了済みの時には |
| + | |
| + | cannot connect to daemon at tcp:5037: Connection refused |
| + | |
| + | といったメッセージが出ます。 |
| + | |
| + | *より詳しくは [#u9a0bf1a] |
| + | |
| + | 開発中のちょっとしたアプリの確認に使うには上のコマンドぐらい覚えておけば十分ですが、より詳しくはGoogleの公式ドキュメント、[[Android Debug Bridge:https://developer.android.com/studio/command-line/adb?hl=ja]]を参照してください。 |