2014年1月22日水曜日

【Android】デバッグログ取得方法(非開発者向け)

今回は評価メンバーなど,非開発者が不具合発見時に
開発者にデバッグログを渡せるように
ゼロからデバッグログの取得ができるまでをまとめてみました.

以下の3行程にわたってスクリーンキャプチャとともに説明していきます.
・事前準備編(最初の一度だけ行う)
・端末登録編(Android端末につき一度ずつ行う)
・ログ取得編(毎度行う)
少し長くなりますがお付き合いください.

事前準備編(最初の一度だけ行う)

ここではデバッグログを取得するためのツール類をPCにダウンロードします.
この行程は最初の一度だけ行えば二度と行う必要はありません.

AndroidSDKのダウンロード

デバッグツールを含んだAndroidSDKをダウンロードします.
Android SDKのページにアクセスします.
押したくなる青色のDownload the SDK ADT Bundle for Windowsというボタンですが,
今回はそれを我慢して画面下部のDOWNLOAD FOR OTHER PLATFORMSをクリックし,
SDK Tools Onlyの中にあるandroid-sdk_rXX.X-windows.zipをダウンロードして下さい.

ADT Bundleと書かれているほうはeclipseという
開発環境まで付属しているため,とてもサイズが大きいのです.

ダウンロードが完了したらいい感じの場所に解凍してください.
デスクトップなど邪魔になる場所は避けたほうがいいでしょう.

デバッグ用パッケージの取得

先の行程ではデバッグ用のツールや開発ツールなどを管理するモノをインストールしました.
ここではそれを使ってデバッグ用のツールのみをインストールします.
開発ツールなどはデバッグ取得では不要なので今回はインストールしません.

先の行程で解凍してできたandroid-sdk-windowsフォルダの中に
SDK Manager.exeというモノがあるのでそれを実行してください.
以下のような画面が開いたら
Tools>Android SDK Plaftorm-tools
Extras>Google USB Driver
の2つだけにチェックを入れて(他は外して)Install 2 packages...を押してください.

英語でライセンスが書かれていますが,同意できればAccept Licenseにチェックを入れ,
Installボタンを押します.
するとインストールが始まります.
インストールが完了したらもうSDK Managerは閉じても構いません.

以上でインストール作業は終了です.

パスを通す

ここではadbを実行するにあたり,
毎回入力する労力を減らすためにPCにadbの位置を覚えてもらいます.

先ほどのandroid-sdk-windowsにフォルダが増えているのがわかるかと思います.
デバッグではplatform-toolsadb.exe
コマンドプロンプトから実行することになるので
platform-toolsに環境変数のPATHを通しておくと便利です.

PATHを通すとadb.exeを実行するために
わざわざそのフォルダまで移動したり
>C:\~~~~~\~~~\~~\~~~~\adb などと長々しい階層を入力せずとも
>adb だけで実行できるようになります.

PCマイコンピューターなどの上で右クリックし,プロパティを選択します.
キャプチャ画面はWindows8.1のものですが,7以降なら似た画面になるはずです.
システムの詳細設定を選択します.

システムのプロパティダイアログが開くので,
一番下にある環境変数をクリックします.
環境変数ダイアログが開きます.
下部のシステム環境変数欄から
変数がPathとなっている項目を探して選択し,
編集を押してください.
システム変数の編集ダイアログが開きます.
変数名がPathであることを確認して下さい.

変数値の値をコピーし,メモ帳などに貼り付けてください.
その値の最後に (半角セミコロン)をつけて,続けてplatform-toolsまでのパスを入力してください.

変数値 C:aaaaa\bbbbb\ccc;C:ddddd\eeeee\fffff
↓ 最後に半角セミコロンをつけて
C:\aaaaa\bbbbb\ccc;C:\ddddd\eeeee\fffff;
↓ platform-toolsまでのパスを入力
C:\aaaaa\bbbbb\ccc;C:\ddddd\eeeee\fffff;C:\~~~~~\~~~~~\android-sdk-windows\platform-tools

