adbコマンド

 adbコマンドをコマンドプロンプトもしくは端末から操作することにより、検証端末でのapkファイル操作が可能になります。eclipseがあればGUIでapkの確認が可能ですがworkspaceにプロジェクトがないとできません。adbでは野良apkでの取り扱いと、その他にAndroidのシェル操作やエラーログの閲覧ができます。コマンドを使用することによりGUIで操作するよりも柔軟的に操作できるようになります。また、いわゆるrootでの権限がなくともある程度の操作は可能です。

TOP

端末操作の準備

 準備としては検証端末の設定を開き [開発者向けオプション] -> [USBデバッグ] をオンにします。またapkの操作等は必要に応じ [セキュリティ] -> [提供不明のアプリ] をオンにします。端末側での設定は以上ですが、PC上でUSBに繋ぐとドライバをインストールしておかなければいけません。ドライバは手っ取り早く各端末メーカーのWebページなどを検索するか、見つからない場合などは、Google USB Driverを設定するかになります。

TOP

Google USB Driver

 SDK ManagerからExtrasにあるGoogle USB Driverをインストールすると、android-sdk\extras\google\usb_driver がつくられます。USBのデバイスドライバーをインストールするためには、Vendor ID(VID)とProduct ID(PID)という情報が必要になります。この2つの情報によって、USBホストはUSBデバイスとドライバーの結びつきを管理しています。Android端末のVIDとPIDを調べる必要があります。Android端末とパソコンをUSBケーブルで接続してみましょう。この時点ではまだドライバーがインストールできる状態にはなっていないので、正常にインストールできなかったというメッセージが表示されることがありますが、ここでは無視してください。次に、デバイスマネージャーを開いて該当端末のプロパティを表示させます。プロパティの画面で「詳細」タブをクリックし、「プロパティ」のプルダウンメニューから「ハードウェアID」を選択します。VIDとPIDが記載されているので、それを元にインストールしたUSBドライバーのinfファイル(システム定義ファイル)を編集します。USBドライバーは、Android SDKをインストールしたフォルダの中のextras\google\usb_driverの下にあります。このフォルダにある、android_winusb.infを編集します。infファイルでは、[ ] で囲まれた名前をセクション名と呼び、次のセクション名までの区間をセクションと呼びます。Google.NTx86セクションは32bit環境向け、Google.NTamd64セクションは64bit環境向けの記述となります。OSが32bit版であればGoogle.NTx86セクションだけを編集すれば正常に認識されるのですが、64bit版の場合は両方のセクションに同じ記述をしなければ正常に認識されないようです。OSがどちらかに関わらず、両方に追記するのが無難です。両セクションに次のような記述を追記します。セミコロンから始まる行はコメント扱いなので、端末名などを記しておくと良いでしょう。

;Toshiba AT570
%SingleAdbInterface% =  USB_Install, USB\VID_0930&PID_0963
%CompositeAdbInterface% =  USB_Install, USB\VID_0930&PID_0963&MI_01 
SingleAdbInterface、CompositeAdbInterfaceとは、パソコンと通信するインタフェースの種類になります。実際に使われるのはどちらか一方ですが、この2つを記述しておけば大抵の端末はカバーできます。編集が終わったら、再びデバイスマネージャーに戻って、「全般」の画面で「ドライバーの更新」を選びます。android-sdk\extras\google\usb_driver を選択すると、ドライバーソフトウェアの発行元を検証できないという警告ダイアログが表示されますが、そのままインストールします。

TOP

Google USB Driver (Windows 8)

 Google USB Driverはデジタル署名がされていません。Windows 7までは、そのようなドライバーでも警告ダイアログが表示されて承認すればインストールができましたが、Windows 8ではデフォルトでは署名なしドライバーはいきなりエラーになってインストールすることができなくなりました。それを回避するには、次のような手順で一時的に署名無効化する必要があります。

  1. マウスカーソルを画面右下に移動し、チャームを表示させて「設定」を選ぶ。
  2. 右下の「PC設定の変更」を選ぶ。
  3. 「全般」を選ぶ。
  4. 右側のリストの一番下にある「PCの起動をカスタマイズする」の下にある「今すぐ再起動する」を選ぶ。
  5. 再起動後のメニューから「トラブルシューティング」を選ぶ。
  6. 「詳細オプション」を選ぶ。
  7. 「Windowsのスタートアップ設定」を選ぶ。
  8. 「7)ドライバー署名の強制を無効にする」を選択するため、キーボードのF7キーまたは数字の7キーを押す。
  9. Windows 8が起動したら、前節の操作手順に従ってGoogle USB Driverをインストールする。
 セキュリティー重視とは言え、とても面倒になりました。さらに、この署名無効化状態はWindowsを再起動すると解除されるため、別のAndroid端末を認識させるためには、再びこの手順で署名無効化する必要があります。

TOP

adbコマンド一覧

 adbコマンド一覧です。
 コマンド操作では、最初にadb devicesを実行し端末を認識させてからコマンドを打たないと動きません。

adbコマンド一覧表
adb devices デバイスが1つしかない場合はシリアルナンバーの指定は省略できます。現在接続可能なデバイスのシリアルナンバーは adb devices コマンドを使って取得できます
-d USBで接続されている実機に対してコマンドを実行する
-e エミュレータに対してコマンドを実行する
-s 指定したシリアル番号の端末に対してコマンドを実行する
adb adbが正しくインストールされていればadbの情報と一緒に、adbのヘルプが表示されます
[parameter]
install *.apk
adb経由でアプリケーションをインストール
(adb 追加指定はファイル名)
[parameter]
uninstall pkgname
adb経由でアプリケーションをアンインストール
(adb 削除指定はパッケージ名)
[parameter]
backup
-f *.apk
-f pkgname
パッケージのバックアップ(pkgnameから*.apkの作成)
[parameter]
shell
adb shell コマンドを使って対象となるデバイスのシェルを起動します
[parameter]
push hoge /sdcard/
エミュレータ/デバイスにファイルをコピーする
[parameter]
pull /sdcard/hoge ./
エミュレータ/デバイスからファイルをコピーする
[parameter]
logcat
ログを見る
[parameter]
shell
cat /data/anr/traces.txt
5秒間以上反応しないアプリのログ閲覧
(Application is not respoding)
[parameter] -d USBで接続されている実機に対してコマンドを実行する
-e エミュレータに対してコマンドを実行する
-s 指定したシリアル番号の端末に対してコマンドを実行する

TOP