できたらそれをコピーして
システム変数の編集ダイアログの変数値上書きしてください.

これでコマンドプロンプトでadbと入力してEnterを押すだけで
adbが実行されるようになりました.

実際にコマンドプロンプトを開いてadbを実行してみてください.
'adb'は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
と言われたらPATHが通っていません.
見なおしてください.
Android Debug Bridge version x.x.xx
につづいて長い何かが流れたらPATHが通りました.

事前準備編は以上です.


端末登録編(Android端末につき一度ずつ行う)

Androidのデバッグを取得するためには
ADB(Android Debug Bridge)を用います.
そのためのツールは事前準備編で入手しましたが,
PCがまだAndroid端末(以下,端末)のことをよく知らない状態です.
このままではUSBで接続してもデバッグログが取得できないので
PCに端末のことを登録しましょう.

ドライバを入手する

PCに端末を登録するために必要なのがドライバです.
ドライバは機種によって違うのでここでは紹介できません.
Google先生などに
機種名 adb ドライバ
などで検索してダウンロードして下さい.

ドライバが見つからない場合

Androidの機種はこれまでに数えきれないほど発売されており,
ドライバがどうしても見つからない場合も多々あります.
そういった場合でも大丈夫です.
実はAndroid汎用ドライバを事前準備編でダウンロードしてあります.
これを使うことになりますが,
専用のドライバがある場合はやはりそちらを使ったほうがいいでしょう.

ドライバのインストール

端末をPCにUSBで接続してください.

PCのデバイスマネージャーを開きます.
事前準備編のPATHを通した時と同じように
PCマイコンピュータ上で右クリックをし,プロパティを選択します.
今度はデバイスマネージャーをクリックしてください.
デバイスマネージャーが開きます.
ほかのデバイス内に三角の!アイコンを伴ったものがあるかと思います.
これが接続した端末だと思われるものです.
これを確認するためにはデバイス名で検索してみてください.
下の画像はXperia tablet Zを接続した状態です.
そこでいうところのSGP312で検索します.
Xperia tablet Z(Wifi版)とGoogle先生が教えてくれたのでこれで確かです.
これが接続したAndroid端末かどうかを確認するためには
USBを抜き差ししてこの項目が消えるかどうかでも確認できます.
!がついたデバイスが接続したAndroidだと確認できたら
そのデバイスのドライバをインストールします.

デバイスの上で右クリックしてドライバーソフトウェアの更新を押してください.
どのような方法でドライバーソフトウェアを検索しますか?
と聞かれるので
コンピューターを参照してドライバーソフトウェアを検索します
を選択してください.
次の場所でドライバーソフトウェアを検索しますの欄の参照をクリックし
先ほど検索して入手したドライバを指定します.

専用ドライバが見つからなかった場合は
事前準備編で解凍したandroid-sdk-windowsの中にある
extras\google\usb_driverを指定します.
このフォルダ内に汎用ドライバが入っています.
次へを押すとドライバのインストールが始まります.
ここで無事にドライバのインストールが完了すれば端末登録編は終了です.
デバイスマネージャーで!マークのデバイスが消えたことを確認できれば
ログ取得編へスキップしてください.

☠ドライバがインストールできなかった場合☠

Windows8以降だとドライバをインストールしようとした時に
デバイスのドライバーソフトウェアに関する問題が発生しました。
デバイス用のドライバーソフトウェアが見つかりましたが、このドライバーのインストール時にエラーが発生しました。
サードパーティのINFにデジタル署名情報が含まれていません。
などというエラーが発生することがあります.

Windows8以降ではセキュアブートと言う
無署名のドライバを起動させない,インストールさせない
という仕組みがあります.

しかも残念なことにAndroid汎用ドライバは無署名なのです.
以下ではこれをインストールできるようにする方法を解説します.

今後,再起動が必要となるのでデバッグログを取得しようとしているPCで
このページを開いている場合は別のPCやAndroid端末などでこのページを開きなおしてください
また,作業中の何かがある場合はここで保存して終了しておいてください.

これから無署名ドライバをインストールできるモードでWindowsを起動します.
まず画面右下にカーソルをあて,一番下の設定チャームを選択します.
設定内の一番下にあるPC設定の変更を選択してください.
新しい画面が開きますので,一番下にある保守と管理を選択してください.
この画面はWindows8.1のものなので,Windows8だと少し違います.
保守と管理のページが開いたので
更に一番下の回復を選び,右画面の一番下の今すぐ再起動するを選択します.


すると青いオプションの選択画面が開きました.
トラブルシューティングを選択します.
同じく青い画面でトラブルシューティング画面が開きました.
次は詳細オプションを選択します.
間違えても別のものを選択してはいけません.データが吹き飛びます
詳細オプション画面が開きました.
スタートアップ設定を選択します.
ここでも別のものを選択してはいけません.データが吹き飛ぶのです
以下の画面が表示されたら,再起動ボタンを押してください.
PCが再起動します.
再起動後,また青い画面が出てきます.
スタートアップ設定画面です.
ここで起動するモードを選択します.
今回は無署名ドライバをインストールしたいので,画面でいうところの7ですね,
キーボードの7キーを押してください.
これでWindowsが無署名ドライバをインストールできるモードで起動しました.
再度,端末登録編をやり直してください.
ドライバをインストールできたらすぐにPCを再起動してセキュアブートを有効にしてください.

以上で端末登録編は終了です.
あとは実際にログを取得するだけです.

ログ取得編(毎度行う)

コマンドプロンプトを開く

コマンドプロンプトを開きます.
コマンドプロンプトを探してください.
検索チャームを開いて
cmdと入力することで探すことができます.

PCに接続しているAndroid端末は1台にしたほうが楽です.
複数台接続している場合も後述しますが,どうしても外せない場合を除いて
PCに接続する端末数は1台にしたほうがいいでしょう.

ログを取得する(PCに接続している端末が1台の場合)

コマンドプロンプトで
adb logcat
と入力し,Enterを押してください.
すると,接続している端末のログがリアルタイムで表示されていきます.
端末がログを保存しているので少しは遡ることも可能です.
Ctrl+cで終了します.

準備は長かったですが,ログの取得はこれだけです.
コピーしてメモ帳に貼り付けてテキストファイルにでも保存して
開発者に渡してあげてください.
お疲れ様でした.

ログを取得する(PCに接続している端末が複数台の場合)

どうしても複数台接続したままやらないといけない場合は
まずデバイス名を確認します.
adb devices
と入力し,Enterを押してください.
今接続されているAndroid端末のデバイス名一覧が表示されます.
ただし,ドライバがインストールされていない端末は表示されません.
端末登録編を参照し,インストールしてください.

ここで,どちらがどの端末かは判別がなかなかつきません.
実際にログを表示させて,操作し,ログが操作に連動して発生したらその端末
だとか,
上記画面でいうと,SonyのXperia SO-01BとXperia tablet Zなので,
デバイス名が古いほうがSO-01B,新しいほうがtabletZ
だとかいう方法でなんとかして判別してください.

デバイス名は変わらないので表にするなりなんなりで憶えておいてください.
端末のUSBを抜けるなら1つ抜いて再度adb devicesすれば接続されているのが残るので分かります.

ログを表示させるには
adb -s [デバイスID] logcat
と入力してEnterを押してください.
[デバイスID]は上記画面で調べたデバイスIDに置き換えてください.
ログがリアルタイムで流れます.

終了するときはCtrl+cです.

以上でデバッグログが取得出来ました.
お疲れ様でした.

0 件のコメント:

コメントを投稿