Comments
Description
Transcript
操作説明書 - GBA Co., Ltd.ロゴ
Log Analyzer for Android Platform 操作説明書 Version 1.2.8 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 目次 1. はじめに........................................................................................................................................ 5 2. 概要 .............................................................................................................................................. 5 3. ソフトウェア構成 ............................................................................................................................ 5 4. インストールについて .................................................................................................................... 5 5. LAP ご利用前の注意事項 ............................................................................................................. 5 6. 画面構成 ...................................................................................................................................... 6 7. トレースログの保存 ....................................................................................................................... 6 8. 操作説明 ...................................................................................................................................... 7 8.1. デバイス接続.......................................................................................................................... 7 8.2. LAP 設定 ............................................................................................................................... 7 8.3. 端末設定 ................................................................................................................................ 8 8.4. ログウィービング ....................................................................................................................11 8.5. ログトレース(ログ収集) ........................................................................................................ 15 8.6. 画面ログ .............................................................................................................................. 19 8.7. リソースモニター ................................................................................................................... 20 8.8. オフラインログトレース .......................................................................................................... 27 8.9. ログインポート ...................................................................................................................... 31 8.9.1. USER LOG ................................................................................................................... 31 8.9.2. ログの手動採取方法について ........................................................................................ 33 8.9.3. LAP LOG ...................................................................................................................... 34 8.9.4. OFFLINE LOG ............................................................................................................ 35 8.9.5. ダウンロード .................................................................................................................. 36 8.10. ログエクスポート ................................................................................................................. 39 8.10.1. ログエクスポート .......................................................................................................... 39 8.10.2. アップロード ................................................................................................................. 40 8.11. TraceTree について ............................................................................................................ 42 8.12. LogCatView について ........................................................................................................ 43 8.12.1. TraceLogCat ............................................................................................................... 43 8.12.2. ContentCat ................................................................................................................. 47 8.12.3. BinderCat ................................................................................................................... 48 8.12.4. SQLCat ....................................................................................................................... 49 8.12.5. ActivityCat ................................................................................................................. 55 8.12.6. MethodCat.................................................................................................................. 58 8.13. SQL Query Advisor .......................................................................................................... 66 8.13.1. SQLCat での使用方法 ............................................................................................... 66 8.13.2. クエリプラン診断結果 ................................................................................................... 67 2/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.14. SQL Query Executer ........................................................................................................ 69 8.14.1. SQLiteSchemaTree .................................................................................................... 70 8.14.2. SQLiteExecuterView ................................................................................................. 76 8.14.3. SQLCat からの SQL 実行 ........................................................................................... 78 8.14.4. Query Plan View との連動 ......................................................................................... 79 8.15. ワークスペースに保存される専用プロジェクト...................................................................... 80 9. 外部 API .................................................................................................................................... 81 9.1. 外部 API の概要 .................................................................................................................. 81 9.1.1. ログトレース収集操作 API の特徴 ................................................................................. 81 9.1.2. ログデータ取得操作 API の特徴 ................................................................................... 81 9.2. 利用環境について ................................................................................................................ 81 9.2.1. PC 環境 ........................................................................................................................ 81 9.2.2. ソフトウェア環境 ............................................................................................................. 81 9.2.3. 利用前提 ....................................................................................................................... 82 9.2.4. セットアップ .................................................................................................................... 82 9.3. ログトレース収集操作 API ................................................................................................... 84 9.3.1. 機能 .............................................................................................................................. 84 9.3.2. API 処理イメージ............................................................................................................ 84 9.3.3. LapExternalOperation クラス ...................................................................................... 86 9.3.4. メソッド詳細.................................................................................................................... 86 9.3.5. パラメータ ...................................................................................................................... 88 9.3.6. API 使用例 .................................................................................................................... 92 9.3.7. トレース収集コマンド ...................................................................................................... 93 9.3.8. 制限事項および留意事項について ................................................................................. 94 9.3.9. LAP plugin からのデータベース参照・共有.................................................................... 96 9.4. ログデータ取得 API ............................................................................................................. 97 9.4.1. 機能 .............................................................................................................................. 97 9.4.2. API 説明 ........................................................................................................................ 97 9.4.3. LapExternalDatabase クラス ....................................................................................... 97 9.4.4. TraceInfo クラス .......................................................................................................... 100 9.4.5. TraceResultSet インターフェイス ................................................................................ 101 9.4.6. ログデータセットのタイプ .............................................................................................. 103 9.4.7. API 使用例 .................................................................................................................. 107 10. トラブルシューティング ............................................................................................................. 109 10.1. 端末の接続に関するエラーが表示される .......................................................................... 109 10.2. 操作後の処理結果が正しく表示されない .......................................................................... 109 3/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 改訂履歴 版数 改訂日 Version 1.0 2012 年 4 月 16 日 初版発行 Version 1.1 2012 年 6 月 18 日 LAP Version1.1.0 に合わせて細部を改訂 2012 年 6 月 26 日 一部機能変更により細部を改訂 2013 年 2 月 14 日 LAP Version1.2.0 に合わせて細部を改訂 2013 年 3 月 29 日 一部機能変更により細部を改訂 Version 1.2.1 2013 年 6 月 3 日 LAP Version1.2.1 に合わせて細部を改訂 Version 1.2.2 2013 年 7 月 20 日 機能追加による改訂 Version 1.2.3 2013 年 9 月 2 日 リソースモニタ機能の拡張 Version 1.2 画面ログ機能の追加 Version 1.2.4 2013 年 10 月 1 日 LAP Server 対応ログアップロード・ダウンロード機能追加 Version 1.2.5 2013 年 12 月 24 日 Android4.4 対応 Version 1.2.6 2015 年 2 月 3 日 機能追加による改訂 Version 1.2.7 2015 年 4 月 17 日 Android5 対応 Version 1.2.8 2015 年 8 月 5 日 新アーキテクチャ対応による改訂 4/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 1.はじめに 本資料は「Log Analyzer for Android Platform」の概要ならびに操作方法を説明します。本資料で 扱う Log Analyzer for Android Platform の対応バージョンは 1.2 となります。 2.概要 Log Analyzer for Android Platform(以降 LAP)とは、Android OS の稼働するデバイスから OS 標準のログを収集して解析および分析を行うための支援ツールです。接続したデバイスからログを収集 し、すべてのログデータを永続化して管理することにより、ユーザに分かりやすい形で視覚化することが できます。 3.ソフトウェア構成 LAP は下図で示すようにオープンソースの統合開発環境である Eclipse のプラグインとして構成され ています。プラグインのコアとなる LAP Plugin Core Library、機能によっては Android デバイス側に エージェントとして動作するライブラリを配置することがあります。 Log Analyzer for Android Platform ( Eclipse Plugin) LAP Agent LAP Plugin Core Library JNI 4.インストールについて インストールやアンインストール、アップデート方法については、別資料「LAP インストール手順書」を ご参照下さい。 5.LAP ご利用前の注意事項 Android バージョン 2.3(Gingerbread)/3.x(Honeycomb)/4.0(Ice Cream Sandwich) /4.1,4.2,4.3 (Jelly Bean)/4.4(KitKat)/5.0(Lolipop)を解析対象としています。 ご利用前に、端末固有の USB ドライバをインストールし、Android SDK によるアプリーションの実行・ デバッグ可能な状態にしておく必要があります。 端末固有の問題により、一部の機能が動作しない場合があります。その場合にはサポートセンターにお 問合せください。([email protected]) ADB 接続時に管理権限のない端末(一般端末)の場合、機能が制限されます。(通常のログ採取と分 析のみ可能) LAP 内のライブラリ入替による拡張トレースは、開発用にビルドされた管理権限のある端末上で、 5.0(Lolipop)、4.4(KitKat)、4.0(Ice Cream Sandwich)、4.1,4.2(Jelly Bean)のみ対応となります。 5/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 6.画面構成 LAP 用パースペクティブは、デフォルトでは以下のように配置されます。 分析ビュー表示部 ツリー部 LogCat 部 ツリー部には、ログ収集したトレース情報が追加されていき、エクスプローラーイメージで操作可能とな っています(基本的な操作はツリー部から行います) LogCat 部には、収集したログがカテゴリごとに専用のビューにスプレッドイメージで表示されます(メイ ンの LogCat 以外はログ収集が停止されてからデータが表示されます) 分析ビューは特定のイベントにより視覚化された分析内容を表示します 初期状態に戻す場合には、「ウインドウ」-「パースペクティブのリセット」を選択してください 7.トレースログの保存 LAP では、トレースを行った結果のログはすべて、データベースに自動保存され、「ツリー部」に表示さ れるトレースプロジェクト単位で管理されます。保存されたログは、後で参照し再分析することが可能で す。 トレース ログ DB 参照・分析 6/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.操作説明 8.1.デバイス接続 LAP 使用前に解析対象となる Android デバイスを USB ケーブルで PC に接続します。 LAP 内では ADB 機能を利用しているため、端末を USB デバッグ可能な状態にしておく必要があり ます。 8.2.LAP 設定 LAP 設定では、内部データベースの変更や LAP 情報の参照ができます。変更するにはツリー部の上 部の「LAP 設定」アイコンをクリックします。 ① 画面切り替えタブ 名前 説明 ① 設定画面を切り替えます。(各タブの説明は次項を参照) 画面切り替えタブ [環境設定] 名前 説明 DB 変更 必要に応じてログを保存する DB を変更で きます。新規の場合は存在しないファイル 名を指定します。(「OK」ボタンを押下する と有効) Android AndroidSDK のパスを指定します。 SDK ライセンス ファイル 7/109 ライセンスファイルを指定します。 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [LAP 情報] 名前 説明 LAP 情報 LAP に関する基本情報を表 示します。 8.3.端末設定 端末設定では、デバイス側のプロパティの参照やライブラリなどの各種設定が変更できます。変更する にはツリー部の上部の「端末設定」アイコンをクリックします。 ① シリアル番号 ② 画面切り替えタブ 名前 説明 ① シリアル番号 現在接続されているデバイスのシリアル番号が表示されます。 ② 画面切り替えタブ 設定画面を切り替えます。(各タブの説明は次項を参照) 8/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [端末プロパティ] 名前 説明 プロパティ デバイスのプロパティ値を参照できます。 SQL トレ SQL トレースを有効にします。実際に ON に ース するには端末再起動が必要になります。 端末再起 接続しているデバイスの Dalvik VM を再起 動 動します。 「SQL トレース」「端末再起動」は、一般端末では利用できません。 「SQL トレース」を ON に設定しても、SQL ログが表示されない場合には次項のライブラリ設定を参照し てください。 [ライブラリ設定] 名前 説明 Android OS バージョンを表示します。 バージョン メーカー 接続しているデバイスのメーカー SQLite ラ SQLite ライブラリの入替と復元に使用しま イブラリ入 す。ライブラリを入れ替えると SQL トレース 替・復元 が無効化されているデバイスにおいても SQL トレースできるようになります。復元に より入れ替えたライブラリを元に戻します。 スクロール(下部) Binder ラ Binder ライブラリの入替と復元に使用しま イブラリ入 す。Binder(プロセス通信)のログは通常サ 替・復元 ンプル値のみ出力されますが、入れ替える ことでメインスレッドにおける Binder すべて のログが出力されます。復元により入れ替 えたライブラリを元に戻します。 Content ラ ContentResulver ライブラリの入替と復元 イブラリ入 に使用します。コンテント(リソースアクセス) 替・復元 のログは通常サンプル値のみ出力されます が、入れ替えることで、すべてのログが出力 されます。復元により入れ替えたライブラリ を元に戻します。 9/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 ライブラリ入替は、一般端末で利用できません。 Android バージョンや SQLite バージョンが、LAP 内で管理しているサポートバージョンと一致しない場 合、利用できない場合があります。 ライブラリ入替は、強制的にライブラリを書き換えることで通常無効化されているログを出力できるよう にしています。強制的にライブラリを書き換えているため、予期せぬ動作をおこすことがあるため入替に は十分に注意して下さい。 端末が正常に起動しなくなったことを考慮し、あらかじめご利用端末のシステムバックアップ、復元方法 をご理解の上行うようにしてください。 入替を実行すると、デバイス側と PC 側にオリジナルのライブラリをバックアップします。通常は自動で復 元できます。万が一デバイス側のライブラリが存在しない場合は、PC 側のバックアップを選択して復元 して下さい。 以下のディレクトリにバックアップが保存されます。 使用中の Eclipse ワークスペース/lap_project/backup/シリアル番号/Android バージョン ※入替実行時のデバイスのシリアル番号と Android バージョンのディレクトリが作成されます ※トレース終了後はライブラリを復元しておくことをお勧めします [アプリケーション設定] 名前 説明 インストール/ オフラインログトレース用の専用アプリ アンイストール ケーションを接続しているデバイスにイ ンストール、アンインストールします。 サービス起動/ オフラインログトレース用のデバイス上 サービス停止 で動作するサービスを起動、停止しま す。 オフラインログトレース機能を使用する 場合には必ず起動してください。 10/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.4.ログウィービング 開発中の Android アプリケーションパッケージファイル(APK)のバイトコード中のトレース対象メソッ ドに対し、トレースログを埋め込みます。ツリー部の上部の「ログウィービング」アイコンをクリックすること でログウィービングダイアログ画面が表示されます。ウィザード形式の画面で設定および APK の作成を 行います。 [APK ファイル指定] ①APK ファイル ②「次へ」ボタン 名前 説明 ①APK ファイル ログを埋め込む APK ファイルを指定します。 APK ファイルを指定することで画面下の「次へ」ボタンが有効になります。 ②「次へ」ボタン 「次へ」ボタンを押すことで APK ファイルを分析が始まります。 分析が終了するとメソッド指定画面が表示されます。 11/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [トレースメソッド指定] この画面ではトレースを埋め込むメソッドを指定します。メソッド指定は、画面上のパッケージ/クラス/メソ ッドツリーのチェックボックスによって指定します。 ②フィルター指定 ①パッケージツリー ③分析情報 ③「次へ」「戻る」ボタン 名前 説明 ①パッケージツリー APK を分析した結果からアプリケーションのパッケージの構造をツリー表示し(以降パッケ ージツリー)、先頭のチェックボックスにチェックすることで、該当するパッケージ、クラス、メ ソッドに対してトレースを埋め込むかとうかを指定することができます。この画面の表示直 後は、デフォルトとしてすべてにチェックされます。 ②フィルター指定 パッケージツリーのメソッドに対してのフィルター指定で、フィルター項目が該当するかどう かでチェックボックスの ON/OFF を行います。 フィルター項目にチェックすることで有効(ON)になります。 1) public - メソッドのアクセス修飾子が public 2) protected - メソッドのアクセス修飾子が protected 3) パッケージ - メソッドのアクセス指定がパッケージ 4) private - メソッドのアクセス修飾子が private 5) コンストラクタ - メソッドがコンストラクタ 6) synthetic - コンパイラが自動的に生成するメソッド 7) R - Android 開発環境が自動的に生成するリソース関連のメソッド ③分析情報 APK を分析した結果情報としてメソッド数およびクラス数を表示します。 メソッド数は、abstract, native を含まない数と含んだ数を示します。 クラス数は、abstract, enum, interface を含むクラス数を示します。 ④「次へ」「戻る」ボタン 「次へ」ボタンを押すことで APK 変換、インストール画面に遷移します。 「戻る」ボタンで APK ファイル指定画面に戻ります。 12/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [トレース注入実行] この画面では、対応する端末の設定および変換した APK をインストールかどうか、また、変換した APK を保存するかどうかの設定を行い、トレースを注入および APK の作成をおこないます。 ①端末設定 ②インストール設定 ③APK ファイル保存設定 ④「完了」「戻る」ボタン 名前 説明 ①端末設定 ログ注入したアプリケーションを実行する端末を指定します。 この指定は必須でログウィ-ビングを実行するにあたっては必ず Android 端末を PC に 接続する必要があります。その理由としてトレースを注入する APK を指定した端末に対 応させる必要があり、Android version の確認およびトレース注入後のコード検証で利 用します。 ②インストール設定 この設定をチェックすることで①で指定した端末にトレースを注入した APK ファイルをイ ンストールします。「②インストール設定」と「③APK ファイルの保存設定」は、最低どちら か1つは指定する必要があり、そのことからチェックを外した場合は、「③APK ファイル の保存設定」は必須になります。 ③APK ファイル保存設定 トレースを注入した APK ファイルの保存先を指定します。この指定は必須ではなく、この 指定をしない場合は、「②インストール設定」は必須になります。 ④「完了」「戻る」ボタン 「完了」ボタンを押すことでトレースを注入した APK を作成します。 「②インストール設定」がチェックされていた場合は、APK 作成後にインストールを実行 します。「③APK ファイル保存設定」が指定されている場合は、APK 作成後に指定され た保存先に APK ファイルを保存します。「戻る」ボタンを押すことでトレースメソッド指定 画面に戻ります。 13/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 Proguard にて難読化されたアプリケーションでは、分析時に難読化されたクラス、メソッド名にて表示さ れます。名称にて処理状況を判断したい場合には難読化なしの APK にて実行することをお勧めします。 埋め込むログ範囲によって、アプリケーションが性能低下することがあります。 トレースを注入した APK の署名として、Android 開発の Debug 署名を使用しています。正式な署名でな いと動作しないアプリケーションの場合はご留意ください。 端末への APK ファイルのインストール時にエラーになる場合、同一のアプリケーションが既に存在する ことでエラーになることがあります。この場合、一度、対象のアプリケーションを削除してから実行してく ださい。 トレースを注入した APK でメソッドトレースを取得する場合、APK を作成した LAP プロジェクト環境で行う 必要があります。その理由としてトレース APK 内にはトレース用のクラス名およびメソッド名を含めてお らず、クラス名、メソッド名等のメソッド情報は外部ファイルとして APK の作成時に出力しています。この 外部ファイルは、”lap_project\trace\method\アプリケーション名_APK 作成日付.csv”で作成されます。 このため、APK を作成した LAP プロジェクト以外でメソッドトレースを取得する場合は、この APK に対応 するメソッド情報ファイルをコピーし、”lap_project\trace\method\”の下に格納する必要があります。 APK に対応するメソッド情報ファイルが存在しない場合は、ログ取得時、以下のエラーを出力します。 [ERR-020000] Error on user operation.[トレース対象のメソッドリストファイルが見つかりません。 14/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.5.ログトレース(ログ収集) ログトレースとは、接続している Android デバイスからログを収集して内部データベースに保存する機 能です。LAP の分析やデータの視覚化を行うには最初にログトレースを実行する必要があります。ログ トレースの実行はツリー部の上部にある「ログトレース実行」アイコンをクリックします。 アイコンをクリックすると、デバイスの接続確認を行い、正常であれば ダイアログが表示さます。端末が接続されていない、または接続に問 題がある場合はエラーメッセージが表示されます。 [接続できない場合のメッセージ] (次ページに続く) 15/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [ログトレース実行] ① トレース名入力 ② シリアル番号選択 ③ 端末名入力 ④ Android バージョン入力 ④ コメント入力 ⑥ ログ種別 ⑥ CPU+MEMORY 情報 ⑧ メソッドトレース ⑨ 画面ログ ⑩ 詳細設定 名前 説明 ① トレース名入力 データベース単位で一意となるトレース名を入力します。LAP でのプロジ ェクトに相当するため、重複する名前は入力できません。既存のトレース 名が選択でき、該当する情報が表示されるます。類似したトレースの入力 の際に利用できます。(必須項目) ② シリアル番号選択 現在接続されているデバイスのシリアル番号が表示されます。再選択す ると、端末名と Android バージョンがデバイスに対応した値に書き換わり ます。 ③ 端末名 ユーザが任意で入力できる端末名称です。対象の Android デバイス端末 の製品名などを入力して下さい。任意で入力する他にシリアル番号選択 にて変更できます。 ④ Android バージョン Android のバージョンを選択します。リストにない独自のバージョンの入 力も可能です。任意で入力する他にシリアル番号選択にて変更できます。 ⑤ コメント入力 トレースに対する付加情報をユーザが任意で入力できます。後で内容を 確認するためのコメントを入力して下さい。 ⑥ ログ種別 Android デバイスから収集するログの種別を選択できます。 16/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 ログには以下の 3 種類があります。 main - メインログ (DDMS の LogCat にてデフォルトで表示されるもの) イベント – イベントログ radio – 無線や電話関連に関するログ system - システムログ ※最低1つ選択する必要があります ※radio に関してはログが膨大なため必要ない限りは無効にして下さい ※LAP のすべての機能を使用にするには main ログとイベントログは有 効にして実行して下さい ⑦ CPU+MEMORY 情報 トレース時の CPU 稼働率、メモリ利用量を採取します。 ※リアルタイムで表示されます。 ※「モニターチャート」機能で参照できます。 ⑧ メソッドトレース取得 ログウィービングで変換したアプリケーションのメソッドトレースログを取得 する場合、「取得する」にチェックします。チェックすると「トレース使用メモ リサイズ」の指定が有効になります。この指定は端末側のログ出力のため のメモリ領域のサイズで、ログ出力の制限サイズになります。 端末のメモリリソースおよびトレース量を考慮し、指定してください。(デフォ ルト 10MB) ⑨ 画面ログ 画目ログ(イメージ)を取得する場合、「取得する」にチェックします。チェッ クした場合、指定されたサイズ、フレームレートに従い、トレース中のスナ ップショットを PC 上に保存します。 ※リアルタイムで参照できます。 ※「モニターチャート」「画面モニタ」機能で参照することが可能です ⑩ 詳細設定部 「実行前にログをクリアする」をチェックするとログトレース前にデバイス側 の現在のログをすべてクリアします。 ※チェックしないとデバイス内に残っているログもそのまま収集します Logcat 引数はフィルタリングのみ入力可能です。ハイフン(-)オプションは サポートしていません。 Example) SqliteDatabaseCpp:* *:S 上記はタグ SqliteDatabaseCpp のすべてのログレベルを収集、他はサ イレントにする設定です。 ※フィルタリングの引数については Android に付属している logcat のヘ ルプを参照して下さい ※通常この引数はデフォルトの設定を変更しないで下さい 前ページの必要項目を入力後、入力に問題がなければ OK が有効となりログトレースを開始できます。 ログトレース中は、ログトレース停止以外は操作できません。 17/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 ログトレースを実行すると「TraceLogCat」に入力したトレース名が追加されログトレース実行状態とな ります。この状態で、収集対象の操作を Android デバイス側で行って下さい。ユーザがデバイスを操作 している間に、リアルタイムでログが収集されます。 デバイス側の操作が終了したら、ログトレース終了をクリックします。 デバイス側の操作が終了したら、ログトレース終了をクリックします。解 析が行われ、カテゴリごとに LogCatView にデータが表示されます。 18/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.6.画面ログ 画面ログとは、トレース中に Android ログと同時に画面のキャプチャー画像を記録する機能です。トレ ース開始時に、画面ログ項目の「取得する」をチェックすることで、画面ログモニターに実際の端末画面 をリアルタイム表示します。 端末に表示されて いる画面をリアルタ イム表示 また、トレース終了後も、トレース名の右クリックメニューから表示(再生)することが可能です。 下記の機能 一覧参照 ○ 画面ログモニターの機能一覧 再生 画面ログを再生します。 一時停止(解除) 再生中の画面ログを一時停止します。(停止中の場合、解除) 停止 再生中の画面ログを停止します。 保存 現在表示されている画面ログを静止画、または動画に保存します。 静止画/動画の指定は保存するときの拡張子で決定します。 (PNG:静止画、MOV:動画) 静止画の場合、現在表示されている画面ログが保存されます。 19/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 ○ トレース時のオプション 画面サイズ 端末の解像度の対してのキャプチャサイズを比率で指定します。 フレームレート 秒間のキャプチャー回数を指定します。 画面ログを「取得する」に設定すると、通常時より、5~20%増の CPU 負荷が発生します。 CPU 負荷は、画面サイズ、フレームレートの数値に比例して大きくなります。 画面サイズ:40% フレームレート:10 → 20%増 画面ログは、エクスポート/インポート機能に対応しておりません。そのため、退避、復帰させる場合に は、手動で行う必要があります。 ※ 画面ログの格納フォルダ: DB 格納フォルダ¥DB 名.screen DB 名を手動で変更した場合には、格納フォルダ名も同様に変更する必要があります。 8.7.リソースモニター リソースモニターとは、端末の CPU 利用率・Memory 利用サイズ・画面ログなどのデバイス状況を表 示する機能です。トレース開始時に、CPU+MEMORY を「ON」、または画面ログの「取得する」をチェッ クすることで、リアルタイム表示します。 リアルタイム 表示 また、トレース終了後も、TraceLogCat の右上メニューから表示することが可能です。 20/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 ○ 表示リソース A B1 B2 C D E A 画面ログ 画面ログのキャプチャー画像が表示されます。 ※ 画面ログを「取得する」設定時に表示されます。 ※ 画面に変化のない時には表示されません。 B1,B2 CPU 稼働率 1秒間あたりの CPU 稼働率をコア単位で表示します。 C メモリ利用サイズ カーネルのメモリ利用状況を表示します。 D CPU クロック CPU クロックの利用周波数帯をコア単位に表示します。 E ログ件数 1秒間あたりのログ件数を表示します。 ○ 画面の基本操作 [拡大/縮小] 拡大したいポイントにマウスポインタを合わせ、CTRL+マウスホイールで拡大/縮小します。 拡大:CTRL を押しながら、マウスホイールを前に動かす 縮小:CTRL を押しながら、マウスホイールを後に動かす 21/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [範囲選択(拡大)] 各グラフ上で任意の範囲を選択することにより、グラフを拡大します。 選択範囲に拡大される [移動] グラフエリアの中央にしたいポイントをクリックすることで横移動します。 センタリングしたい場所をクリック [全画面表示] 画面右上のメニューをクリックすることで、グラフを全体表示します。 [画面ログの拡大とコピー] 画像にカーソルポインタを合わせると拡大します。また、右クリックすると、コピーメニューが表示され ます。 カーソル位置の画像 を拡大 22/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 右クリックでコピーメニュー表示。 Copy 選択でクリップボードへコピー されます。 ○ 表示グラフの操作 リソースモニターでは、設定画面で、グラフ描画を変更することができます ② 強調表示 ① 表示、非表示 ③ 簡易フィルタ 23/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [強調表示] 任意の閾値を入力することで、値を超過した部分を強調表示します。 例) CPU 使用率 70%で表示 閾値を超えた部分を表示 [表示、非表示] チェックされたグラフのみ表示します。 [簡易フィルタ] ログにフィルタ設定することで、任意のログの発生ポイントを表示します。 例) エラーログのみ表示するフィルタ追加 フィルタ条件を入力 24/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 フィルタリングされたログの発生ポイント ○ TraceLogCat 連動 拡大/縮小、範囲選択(拡大)、移動の各操作を行った場合、操作後に表示される時間帯に出力され たログを表示します。(フィルタグラフの場合、簡易フィルタによって設定された条件も自動的に付与さ れます。) 例)範囲選択の場合 任意のポイントから右に向かってドラッグ 25/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 該当ログを表示 全ての時間帯の表示に戻すには全画面表示を行います。グラフが全体表示され、ログも全件表 示されます。全画面表示では TIME 項目条件だけがクリアされます。他の項目条件を指定している 場合は TraceLogCat ビューでフィルタリング解除してください。 ○ 画面ログモニター連動 画面ログ再生時に、リソースモニタ上に時間軸を表示します。 26/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.8.オフラインログトレース オフラインログトレースとは、PC と USB 接続していない Android デバイスのログを収集する機能です。 Android デバイスに専用アプリケーションをインストールし、専用アプリケーションを操作しログを収集し ます。収集したログは Android デバイス上に保存されますが、後から LAP のログインポート機能で LAP に取り込んで操作することができます。この機能により、通常状態(USB 未接続)での端末検証、屋外で の検証、端末スリープ時の検証等の場合に Android デバイスのログを収集し、LAP での分析やデータ の視覚化をすることができます。 オフラインログトレースでは収集したログを Android デバイスの内蔵ストレージ(SD カード)に保存する ため、内蔵ストレージがないデバイスでは利用できません。 オフラインログトレースでは「CPU+MEMORY 情報」「メソッドトレースログ」は収集できません。また、ト レース終了条件も指定できません。 ここでは専用アプリケーションでのログ収集方法を説明します。専用アプリケーションのインストール方法 は「8.3 端末設定」、収集したログの LAP への取り込み方法は「8.9.4 OFFLINE LOG」をそれぞれ参 照してください。 [サービスの起動] 事前に Android デバイス上で動作するオフラインログトレース用サービスを起動します。 起動は LAP より行います。詳しくは「8.3 端末設定」を参照してください。 [専用アプリケーションの起動] ログトレースを実行したい Android デバイス上で専用アプリケーションをタップし起動します。 27/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [ログトレース実行および停止] ① トレース名入力 ② コメント入力 ③ ログ種別 ④ 詳細設定部 ⑤ トレース開始 ⑥ トレース終了 名前 説明 ① トレース名入力 実行するログトレースを識別するためのトレース名を入力します。 Android デバイスに保存されているトレースと同一名は入力できません。 また、LAP に保存されているトレースと同一名も入力しないでください。 未入力の場合は「lap_トレース開始日時」というトレース名でトレースを開 始します。(例:lap_20130621130010) ② コメント入力 トレースに対する付加情報をユーザが任意で入力できます。後で内容を 確認するためのコメントを入力して下さい。 ③ ログ種別 Android デバイスで収集するログの種別を選択できます。 ログには以下の 3 種類があります。 main - メインログ (DDMS の LogCat にてデフォルトで表示されるもの) events – イベントログ radio – 無線や電話関連に関するログ system - システムログ ※最低1つ選択する必要があります ※radio に関してはログが膨大なため必要ない限りは無効にして下さい ※LAP のすべての機能を使用にするには main ログとイベントログは有 28/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 効にして実行して下さい ④ 詳細設定部 「実行前にログをクリアする」をチェックするとログトレース前に Android デ バイスの現在のログをすべてクリアします。 ※チェックしないと残っているログもそのまま収集します フィルター文字列は Logcat コマンドのフィルタリングオプションを入力可能 です。ハイフン(-)オプションはサポートしていません。 Example) SqliteDatabaseCpp:* *:S 上記はタグ SqliteDatabaseCpp のすべてのログレベルを収集、他はサ イレントにする設定です。 ※フィルタリングの引数については Android に付属している logcat のヘ ルプを参照して下さい ※通常この引数はデフォルトの設定を変更しないで下さい ⑤ トレース開始 上記項目入力後、入力に問題がなければログトレースを開始します。 ログトレース実行中は、トレース終了以外は操作できません。 ⑥ トレース終了 実行中のログトレースを終了します。 ログトレース実行中は通知領域にアイコンが表示されます。 [保存されているログの確認] メニューの「トレース一覧」より保存されているログが確認できます。 ① トレース一覧 ② バージョン情報 名前 説明 ① トレース一覧 トレース一覧画面を表示します。 ② バージョン情報 バージョン情報を表示します。 29/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [トレース一覧] ① トレース一覧 ② 削除 名前 説明 ① トレース一覧 Android デバイスに保存されているログ一覧を表示します。 トレース名とログサイズが表示されます。 ② 削除 トレース一覧で選択したログを削除します。 [サービスの停止] オフラインログトレース機能を使用しない場合はオフラインログトレース用サービスを停止してください。 停止は LAP より行います。詳しくは「8.3 端末設定」を参照してください。 30/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.9.ログインポート ログインポートとは、Android SDK を使って手動で採取したログや次項で説明するログエクスポートに より出力したログを取り込む機能で、この機能により、LAP のない環境からのログや別の LAP で採取し たログを使用中の LAP に取り込んで操作することができます。また、オフラインログトレース機能で収集 したログや LAP Server に登録されているログをダウンロードして取り込むことが可能です。 8.9.1.USER LOG ログインポートを実行するには、「ログインポート」をクリックします。 アイコンをクリックすると、ログインポートのダイアログが開きます。 USER LOG では、手動により出力したログをインポートできます。入 力する項目はログトレースとほぼ同じ内容になります。 [ログインポート USER LOG] ① インポート種別タブ ログトレース実行①~⑤と同じ ② main ログファイル ③ イベントログファイル ④ radio ログファイル ⑤ system ログファイル ⑥ 文字コード 31/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 名前 説明 ① インポート種別タブ インポートするログの形式に合わせて種別を選択します。 USER LOG - ユーザが手動により保存したログが対象 LAP LOG - LAP のログエクスポートにより出力したログが対象 ② main ログファイル logcat の main バッファ内に出力されたログを保存したファイルを指 定します。 ③ イベントログファイル logcat の events バッファ内に出力されたログを保存したファイルを指 定します。 ④ radio ログファイル logcat の radio バッファ内に出力されたログを保存したファイルを指 定します。 ⑤ system ログファイル logcat の system バッファ内に出力されたログを保存したファイルを 指定します。 ⑥ 文字コード 指定したログファイルの文字コードを指定します。 必須項目を入力して、インポート対象のログを指定して OK をクリックするとログインポートが実行されま す。 [USER LOG ログインポート正常終了] ※USER LOG では、プロセス名やスレッド名がログに含まれていないため、それぞれ PID、TID で表示 されます 32/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.9.2.ログの手動採取方法について USER LOG でインポートするログを手動で採取する方法を解説します。解説では、Windows7+ Android Debug Bridge version 1.0 を使用しています。 ① ログを採取したい Android デバイスを PC に接続してコマンドプロンプトを起動します。プロンプト にて次のように入力します。 >cd %ANDROID_SDK_ROOT%¥platform-tools %ANDROID_SDK_ROOT%は Android SDK のインストールされているルートディレクトリです (お使いの環境に合わせて入力して下さい) 環境変数 PATH に上記のディレクトリが設定済みならカレントディレクトリの変更は不要です ② adb コマンドが使用可能であるか確認します。 >adb version Android Debug Bridge version 1.0.XX 上記のようにバージョンが表示されれば adb コマンドが使用できます ③ main ログをファイルに保存するには、以下のように入力します。 >adb logcat –v long –b main > 任意のファイルパス 任意のファイルパスは保存先のファイル名を指定して下さい -v ではログのフォーマットを指定しています、LAP でインポートできるのは long、time、 threadtime の 3 種類です 特別な理由がない限りは long フォーマットを使用して下さい、time や threadtime ではログの認 識が完全でない場合があります -b で採取するログバッファを指定します 他オプションについては adb コマンドのヘルプを参照して下さい ④ events ログと radio ログ、system ログも同時に採取する場合は、別のコマンドプロンプトで同様の 手順で最後のコマンド実行を以下のように入力します >adb logcat –v long –b events > 任意のファイルパス >adb logcat –v long –b radio > 任意のファイルパス >adb logcat –v long –b system > 任意のファイルパス ⑤ ログをファイル出力している間にデバイス上でログ採取したい操作を行って下さい。 33/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.9.3.LAP LOG LAP LOG のインポートを行う場合も同様にログインポートをクリックします。ログ種別で LAP LOG を選択します。 [ログインポート LAP LOG] ① LAP LOG 選択 ② 全選択/解除 ③ トレース一覧 名前 説明 ① LAP LOG 選択 LAP のログエクスポートにより出力されたファイルを選択することで、ログ インポートが実行できます。 ② 全選択/解除 トレース一覧を全選択または選択を解除します。 ③ トレース一覧 選択したファイルが LAP のログエクスポートにより出力されたファイルの 場合に、ファイルに含まれるトレース名の一覧が表示されます。選択によ りインポートするログを選択できます。 [LAP LOG ログインポート正常終了] LAP LOG では、トレース名などの基礎情報は元の情報を引き継ぎます インポート先の LAP に既に存在するトレース名がエクスポートファイルに含まれる場合、トレース名 に番号が付加されます 34/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.9.4.OFFLINE LOG オフラインログトレース機能で収集したログのインポートを行う場合も同様にログインポートをクリック します。ログ種別で OFFLINE LOG を選択します。 オフラインログトレース実行中にはログインポートしないでください。実行中の場合はトレースを終了させ てからインポートしてください。 [ログインポート OFFLINE LOG] ① シリアル番号 ② 端末のトレースログファイルを削除する ③ 全選択/解除 ④ トレース一覧 名前 説明 ① シリアル番号 現在接続されているデバイスのシリアル番号が表示されます。再選択す ると、選択したデバイスに対するトレース一覧を表示します。 ② 端末のトレースログ チェックするとログインポート後にデバイスに保存されているログファイル ファイルを削除する を削除します。 ③ 全選択/解除 トレース一覧のトレース名を全選択または選択を全解除します。 ④ トレース一覧 選択したデバイスに保存されているログファイルのトレース名一覧が表示 されます。選択によりインポートするログを選択できます。 [OFFLINE LOG ログインポート正常終了] 35/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.9.5. ダウンロード ネットワーク上に LAP Server が存在する場合、LapServer に登録されたログトレースをローカルの LAP 環境にダウンロードし、取り込むことができます。操作は最初に LAP Server からダウンロード が許可されたトレースリストを取得します。次にダウンロードをするトレースを選択し、最後に「OK」ボ タンを押すことで選択したトレースのダウンロードを行います。 [ログインポート DOWNLOAD トレースリスト取得] ① LAP Server URL ② LAP Server ログイン ID ③ LAP Server パスワード ④ トレースリスト取得 名前 ① 説明 LAP Server URL ネットワーク上の LAP Server の URL を設定します。 LAP Server と LAP Client 間の通信は、HTTP プロトコルを使用します るため、”http;//” または”https://”から入力します。 ② LAP Server ログ LAP Server にログイン可能なログイン ID を指定します。 イン ID ③ LAP Server パス ワード ③ で指定したログインIDに対応するパスワードを指定します。 URL とログイン ID は前回の入力を保持しますが、パスワードは毎回入力 する必要があります。 ④ トレースリスト取得 上の①②③の入力によりトレースリスト取得ボタンが有効になります。こ のボタンを押すことで Lap Server に接続し、ダウンロード可能なトレース リストを取得し、一覧表示します。 36/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [ログインポート DOWNLOAD トレース選択] ① トレースの全選択および解除 ② トレースリストクリア ③ トレースリスト 名前 説明 ① トレースの全選択/解除 トレースリストのトレース名を全選択または選択解除します。 ② トレースリストクリア トレースリストをクリアします。 トレースリストを取得した場合、ボタンは有効になります。その状態で は URL/ログイン/パスワード入力フィールドは無効で入力することは できません。このリストクリアボタンを押すことで、トレースリストをクリ アし、URL/ログイン/パスワード入力を有効にすることができます。 ③ トレースリスト LAP Server に登録されているダウンロード可能なトレースの一覧で す。各カラムの意味は以下になります。 1 カラム目: ダウンロード選択チェックボックス 2 カラム目: トレース名 3 カラム目: 端末情報 (モデル名 シリアル番号 Android version) 4 カラム目: トレース開始日時 5 カラム目: 登録情報 (登録ユーザ・LAP Server ホスト名・登録日 時) 37/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [DOWNLOAD ログインポート正常終了] 必須項目を入力して、インポート対象のログを指定して OK をクリックするとログダウンロードが実行され ます。 ダウンロードするトレースと同じ名前のトレースが既に存在する場合は、ダウンロードするトレ ース名に”(同一名のカウント数)”を付加します。 38/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.10.ログエクスポート ログエクスポートとは、ログトレースやログインポートにより収集したログを、別の LAP で取り込むため のファイルを出力する機能です。このログエクスポートでは、LAP 内部のデータベースに保存されている 情報も出力されるため、同等の情報を別の LAP 環境に移行することができます。実行するには、ログエ クスポートをクリックします。また、ネットワーク上に Lap Server が存在する場合、ローカルに保存してい るログをアップロードすることができます。 8.10.1.ログエクスポート [ログエクスポート] ① 全選択/解除 ② トレース一覧 ③ エクスポートパス 名前 説明 ① 全選択/解除 トレース一覧を全選択または選択を解除します。 ② トレース一覧 使用中の LAP に含まれるトレース名の一覧が表示されます。選択により エクスポートするログを選択できます。 ③ エクスポートパス 出力するファイルのファイルパスを指定します。 1つ以上のトレースを選択して、任意のエクスポートパスを設定後に OK をクリックすることでログエクス ポートが実行されます。 処理が終了すると以下のように表示されます。 [エクスポート 正常終了] 39/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.10.2.アップロード ネットワーク上に LAP Server が存在する場合、LAP Server に対してローカルの LAP 環境に保存さ れているログトレースをアップロードすることができます。 [アップロード] ① LAP Server URL ② LAP Server ログイン ID ③ LAP Server パスワード ④ 全選択/解除 ⑤ トレース一覧 名前 説明 ① LAP Server URL ネットワーク上の LAP Server の URL を設定します。 LAP Server と LAP Client 間の通信は、HTTP プロトコルを使用し まするため、”http;//” または”https://”から入力します。 ② LAP Server ログイン ID LAP Server にログイン可能なログイン ID を指定します。 ③ LAP Server パスワード 上の②で指定したログインIDに対応するパスワードを指定します。 URL とログイン ID は前回の入力を保持しますが、パスワードは毎回 入力する必要があります。 ④ 全選択/解除 トレース一覧のチェックボックスを全選択、または全解除します。 ⑤ トレース一覧 LAP に保存されているトレース名の一覧が表示されます。選択によ りアップロードするログを選択できます。 ※チェックボックスが表示されていないトレースは、ダウンロードされ たトレースです。サーバーへの重複登録を避けるためにチェックボッ クスは表示しません。 40/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 1つ以上のトレースを選択して、URL/ログイン ID/パスワードを設定後に OK をクリックすることで LAP Server に対してログアップロードが実行されます。処理が終了すると以下のように表示されます。 [アップロード 正常終了] LAP Server に既に登録されているトレースログと同一のログを登録することはできません。 アップロード実行では選択されたログが既に登録されているかどうかを確認し、存在している場合は エラーを表示します。(端末シリアル番号、トレース開始日時、トレース終了日時が同じ場合、同一ロ グと定義します。) LAP 画面でのアップロード処理においての終了は、LAP Server に選択したトレースログデータの転 送が完了した時点になります。LAP Server では、その後にデータ登録処理を行いますので LAP の 画面の終了が LAPServer 側のデータ登録の完了ではないことに注意してください。 この理由として大量のログをアップロードした際にサーバー側のデータ登録に時間が非常にかか り画面と同期して登録することができないためになります。サーバー側のデータ登録が正常にできた かどうかの確認は、終了のダイアログにおいて「リクエスト番号」が表示されます。このリクエスト番号 を LAP Server WEB サービスにおいて検索し、処理結果を確認します。 (LAP Server version 1.0 においては処理結果の参照は実装されておらず、次の LAP Server version で実装予定です。) 41/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.11.TraceTree について ログトレースにより、収集したログは TraceTree にて以下の構成で表示されます。 +トレース名 +プロセス名(PID) +スレッド名(TID) +スレッド名(TID) +プロセス名(PID) +スレッド名(TID) +トレース名 ・・・ ※プロセス名やスレッド名が取得できなかった場合はそれぞれ ID のみを表示します ツリーでトレースを選択して右クリックすると以下のメニューが表示されます。 [開いているトレースを右クリック時] [閉じているトレースを右クリック時] 名前 説明 ① 関連ビューを開く パースペクティブ内で非表示になっている LogCatView を全て開き ます。 ② トレースログを閉じる 開かれているトレースログをすべて閉じます。 ※不要なトレースログは閉じた方がメモリを節約できます ③ トレースログを開く 閉じているトレースログを開きます。 ④ トレース名変更 トレース名称を変更します。この名称はデータベース内で重複した名 前をつけることはできません。 ⑤ トレースログを削除する 選択されたトレースログをすべて削除します。 ⑥ プロパティ トレース実行時に入力した情報の表示および変更ダイアログが表示 されます。 ※ショートカットキーが割り当てられていますが、環境によっては動作しないことがあります 42/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [プロパティ] ログトレース時に入力した情報が表示されます。 シリアル番号とダウンロード情報以外はすべて編 集可能です。 ※ダウンロード情報は、LAP Server からダウン ロードしたログトレースのみ表示されます。 8.12.LogCatView について LogCatView とは、ログトレースにより収集したログをスプレッドシートイメージで表示するためのビュ ーです。いくつかカテゴリが分かれており、それぞれ独立してデータが表示されます。 8.12.1.TraceLogCat 収集したログを全て表示するビューです。 名前 説明 ID この LogCatView におけるログの一意性を表す番号。 LEVEL ログの出力レベルで、6種類。 ※文字色を決定 VERBOSE(黒)、DEBUG(青)、INFO(緑)、 WARN(橙)、ERROR(赤)、ASSERT(黒)。 TYPE ログの種別。(MAIN、EVENTS、RADIO、SYSTEM) TIME ログが出力された日時。 PID ログを出力したプロセスのプロセス ID。 TID ログを出力したスレッドのスレッド ID。 アプリケーション PID に対応するプロセス名。 TAG ログに指定されたタグ。 TEXT ログメッセージ。 ※色付きの項目は他の LogCatView にも存在します 43/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [列名クリック] 列名をクリックすると上記のダイアログが開きます。処理選択により各種機能が使用できます。 処理名 説明 ソート 並び順を選択することで、選択した項目で昇順または降順でログを並び 替えます。 フィルタリング 選択した項目に対して、条件を入力することでフィルタリングを実行できま す。 [フィルタリング] ① 対象項目 ② 条件 ③ 値 ④ 任意選択 44/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 名前 説明 ① 対象項目 クリックした項目が表示されます。(変更不可) ② 条件 条件には、完全一致、任意選択や範囲条件、文字列の部分一致などが 選択できます。 ③ 値 任意選択以外で、条件となる値を入力します。 ※項目によっては、ダブルクリックで入力補助ダイアログが開きます ④ 任意選択 表示されているログから一覧を選択できます。複数の条件を指定したい場 合に使用します。最大 100 件まで表示されます。 ※ソートおよびフィルタリングはすべての LogCatView で使用できます ツリー部のプロセスやスレッドをクリックすると、PID や TID にフィルタリングが適用されます。 [右クリックメニュー] 機能名 説明 ① すべて選択 ログを全選択します。 ② コピー 選択したログをクリップボードにコピーします。 ③ ソート解除 適用されているソートを解除します。 ④ フィルタリング解除 適用中のすべてのフィルタリングを解除します。 [ツールバー] 左からファイル出力、ファイル出力(Andorid ログ形式)、経過時間、 Resource MonitorChart となっています。 機能名 説明 ① ファイル出力 対象のログを CSV ファイルで出力します。「すべて」を選択すると、全デー タを対象とします。「選択行のみなら選択されたログだけファイルに出力さ れます。 ② ファイル出力 (Android ログ形式) ③ 経過時間 現在表示されているログを Android ログ形式で出力します。出力するフォ ーマットは time、threadtime、long から選択します。 ログ全体の経過時間をチャート表示します。 45/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 ④ Resource Monitor Chart トレース時に採取した CPU 稼働率とメモリ利用量をチャート表示します。 [チャート – 経過時間] B A ログのタイムスタンプから経過時間を表示するチャートです。ログがどの時間帯で多く出力されていたか 判断することが可能です。上記チャートの例では、 A: トレース開始から 2 秒後に短時間で大量にログが出力されている。 B: ログ間の時間幅が大きい。(時間の要する処理 OR アイドル状態) という予想ができます。 [チャート – Resource Monitor Chart] CPU、メモリ状況をチャート表示します。 詳細は「8.7. リソースモニター」をご参照ください。 46/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.12.2.ContentCat Android における ContentProvider を利用した際に出力されるログを表示するビューです。 名前 説明 URI ContentProvider で定義されている URI。 PROJECTION 参照カラム名。OPERATION が query の場合にのみ表示。 OPERATION ContentProvider における操作種別。 ※文字色を決定 query(青)、insert(紫)、update(緑)、delete(橙)。 SELECTION + 操作対象となるレコードを抽出するための条件とソートに指定した項目。 ORDER OPERATION が query の場合にのみ表示。 LAP TIME 処理に要したラップタイム。(ミリ秒) ※100 ミリ以上は文字色を赤で表示 BLOCKING ブロッキングパッケージ。 PACKAGE SAMPLE PERCENT サンプルパーセント。 [列名クリック] [フィルタリング] [右クリックメニュー] 「TraceLogCat」ビューと同様です。 [ツールバー] 左からファイル出力、シーケンス出力、経過時間となっています。 機能名 説明 ① ファイル出力 「TraceLogCat」ビューと同様です。 ② シーケンス図 UML のシーケンス図を出力します。 ③ 経過時間 「TraceLogCat」ビューと同様です。 47/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [ContentCat シーケンス図] メッセージを送信したプロセス メッセージを受信したプロバイダー メッセージの形式: メッセージ番号.OPERATION | ラップタイム -> URI ContentCat のシーケンス図では、ContentProvider を使ったアプリケーション自身のデータまたは他 アプリケーションのデータを参照、追加、更新、削除した際の処理順とラップタイムが表示されます。 8.12.3.BinderCat Android における Binder を使ったプロセス間通信時に出力されるログを表示するビューです。 名前 説明 DESCRIPTOR プロセス通信を行ったディスクリプタ。 METHOD NO プロセス通信を行ったメソッドの番号。 ※説明済みの項目は省略しています ※文字色は LAP TIME 100 ミリ秒未満を黒、100 ミリ秒以上を赤としています ※表示ログはサンプルで出力されているものが対象で全てログ出力されているわけではありません ※Binder ライブラリ入替によりメインスレッドの Binder ログをすべて出力できます [列名クリック] [フィルタリング] [右クリックメニュー] 「TraceLogCat」ビューと同様です。 48/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [ツールバー] 左からファイル出力、シーケンス出力、経過時間となっています。 機能名 説明 ① ファイル出力 「TraceLogCat」ビューと同様です。 ② シーケンス図 UML のシーケンス図を出力します。 ③ 経過時間 「TraceLogCat」ビューと同様です。 [BinderCat のシーケンス図] メッセージを送信したプロセス メッセージを受信したディスクリプタ メッセージの形式: メッセージ番号.メソッド番号 | ラップタイム BinderCat のシーケンス図では、プロセス間通信の処理内容を表示します。プロセスからターゲットと なるディスクリプタに対しての Bider の処理時間が分かります。 8.12.4.SQLCat Android 全体で利用されるデータベースである SQLite に発行した SQL 関連のログを表示するビュ ーです。 名前 説明 PATH SQL の発行されたデータベースのファイルパス。 SQL 発行された SQL 文字列。 ※文字色を決定 参照系(青)、更新系(緑)、DDL 系(橙)、トランザクション系(紫)、その他(黒)。 PREPARE SQL プリペアドステートメントにて発行された際の SQL 文字列。値にプレースホルダ ー(?)などをふくみます。 QUERY PLAN クエリプランに関する項目です。詳しくは 8.10.SQL Query Advisor を参照して 下さい。 49/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 ※説明済みの項目は省略しています ※LAP TIME 100 ミリ秒以上の場合は SQL の種類に関係なく文字色を赤としています [列名クリック] [フィルタリング] 「TraceLogCat」ビューと同様です。 [右クリックメニュー] 機能名 説明 ① すべて選択 「TraceLogCat」ビューと同様です。 ② コピー 「TraceLogCat」ビューと同様です。 ③ ソート解除 「TraceLogCat」ビューと同様です。 ④ フィルタリング解除 「TraceLogCat」ビューと同様です。 ⑤ SQL 実行 選択した SQL をデバイス上で実行させます。 ⑥ SQL コピー 選択された単一リストの SQL をクリップボードにコピーします。 [ツールバー] 左からファイル出力、SQL ラップタイム、比較チャート選択、SQL ガント チャート、トランザクション、シーケンス出力、全クエリプラン取得となっ ています。 機能名 説明 ① ファイル出力 「TraceLogCat」ビューと同様です。 ② SQL ラップタイム SQL の実行時間に関するチャートを表示します。 ③ 比較チャート選択 データベース毎の処理時間や SQL 種別での比率チャートを表示します。 ④ SQL ガントチャート SQL の実行をスレッド別でガントチャートで表示します。 ⑤ トランザクション トランザクションの実行時間に関するチャートを表示します。 ⑥ シーケンス出力 UML のシーケンス図を出力します。 ⑦ 全クエリプラン取得 表示されている全 SQL のクエリプランを取得します。 50/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [チャート - SQL ラップタイム] 横軸: ラップタイム(ミリ秒) 縦軸: SQL(SQL の ID) 棒の色: 20msec 未満 – 緑 100msec 未満 - 黄 50msec 未満 - 青 500msec 未満 - 橙 上記以上 - 赤 ※最大 20SQL を表示します ※20 を超える場合スクロールバーによりスクロール可能になります SQL ラップタイムチャートは、全 SQL の処理時間を表示します。また、ソートやフィルタリング設定に合 わせてグラフは動的に変化します。グラフの見方として、SQL の棒の色は緑~黄であることが理想です。 橙(オレンジ)や赤である場合の SQL に問題がないか確認することをお勧めします。ただし、処理内容に よっては改善が難しいものもあるため必ずしも SQL に問題があるわけではありません。 チャート内の棒にマウスポインタを合わせると SQL がツールチップで表示されます。また、クリックする ことで、SQLCat を全面に表示している場合該当 SQL がハイライト表示されます。 [チャート - SQL ガントチャート] 横軸: 時間 縦軸: プロセス名(スレッド名 or TID) 棒の色: 各スレッド単位でランダムに決定 ※最大 10 スレッドを表示します ※10 を超える場合スクロールバーによりスクロール可能になります 51/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 SQL ガントチャートは、スレッド単位で発行した SQL の処理時間を確認できます。時間軸から SQL の 発行タイミングと終了タイミングが判断できます。全体を表示した場合、グラフが細かくなってしまうため グラフ内を範囲指定することにより、表示を拡大できます。 マウスをドラックすることで、選択 範囲を拡大/縮小可能です。 ※棒クリック時のハイライト表示やツールチップによる SQL 表示、ソートやフィルタリングによるチャート への反映は SQL ラップタイムと同じように動作します。 [チャート - 比率チャート(DB 毎の累積ラップタイムの比率)] 名前 説明 DB チャート内に表示されているのデータベース名。比率の少ないデータベー スは Other に分類されます。 LAP TIME このデータベースに対して発行された SQL のラップタイムの合計値です。 COUNT このデータベースに対して発行された SQL の発行回数です。 RATE 対象データベースの全体のラップタイムに対する比率です。 上記のチャートでは、ログトレースした処理で処理比率の大きいデータベースを確認することができま す。Other をクリックすることで、Other に分類されたデータベースを表示することもできます。 [チャート - 比率チャート(上記で Other に分類されたデータベースの比率)] 52/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 ※ログトレースにて、膨大なログをチャート化した場合、見にくい表示になってしまう場合がありま す。その場合はビューの移動や表示の最大化、または円外をクリックして円を回転させて微調整し て下さい。 [チャート - 比率チャート(SQL 種別毎の累積ラップタイムの比率)] 名前 説明 SQL TYPE SQL の種別です。 SELECT - 参照系 SQL COMMIT - コミット INSERT - 登録 SQL CREATE - CREATE 系 SQL BEGIN - トランザクション開始 PRAGMA - SQLite の PRAGMA 文 UPDATE - 更新 SQL DELETE - 削除 SQL REPLACE - 置換 SQL OTHER - 上記以外の SQL LAP TIME この SQL 種別の SQL のラップタイムの合計値です。 COUNT この SQL 種別の SQL の発行回数です。 53/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 AVERAGE 上記 LAP TIME / COUNT の平均ラップタイムです。 RATE SQL 種別毎の比率です。 上記のチャートでは、問題のある処理を SQL 種別にて確認することができます。参照処理に問題があ れば SELECT の比率が高くなり、更新処理の場合なら INSERT、UPDATE、DELETE などの比率が 高くなります。トランザクションを使っている場合は BEGIN や COMMIT などの比率が高くなります。 ※基本的な操作は比率チャート(DB 毎の累積ラップタイムの比率)と同様です [チャート – トランザクション] トランザクション時間(BEGIN~COMMIT)をチャート表示します。 [SQLCat のシーケンス] メッセージを送信したプロセス SQL が発行されたデータベース メッセージの形式: メッセージ番号.SQL 種類 : ラップタイム(SQL) SQLCat のシーケンス図では、プロセス内のデータベースに対する SQL の処理時間が確認できます。 54/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.12.5.ActivityCat Android の画面に相当する Activity やサービスの状態が変化した際に発行されるログを表示するビ ューです。 名前 説明 コンポーネント名 Activity やサービスの名称。 TARGET PID そのログの対象となるプロセス ID。 TARGET PROCESS NAME そのログの対象となるプロセス名。 MESSAGE 元のログメッセージ。 ※ ActivityCat に表示されるログはタグによりフォーマットが異なっており、項目の表示にばらつきが あります [列名クリック] [フィルタリング] [右クリックメニュー] 「TraceLogCat」ビューと同様です。 [ツールバー] 左からファイル出力、シーケンス出力、経過時間となっています。 機能名 説明 ① ファイル出力 「TraceLogCat」ビューと同様です。 ② シーケンス図 UML のシーケンス図を出力します。 ③ 経過時間 「TraceLogCat」ビューと同様です。 55/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [ActivityCat のシーケンス] メッセージを送信したプロセス メッセージを受信した Activity やサービス メッセージの形式:タグ(起動時間) ※起動時間は特定のタグのみに表示されます ActivityCat では、system_server を経由した Activity やサービスのライフサイクルに関連するメッセ ージが確認できます。Activity やサービスのプロセス生成とプロセス消滅タイミングが表示されます。そ の他、起動時間などを表示するメッセージもあります。 インスタンス生成メッセージには、am_create_activity、am_create_service、am_proc_start の 3 種 類があります。同じインスタンスに対して、上記いずれかのメッセージが最初に呼ばれたタイミングを真 のインスタンス生成のメッセージとしています。 56/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 インスタンス破棄メッセージには、am_destroy_activity、am_destroy_service、am_drop_process、 am_kill の4種類が存在します。破棄メッセージのタイミングを、ライフラインの終端とします。 ※プロセスの消滅に関しては実際の破棄タイミングが完全には検証できていません、現在の仕様では ログのタグで判定しています activity_launch_time では、その起動時間がメッセージ内に表示されます。 57/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.12.6.MethodCat ログウィービング機能でメソッドトレースを埋め込んだアプリケーションのログを表示するビューです。こ のビューは他のビューとは異なり、Android トレースログではなく、メソッドトレース独自のログをターゲッ ト端末から取得し、出力しています。メソッドトレースの取得は、ログトレース開始時の指定においてメソッ ドトレースを「取得する」にチェックをすることでログ取得することができます。 名前 説明 ID MethodCat におけるログの一意性を表す番号。 この ID は他のビューの ID とは関連はなく、MethodCat 独自の ID です。 TIME ログを出力した日時。Android Log から取得したものではなく、トレース出力処 理中に取得した時間です。 PID ログを出力したプロセスのプロセス ID。 TID ログを出力したスレッドのスレッド ID。 START/END メソッドの開始または終了を示すフラグ。 ‘S’メソッドの開始時ログ ‘E’メソッドの終了時ログ CLASS メソッドのクラス。 METHOD コールされたメソッド。 引数、戻り値は、メソッドシグネチャによる表記です。 PAIR NO そのメソッドログの対になるログの ID 番号です。 メソッド開始時のログ”S”であれば、その終了時の”E”のログの ID で、 反対に終了時の”E”であれば、”S”のログの ID です。 値が 0 の場合、対になるログが存在しません。 PARENT NO そのログのメソッドを呼び出したメソッド(親メソッド)のログ ID 番号です。 ログ ID 番号は、開始時”S”のログ番号です。 値が 0 の場合、呼び出したメソッドのログが存在しません。 NEST LEVEL メソッドの階層です。値が 0 の場合、トップレベルを意味します。 ログ表示において、グレイの文字で表示されているものは、解析を行った結果、整合性がとれていない ことを意味します。これはログ取得のタイミングにより、そのログの対となるログ(メソッドの開始または 終了ログ)が存在していないことを示します。 58/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [列名クリック] [フィルタリング] [右クリックメニュー] 「TraceLogCat」ビューと同様です。 [ツールバー] ①ファイル出力 ②メソッドトレースチャート ③クラスランキング ④メソッドランキング 機能名 説明 ① ファイル出力 「TraceLogCat」ビューと同様です。 ② メソッドトレースチャート スレッド単位にメソッドコールのツリーを出力します。チャート部では 時系列に各メソッドコールを処理時間ごと帯状に表示します。 ③ クラスランキング メソッドトレースの結果をクラス単位で集計し、処理時間のかかった 順に表示します。 ④ メソッドランキング メソッドトレースの結果をメソッド単位で集計し、処理時間のかかっ た順に表示します。 [チャート – メソッドトレースチャート] 59/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 ログウィービングしたアプリケーションのメソッドトレースログ(MethodCat ビュー)をチャート表示します。 上部のカラーチャートは、スレッド単位に時系列で各メソッドコールを処理時間ごと帯状に表示します。下 部の表はスレッド単位に時系列でメソッドコールのツリーを表示します。 メソッド、クラス、処理時間ポップアップ表示 カラーチャート部は、色のついた部分を右方向にドラッグするとその部分を拡大します。また、カーソル を色のついた帯部分に乗せるとそのメソッド名、クラス、処理時間(msec)がポップアップ表示されます。色 のついた帯をクリックすることで、該当する下のツリー表示部のメソッドがハイライト表示されます。 カラーチャート部は、表示の制限があり、全体の件数で 20,000 件以上、またはスレッド数 6 個を 超えると表示を制限します。これはチャート表示に多くのリソースを必要するため、制限していま す。制限した際は、チャート部に以下のメッセージを出力します。 チャート表示可能なスレッド数を超えたため、表示できません。 チャート表示可能なデータ数を超えたため、表示できません。 下部の表は、スレッド単位にメソッドコールをツリー表示します。 名前 説明 メソッド コールされたメソッド名。 引数、戻り値は、メソッドシグネチャによる表記です。 メソッドはコールされた順に表示され、メソッドの親子関係をツリーで表示 します。 クラス このメソッドが属するクラス 包括的 メソッドの開始から終了までのラップタイム(msec)で対象のメソッド内から 60/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 コールされるメソッド(子のメソッド)の処理時間を含んだ時間です。 排他的 メソッドの開始から終了までのラップタイム(msec)で対象のメソッド内から コールされるメソッド(子のメソッド)の処理時間を含まない時間です。 呼び出し 分子はこのメソッドの何回目の呼び出し回数かを示し、分母はこのメソッド の全体の呼び出し回数を示します。 開始 ログの開始時を 0 とした時のメソッドの開始時間。(msec) 上部のカラーチャートの開始時間と対応します。 LOG ID MethodCat View のログ ID Level メソッドツリーの階層を示し、0 は トップを表します。 メソッドトレースチャートで利用するデータは、MethodCatView の元データを扱います。これはチ ャートにおいてメソッドの親子関係を表すためにすべてのデータが必要で MethodCatView のフ ィルタリング機能を使ったフィルターされたデータを扱わないことに留意してください。このことは、 クラスランキングチャート、メソッドランキングチャートも同様です。 [チャート – クラスランキング] メソッドトレースの結果をクラス単位で集計し、処理時間のかかった順に表示します。表示はスレッド単位 および複数スレッドがある場合は全体の集計を表示することができます。 61/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 上部のチャート部は、処理時間のかかった順にグラフを表示します。グラフのラベルのクラス名は、パス を省き、先頭の数字は順位を示し、下部のクラスランキングのリストと対応します。グラフの色は、時間を 一定の閾値で 赤 > 橙 > 黄色 > 青 > 緑の順で表示します。 グラフにマウスをのせる グラフをクリックするとピンク色に反 転し、下部のリストの該当クラスが とクラス名と合計のラップ タイムを表示します。 ハイライト表示されます。 下部のクラスランキング表示部は、スレッド単位および複数のスレッドがある場合は、全体を集計した 「ALL」のタブを表示し、スレッドおよび全体でのクラス集計値を参照することできます。タブを切り替える ことで上部のチャートも切り替わります。また、クラスのリストをダブルクリックおよび先頭のツリー展開の アイコン(以降ツリーアイコン)をクリックすることでクラス内のメソッドを集計したランキングを表示するこ とができます。 全体およびスレッド単位の表示の切り替えを行います。 カラムのラベル部分をクリックするこ とで対象の項目をソートします。 クラスリストをダブルクリックまたはツ リーアイコンをクリックするとクラス内 のメソッド集計を表示します。 全体の集計情報を表示。 名前 説明 クラス クラス名 先頭の番号は、クラスランキングの順位を示し、上部チャートのラベルと 対応します。 ツリーアイコンおよびリストをダブルクリックすることで、このクラス内の集 計したメソッドリストが展開されます。メソッドリストは背景が薄いピンクに 62/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 なります。メソッドリストも処理時間がかかった順で表示されます。 包括的 クラス内のメソッドの開始から終了までのラップタイム(msec)を集計した値 を表示しています。括弧内の%は、そのスレッド内(ALL の場合は全体) の包括的時間の集計値を 100 とした場合のそのクラスの集計値の割合を 示しています。 メソッドリストの包括的時間は、各メソッドのラップタイム(msec)を集計した 値を表示しています。表示されているそれぞれのメソッドの包括的時間を 合計するとクラスの包括的時間と同じになります。 括弧内の%はクラスの包括的時間の集計値を 100 とした場合、各メソッド の集計値の割合を示しています。 ※包括的時間はメソッド内からコールされるメソッド(子のメソッド)の処理 時間を含みます。 呼び出し クラス内のメソッドのコール回数。メソッドリストの場合は、メソッドのコール 回数。 [チャート – メソッドランキング] メソッドトレースの結果をメソッド単位で集計し、処理時間のかかった順に表示します。表示はスレッド単 位および複数スレッドがある場合は全体の集計を表示することができます。 上部のチャート部は、処理時間のかかった順にグラフを表示します。グラフ内のラベルのメソッド名は、" パスを省いたクラス名.メソッド名"で表示します。先頭の数字は順位を示し、下部のクラスランキングのリ ストと対応します。グラフの色は、時間を一定の閾値で 赤 > 橙 > 黄色 > 青 > 緑の順で表示し ます。 63/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 グラフにマウスをのせる グラフをクリックするとピンク色に反 とクラス名、メソッド名と 転し、下部のリストの該当クラスが 合計のラップタイムを表 ハイライト表示されます。 示します。 下部のメソッドランキング表示部は、スレッド単位および複数のスレッドがある場合は、全体を集計した 「ALL」のタブを表示し、スレッドおよび全体でのメソッドの集計値を参照することできます。タブを切り替 えると上部のチャートも切り替わります。また、メソッドのリストをダブルクリックまたツリーアイコンをクリッ クするとメソッドの親子関係を示す親と子のメソッドを集計したランキングを表示することができます。 全体およびスレッド単位の表示の切り替えを行います。 カラムのラベル部分をクリックするこ とで対象の項目をソートします。 メソッドのリストをダブルクリックまた はツリーアイコンをクリックすると対 象メソッドの親子関係とその集計値 を表示します。 親子関係のメソッドリストをダブルク リックすると該当するメソッドにジャン プします。 全体の集計情報を表示します。 名前 説明 メソッド メソッド名。 先頭の数字はランキングの順位であり、また、このチャート内でのメソッド のユニークな識別子として利用しています。 64/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 メソッド名の前のツリーアイコンおよびリストをダブルクリックすることで、こ のメソッドの親子関係が展開されます。 Parents - 対象のメソッドの呼び出した親のメソッドリスト。(背景は薄い青 で表示されます。) Self - メソッド自身ですべてのメソッドで必ず存在します。Chidren のツリ ーに含まれます。 Chidren -対象のメソッドから呼び出された子のメソッドリスト。(背景は薄 いピンクで表示されます。) これらのメソッドリストも時間のかかった順に表示され、また、先頭の数字 はこのチャート内のメソッド識別子を示します。 クラス このメソッドが属するクラス 包括的 メソッドの開始から終了までのラップタイム(msec)を集計した値を表示して います。包括的時間はメソッド内からコールされるメソッド(子のメソッド)の 処理時間を含みます。括弧内の%は、そのスレッド内(ALL の場合は全 体)の包括的時間の集計値を 100 とした場合の対象メソッドの集計値の割 合を示しています。 親子関係のメソッドリストの包括的時間は、以下になります。 Parents - 親のメソッドにおいての対象のメソッドの包括的時間を出力し ています。表示されている親のメソッドの包括的時間を集計すると対象メ ソッドの包括時間になります。括弧内の%は、対象メソッドの包括時間を 100 とした場合のそれぞれの割合になります。 Self – このメソッド自身で排他的時間と同じ値になります。 Child – このメソッド内でコールされる子の各メソッドの包括時間の集計 値。Self と Child の合計は、対象メソッドの包括的時間になります。括 弧内の%は、対象メソッドの包括的時間を 100 とした場合のそれぞれの 割合になります。 排他的 メソッドの開始から終了までのラップタイム(msec)を集計した値を表示して います。排他的時間はメソッド内からコールされるメソッド(子のメソッド)の 処理時間を含みません。 括弧内の%は、そのスレッド内(ALL の場合は全体)の排他的時間の集 計値を 100 とした場合のそのメソッドの集計値の割合を示しています。 呼び出し スレッドおよび ALL の場合は全体での対象メソッドのコール回数。 親メソッドリストの場合、分母は対象メソッドのコール回数で分子は何回、 対象のメソッドをコールしたかを示します。 子メソッドリストの場合は、分母はその子メソッドの全体のコール回数で分 子はこのメソッド内で何回コールされたかを示します。 再帰 対象のメソッドが再帰している場合はその回数を表示します。 65/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.13.SQL Query Advisor SQL Query Advisor は、ログに含まれる SQL のクエリプラン(データベースへのアクセスパス)を取得 して、診断する機能です。 8.13.1.SQLCat での使用方法 SQLCat で使用する場合は、まずクエリプランを取得する必要があります。右クリックまたはツールバ ーから「全クエリプラン取得」を選択して下さい。 [SQLCat ツールバー] ※表示中の全 SQL のクエリプランを取得するため、 時間がかかることがあります ※フィルタリングなどで SQL を絞ってからクエリプラ ンを取得することで時間を短縮できます 次項で説明する SQL Query Executer にて端末接続を行っていない場合は、シリアル番号選択が表 示されます。対象デバイスのシリアル番号を選択後、OK をクリックして下さい。 [シリアル番号選択] クエリプランの取得が終了すると以下のメッセージが表示されます。 [全クエリプラン 正常終了] クエリプランを取得すると、問題のありそうな SQL にチェックマークが付加されます。SQLCat の QUERY PLAN 項目に表示されます。この情報は LAP のデータベースに保存されます。 [クエリプラン取得後 SQLCat] 66/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 ※チェックマークのついた SQL に必ずしも問題があるわけではありません ※SQL の文字の長さがログの制限により切れている場合は正しくクエリプランが取得できません ※メモリデータベースで発行された SQL についてはクエリプランを取得しません ※SQL で ATTACH を用いて外部データベースを参照している場合クエリプラン取得できません SQLCat でログをクリックすると、「QueryPlanView」にてクエリプランに対する診断結果が表示されま す。 [QueryPlanView] 名前 説明 selecteid SELECT 文に対する ID。トップレベルの SELECT 文を 0 として、サブクエリがある 場合に別の値が割り当てられます。 order 入れ子の順番です。SELECT の外側のループを 0 としています。 from FROM 句にて指定された順番です。 detail(詳細) アクセスパスの詳細です。この情報が最も有益なものとなります。 MESSAGE 表の各行に対応する診断メッセージを表示します。 8.13.2.クエリプラン診断結果 ①主キー使用 メッセージ 評価 67/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 主キーが使用されています。 ◎ 説明 主キーを使った有効なアクセスです。 ②インデックス使用 メッセージ 評価 INDEX が使用されています。 〇 説明 INDEX を使った有効なアクセスです。ただし、性能が悪い場合は、インデックスの定義に問題がある かもしれません。 ③全表スキャン メッセージ 評価 テーブルをフルスキャンしています。 △ 説明 テーブルをすべて読みだしているため、チューニングの必要があるかもしれません。ただし、全データ をフルスキャンしても常に該当レコード件数が少なく性能に問題がない場合はチューニングの必要は ありません。また、仕様によって全データを読み込む必要がある場合など改善できないこともありま す。 ④COVERING INDEX メッセージ 評価 COVERING INDEX が使用されています。 ◎ 説明 INDEX を使った有効なアクセスです。また、テーブル自身の参照を行わずインデックスからデータを 取得しています。 ⑤AUTOMATIC INDEX メッセージ 評価 AUTOMATIC INDEX が使用されています。 〇 説明 クエリの実行を支援するために一時的なインデックスが作成されています。一時的なインデックスを作 成する場合当然コストがかかりますが、SQLite がより高速であることを期待してこのプランが使用さ れます。 ⑥テンポラリ B-TREE メッセージ 評価 テンポラリ B-TREE が使用されています。 △ 説明 ORDER BY、GROUP BY または DISTINCT 句が含まれている場合に出力行をソートするために 一時的な B-TREE を作成しています。これは新しくインデックスを定義することによって回避できる可 能性があります。 68/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 ⑦リストサブクエリ メッセージ 評価 リストサブクエリが実行されています。 〇 説明 内部でサブクエリが実行されています。これは実際に SQL にはサブクエリを使っていない場合でも、 IN 句を使った条件などでこのプランが使用されます。 ⑧サブクエリ(結果キャッシュ) メッセージ 評価 サブクエリが1度だけ実行されています。 〇 説明 親クエリの実行で 1 度だけサブクエリが実行されています。1 度目のサブクエリ実行後は結果をキャッ シュしているため再度実行されることはありません。サブクエリを使ったケースでは最適なアクセスと いえます。 ⑨サブクエリ メッセージ 評価 サブクエリが複数回実行されています。 〇 説明 メインの SQL 実行とは別に、複数回サブクエリを実行しています。関連するレコードごとに結果がかわ る場合などこのプランが使用されます。結果キャッシュに比べるとパフォーマンスは落ちます。 ⑩COMPOUND SUBQUERIES メッセージ 評価 COMPOUND SUBQUERIES が実行されています。 〇 説明 UNION、UNION ALL、EXCEPT または INTERSECT などを使った場合に使用されるプランで す。これは親クエリとは別にサブクエリが実行されることを意味しています。 ⑪COMPOUND SUBQUERIES(テンポラリ B-TREE) メッセージ 評価 COMPOUND SUBQUERIES にてテンポラリ B-TREE が使用されています。 △ 説明 UNION、UNION ALL、EXCEPT または INTERSECT などを使った場合に使用されるプランで す。これは親クエリとは別に子のクエリが実行されることを意味しています。最終結果を出力するため にサブクエリの結果をテンポラリ B-TREE に格納していることを意味します。 ※これらは SQLite3.7 のバージョンに基づいているためバージョンが変わると仕様が異なる可能性があ ります 8.14.SQL Query Executer SQL Query Executer は、Android デバイス内部の SQLite データベースに接続して、SQL を実行す るための機能を提供します。この機能を使って、内部のデータを参照および更新が行えます。チューニン グのために新しくインデックスを定義することも可能です。 69/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.14.1.SQLiteSchemaTree SQL Query Executer を使用するにはまず Android デバイスに接続する必要があります。 SQLiteSchemaTree にて接続を行います。ツールバーのデータベース接続をクリックします。 [SQLiteSchemaTree] データベースに接続するためのダイアログが開くので、接続したいデータベースに合わせて設定値を入 力して OK をクリックして下さい。 [データベース接続情報] ① シリアル番号選択 ② 検索パス ③ データベースマッチングパターン 名前 説明 ① シリアル番号 接続する Android デバイスのシリアル番号を選択して下さい。 ② 検索パス デバイス内のファイルシステム上でのパスを入力します。すべてのディレ クトリを検索する場合は「/」を入力して下さい。 ③ データベースマッチン グパターン 検索するファイル名のパターンを入力して下さい。基本的には「*.db」で 検索できますが、例外的なファイル名の場合は任意で指定して下さい。 ※ルートディレクトリ「/」を指定すると、ファイルシステム上をすべて検索対象に含めるため時間がかかる ことがあります ※データベースマッチングパターンは具体的なファイル名もしくは「*.db」などを指定して下さい 入力した情報にマッチしたデータベースへの接続が完了したら以下のように表示されます。 [データベース接続 正常終了] 70/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 SQLiteSchemaTree は以下のツリー構造となっています。 +Android デバイスのシリアル番号 +データベースパス(一部省略) +テーブルルート(所有テーブル数) +テーブル名 +定義カラム(カラム数) +インデックス(インデックス数) +システムインデックス(インデックス数) +トリガー(トリガー数) +テーブル名 +ビュールート(所有ビュー数) +ビュー名 +トリガー(トリガー数) +ビュー名 ・・・・・・・・・ ※定義済みカラムやインデックス、システムインデックス、トリガーなどにはそれぞれ要素が含まれます テーブルを右クリックしてメニューからプロパティを表示することができます。 [SQLiteSchemaTree 右クリックメニュー] 71/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [テーブルプロパティ 上部] ① テーブル名 ② ルートページ番号 ③ カラム定義 ④ インデックス部 [テーブルプロパティ 下部] ⑤ 外部キー部 ⑥ トリガー部 ⑦ 定義 SQL 部 ⑧ 定義をコピー 名前 説明 ① テーブル名 テーブルの名称です。クリックすると定義 SQL 部にテーブルを作成した 時の SQL が表示されます。 ② ルートページ番号 このテーブルのルートページ番号です。 72/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 ③ カラム定義 名前 説明 列番号 SQLite 内部の列番号。0 から始まります。 名前 カラム名称。 データ型 TEXT、INTEGER、BLOB、REAL、NULL などが あります。 サイズ データ型にサイズ指定されている場合のサイズが表 示されます。 NOT NULL 制約が定義されている場合、true とな NOT NULL り NULL を許可する場合は false となります。 デフォルト値 このカラムのデフォルト値です。 主キー 主キーの項目であれば「〇」が表示されます。 IDX_N… 定義されているインデックス分の列が追加されます。 「IDX+ルート番号」で表示され、定義されているカラ ム順が表示されます。 ④ インデックス部 名前 説明 シーケンス番号 SQLite 内部で定義されているインデックス のシーケンス番号。0 から始まります。 名前 インデックス名称です。システムインデック スの場合は SQLite に自動生成された名前 が表示されます。システムインデックスでな い場合にクリックすると定義 SQL 部に作成 時の SQL が表示されます。 ユニーク このインデックスが重複を許可しているかを 表示します。true の場合は、重複を許可し ないユニークインデックスとなっており、そ れ以外のインデックスは false で表示されま す。 ルートページ番号 インデックスのルートページ番号です。 システムインデックス SQLite により自動生成されたインデックス の場合 true となり、ユーザが作成したイン デックスの場合 false となります。 73/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 ⑤ 外部キー部 名前 説明 id 管理番号 seq 枝番 table 参照するテーブル from 外部キー制約されたカラム to 外部キー参照するカラム on update 更新時の動作 on delete 削除時の動作 match ⑥ トリガー部 名前 説明 シーケンス番号 SQLite 内部で定義されているトリガーのシ ーケンス番号です。クリックすると定義 SQL 部に作成時の SQL が表示されます。 ルートページ番号 ⑦ 定義 SQL 部 トリガーのルートページ番号です。 作成時の SQL が表示されます。テーブルの他にインデックスやトリガー などの SQL を参照できます。 ⑧ 定義をコピー 表示しているテーブルに関する定義情報をクリップボードにコピーしま す。ドキュメントファイルなどに張り付けて資料作成に利用できます。 データベースを右クリックしてメニューからプロパティを表示することができます。 [SQLiteSchemaTree 右クリックメニュー] 74/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [スキーマレポート] [分析レポート] スキーマ定義(テーブル、ビュー、インデックス)を スキーマの物理配置を表示します。 表示します。 [データベースプロパティ] データベースに設定された、プロパティ値を表示します。 75/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.14.2.SQLiteExecuterView 前項にてデータベース接続することで、SQL を実行するための準備ができました。SQL を実際に実行 するには、「SQLiteExecuterView」を使用します。 [SQLiteExecuterView] ① シリアル番号 ② 接続データベース選択 ③ SQL 入力部 ④ SQL 履歴 ⑤ 実行結果メッセージ 名前 説明 ① シリアル番号 接続したデバイスのシリアル番号が表示されます。 ② 接続データベース選択 SQL を発行する対象のデータベースを選択できます。ツリー部に表 示されたデータベースが選択できるようになっています。 ③ SQL 入力部 実際に実行する SQL を入力します。SQL のキーワードについては 強調表示されます。 ④ SQL 履歴 過去に発行した SQL を選択できます。選択することで SQL 入力部に SQL が表示されます。最大 20 件データベース単位に保存されます。 ⑤ 実行結果メッセージ SQL の実行結果のメッセージを表示します。正常終了した場合は 「Success」が含まれます。エラーの場合は、その内容が赤字で表示 されます。その他以下の情報も含まれます。 ElapsedTime - SQL 実行経過時間 CPU Time - SQL 実行時の CPU 時間 実際に SQL を実行する場合、対象のデータベースを選択して SQL を入力します。そして、SQL 実行を クリックすることで処理がデバイス内部で実行されます。参照系の SQL は結果が「SQLiteResultView」 に表示されます。更新系の SQL は実行結果メッセージが表示されます。 76/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [SQLiteResultView] ① ファイル出力 ② 結果部 ③ 件数部 名前 説明 ① ファイル出力 結果をファイル出力します。「すべて」を選択すると、表示結果ではな く全体の結果をファイル出力します。「選択行のみ」を選ぶと、選択さ れている結果のみが出力されます。 ② 結果部 実際の SQL の実行結果が表示されます。項目は SELECT 文の指 定によって変化します。 ③ 件数部 表示件数と全体件数を確認できます。コンボボックスを選択すること で表示件数を変更できます。 77/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.14.3.SQLCat からの SQL 実行 SQL Query Executer は SQLCat から直接 SQL を実行することも可能です。その場合は、該当 SQL のログを選択して、右クリックメニューの SQL 実行をクリックして下さい。 SQLiteSchemaTree で、Android デバイスに接続していない場合は、シリアル番号を選択する必要が あります。 [SQL 実行 端末接続] 結果は通常の使用方法と同じように表示されます。接続したデータベースは SQLiteSchemaTree と SQLiteExecuterView に追加されます。 ※SQLiteSchemaTree と SQLiteExecuterView に表示されていないデータベースに接続した場合、実 行準備に時間がかかることがあります 78/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 [SQLCat からの SQL 実行結果] ※上記はパースペクティブの配置を調整してあります 8.14.4.Query Plan View との連動 SQLiteExecuterView から SQL のクエリプランを QueryPlanView で表示することもできます。実行 にはデータベースを選択して、SQL を入力後にクエリプラン確認をクリックします。クリック後に QueryPlanView にクエリプランが表示されます。 [SQLiteExecuterView クエリプラン確認] 79/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8.15.ワークスペースに保存される専用プロジェクト LAP を使用すると、専用のプロジェクト「lap_project」が作成されます。構成は以下の通りです。 バックアップのルート シリアル番号 データベースのルート シーケンスのルート 名前 説明 backup バックアップのルートディレクトリ。配下にはライブラリ入替などにより 作成されたシリアル番号ディレクトリが作成されます。 databases デフォルトデータベースのルートディレクトリ。デフォルトでは、この配 下にデータベースを配置します。 sequence シーケンスのルートディレクトリ。配下に各ビューのシーケンス図の一 時ファイルが保存されます。 ※sequence ディレクトリに含まれる tmp_から始まるファイルは LAP 終了時に削除されます ※シーケンス図のファイルを残したい場合はファイル名の接頭語を tmp_以外に変更して下さい ※プロジェクト名やディレクトリ名は変更しないで下さい 80/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 9.外部 API 9.1.外部 API の概要 LAP Version 1.2.2 から PC に接続した Android 端末のログトレース収集操作を行う API とログトレ ース収集によってデータベースに保存したログデータを取得のための API を提供します。 9.1.1.ログトレース収集操作 API の特徴 LAP 本体(eclipse plugin)画面を起動せずにログ収集操作ができます。 長時間のログ収集が可能です。 1台の PC に複数端末が接続している場合、同時に複数台のトレース収集が可能です。 端末が切断された場合やまた端末の電源を切った場合でも、トレース収集は継続します。 後に再接続および再起動した場合は同じトレースに出力され、タイムアウト設定以外ではトレ ースが停止することはありません。 ログトレース収集操作 API を使用したコンソール java アプリケーションを併せて提供し ます。このアプリケーションをバッチプログラムからコールすることでログトレース収集操作 を自動化することができます。 java API をユーザープログラムからコールすることができます。 シンプルな仕様の java API です。 9.1.2.ログデータ取得操作 API の特徴 収集したログデータをユーザ指定の条件で取得することができます。 シンプルな仕様の java API です。 9.2. 利用環境について 9.2.1. PC 環境 外部 API を利用する PC 環境として LAP のインストールに必要なスペックと同等な環境で利用してく ださい。※ LAP インストール手順書(1.2.X 対応) 2.1 PC 参考スペックを参照してください。 9.2.2. ソフトウェア環境 外部 API は、LAP 本体とは異なり、eclipse 環境は必要ありません。 1) Java Java 1.6 以上で JRE または JDK。 81/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 2) Android SDK ログトレース収集操作 API では、PC から端末接続を行うために Android SDK Tools の ADB(Android Debug Bridge) を利用しています。そのため、Android SDK Tools および Android SDK platform-tools をインストールする必要があります。インストールする Android SDK Platform-tools は Rev 14 以上をインストールしてください。 9.2.3. 利用前提 ログトレース収集 API を利用する場合は、以下の環境が前提となります。 ※ログデータ取得 API はこれらの環境は前提としません。 1) 端末環境 ① 端末の Android バージョンは、2.3(Gingerbread)/3.x(Honeycomb)/4.0(Ice Cream Sandwich) /4.1,4.2(Jelly Bean)を対象とします。 ② 端末は一般端末を想定します。(root 端末である必要はありません。) 2) 前準備 ① PC と端末を USB で接続するため、USB ドライバをインストールし、Android SDK によるア プリーションの実行・デバッグ可能な状態にしておく必要があります。 9.2.4. セットアップ 1) 外部 API の Jar ファイル 外部 API は、LAP 本体の jar ファイルに含まれます。(jp.co.gbac.lap.plugin.LAP_1.2.2 以降の jar) Jar ファイルのインストールフォルダは、LAP 本体として利用する場合、eclipse 環境の plugin フォ ルダの下に置く必要がありますが、外部 API 単体で使用する場合は eclipse 環境を使用しないため、 jar ファイルを適当なフォルダに置いても構いません。 2) 外部ライブラリ 外部 API では、PC から端末に接続するための Android ADB インターフェイス、またデータベー スを利用するための H2 データベースドライバなどオープンソースの外部インターフェイスを使用して います。外部 API からこれらのインターフェイスを利用するためにそれぞれの外部ライブラリ(jar)ファ イルが必要ですが、これらのライブラリは LAP の jar ファイルの lib フォルダ以下に格納されてお り、それを展開し、クラスパスに lib フォルダのパスを指定することで外部インターフェイスを利用する ことができます。 展開は以下の方法で行います。 jar xvf jp.co.gbac.lap.plugin.LAP_1.2.X・・・・jar lib lib/が作成されました ¥lib/xxxx.jar が展開されました … 82/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 3) コマンドプロンプト(シェル)上での API のビルドおよび実行 外部 API のビルドおよび実行をコマンドプロンプトおよびシェル上で行う場合、LAP 本体の jar と展 開した外部インターフェイスライブラリのパスをクラスパスに設定する必要があります。 ・クラスパス設定例 jar のパス: C:¥LAP¥ jp.co.gbac.lap.plugin.LAP_1.2.X.xxxx.jar 展開した外部ライブラリフォルダ: C:¥LAP¥lib 例)トレース開始コマンド >java –classpath “C:¥LAP¥ jp.co.gbac.lap.plugin.LAP_1.2.2.xxxx.jar;C:¥temp¥lib¥*;” jp.co.gbac.lap.external.LapExternalOperation –cmd start –db /LAP/db1 –name trace1 4) eclipse 上での外部 API のビルドおよび実行 ① 外部 API を利用したプログラムのビルド設定 LAP 本体の jar ファイルを外部 jar として追加することで外部 API を利用したプログラムのビ ルドができます。 手順:対象のプロジェクトプロパティ⇒ java ビルドパス⇒ ライブラリ⇒ 外部 JAR の追加⇒LAP 本体の jar ファイルを指定 ② 外部 API 利用したプログラムを実行するための設定 外部クラス・フォルダーに展開した “lib”フォルダを指定することで外部 API を利用したプログラ ムを実行することができます。 手順:対象のプロジェクトプロパティ⇒ java ビルドパス⇒ ライブラリ⇒ 外部クラス・フォルダーの追加⇒展開した lib フォルダを指定 ① 外部 JAR の追加 ② 外部クラス・フォルダ ーの追加 83/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 9.3. ログトレース収集操作 API 9.3.1. 機能 ログトレース収集のための以下の3つ操作を行う API を提供します。 機能 メソッド名 1 ログトレースの開始 LapExternalOperation#startLap 2 ログトレースの停止 LapExternalOperation#stopLap 3 ログトレースの情報取得 LapExternalOperation#infoLap 9.3.2. API 処理イメージ トレース収集の実行プロセスは、トレース開始 API をコールしたアプリケーションプロセスとは切り離さ れ、デーモンプロセスとしてバックグラウンドで実行されます。このトレース収集デーモンプロセスは、トレ ース停止 API による停止命令が送られるまでトレース収集を行います。トレース情報取得 API は、この トレース収集デーモンプロセスに対し、情報取得の命令を送り、トレースの状況を取得します。 1) トレース開始 API ① ログトレース開始メソッドをコールします。 ② トレース収集開始メソッドは、トレース収集実行プロセスを起動します。 ③ トレース開始メソッドは、トレース収集プロセスがトレースを開始するまで待ちます。 ④ 起動したトレース収集プロセスはトレースを開始し、呼び出し側のメソッドプロセスにトレースの開始 を通知します。 ⑤ 通知を受けたメソッド側は、トレースが開始されたことを確認し、メソッドを終了します。 2) トレース情報取得 API ⑥ トレース情報取得メソッドをコールします。 ⑦ トレース情報取得メソッドのプロセスは、トレース収集プロセスのコマンド受付スレッド(サーバー)に 接続し、トレース情報取得リクエストを送ります。 ⑧ コマンド受付スレッドは、トレース実行スレッドのトレース情報を取得し、トレース情報取得メソッドの プロセスに返します。 ⑨ 取得した情報を戻り値として、トレース情報取得メソッドを終了します。 3) トレース停止 API ⑩ トレース収集停止メソッドをコールします。 ⑪ トレース収集停止メソッドのプロセスは、トレース収集プロセスのコマンド受付スレッド(サーバー)に 接続し、トレース停止リクエストを送ります。 ⑫ コマンド受付スレッドはトレース実行スレッドに対し、トレース停止処理を行い、トレースが終了したと ころでプロセスを終了します。 ⑬ トレース収集停止メソッドを終了します。 ※トレース停止メソッドは停止命令のみ送るだけでトレースが停止したかどうかの確認はしません。 84/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 ログトレース開始、停止 API の処理イメージ 【アプリケーション】 【トレース収集】 トレース収集開始メソッド トレース開始アプリ トレース開始 API 開始① プロセス起動 トレース収集プロセス④ コマンド受付サーバー開始 トレースプロセスの起動② ・デバイス接続 トレース収集開始 メソッドコール ① トレース開始通知 トレース開始待ち③ ・データベースオープン トレース開始③ ③ トレースの実行 トレース開始 API 終了⑤ コマンド受付 スレッド 情報取得リクエスト トレース情報アプリ トレース情報取得メソッド 情報取得⑧ 停止 トレース情報取得 API 開始⑥ トレース情報取得 メソッドコール ⑤ トレース情報取得リクエスト⑦ トレース情報 停止命令 77 トレース情報取得 API 終了⑨ 停止リクエスト トレース停止⑦ プロセス終了 トレース終了アプ リ トレース収集停止メソッド トレース停止 API 開始⑤ トレース収集停止 メソッドコール ⑤ トレース停止命令リクエスト⑥ トレース停止 API 終了⑧ 85/109 OK 情報取得 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 9.3.3. LapExternalOperation クラス jp.co.gbac.lap.external.LapExternalOperation クラス このクラスは、トレース取得操作を提供するクラスで以下のメソッドがあります。 (このクラスはインスタンス化することはできません。) メソッド 説明 1 startLap トレースを開始します。 2 stopLap トレースを終了します。 3 infoLap トレース情報を取得します。 9.3.4.メソッド詳細 1) startLap 定義: public static int startLap(String[] par) 説明: ログトレースを開始します。 このメソッドは、トレース実行のデーモンプロセスを起動し、そのプロセスがトレース 収集可能な状態を確認し、戻します。 パラメータ: トレース設定のパラメータを文字列配列として設定します。最低限必要なパラメータ は、”-db” データベースパスと “-name”トレース名です。 ※詳細は「トレース開始 API パラメータ」を参照してください。 戻り値: トレース実行プロセスのコマンド受付スレッド(サーバー)のポート番号 デフォルトは 54601~ エラー: ログトレースの開始に失敗した場合は、ランタイム例外をスローします。 起動したトレース実行プロセス内でエラーになった場合でも例外となります。 86/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 2) stopLap 定義: public static void stopLap(String[] par) 説明: 実行中のログトレースを終了します。 指定のトレース実行のデーモンプロセスに対し、停止命令を送信します。 パラメータ: 終了させるトレースを特定するためのパラメータを文字列配列に設定します。 パラメータは、”-db” データベースパスまたは “-port”ポート番号を指定します。 ※詳細は「トレース情報取得およびトレース終了 API のパラメータ」を参照してくださ い。 戻り値: なし エラー: ログトレースの終了に失敗した場合は、ランタイム例外をスローします。 このメソッドでは、トレース実行プロセス内でのエラーは感知しません。 3) infoLap 定義: public static String infoLap(String[] par) 説明: ログトレースの情報を取得します。 指定のトレース実行のデーモンプロセスに対し、情報取得の命令を送り、トレースの状 況を取得します。 トレース情報は、トレース状況とトレースログ数を返します。 パラメータ: 情報を取得するトレースを特定するためのパラメータを文字列配列に設定します。 パラメータは、”-db” データベースパスまたは “-port”ポート番号を指定します。 ※詳細は「トレース情報取得およびトレース終了 API のパラメータ」を参照してくださ い。 戻り値: トレース状況およびトレース数を次のフォーマットで文字列として返します。 フォーマット:“トレース状況 トレースログ数” トレース状況は、以下の文字列を返します。 “READY” トレース準備状態 コマンド受付のスレッドは起動しているが、トレースは起動していない状態 “RUNNING” トレース実行中 “STOP” トレース停止中 “ERROR” エラー トレースログ数は、取得したログ数のトータルを返します。 エラー: ログトレースの終了に失敗した場合は、ランタイム例外をスローします。 87/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 9.3.5. パラメータ 1) パラメータ設定 トレース操作の API およびコマンドは、パラメータにより、トレース操作を行います。 パラメータのフォーマットは、値を持つものと値を持たない 2 つのパターンがあります。 ① パラメータ名 値 ② パラメータ名 2) パラメータの種類 パラメータは、3 種類のタイプがあります。 ① API 動作設定のためのパラメータ ② トレース動作設定のためのパラメータ ③ コマンド動作設定のためのパラメータ 3) トレース開始 API のパラメータ パラメータ 説明 ① データベースパス トレースデータを格納するデータベースパスを指定します。 フォーマット:-db データベースパス 指定のデータベースファイルが存在しない場合、新規に DB が作成され デフォルト:なし ます。 必須パラメータ Ex1) データベースの設定 C:¥lap_project¥dabases¥lap タイプ:トレース設定 -db C:¥lap_project¥dabases¥lap ② ログトレース名 トレース名を指定します。トレース名は指定したデータベース内で一意で フォーマット:-name トレース名 ある名前を指定します。 デフォルト:なし Ex1) トレース名の設定 trace1 必須パラメータ タイプ:トレース設定 –name trace1 Ex2) トレース名の設定 “トレース1” -name “トレース 1” ③ SDK パス Android SDK パスを指定します。環境変数 PATH に Android フォーマット:-sdk Android SDK パ SDK¥platform-tools のパスが設定されていてパスを指定せずに adb ス コマンドが実行できる場合は指定する必要はありませんが、PATH を設 デフォルト:PATH 指定 定していない場合は、このパラメータを指定する必要があります。 任意パラメータ Ex1) SDK パスの設定 C:¥android_sdk タイプ:トレース設定 -sdk C:¥android_sdk ④ Java bin パス 環境変数 PATH に java¥bin パスの設定をしていない場合や java 環 フォーマット:-java java¥bin パス 境を指定する場合に設定島す。パスはインストールされている java 環境 デフォルト:PATH 指定 の bin までのパスを指定します。 任意パラメータ Ex1) java パスの設定 C:¥java1.6¥bin タイプ:API 設定 -java C:¥java1.6¥bin 88/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 ⑤ Port 番号 トレース収集プロセスが使用するポート番号はデフォルトでは、54601 フォーマット:-port ポート番号 ~54632 までを範囲とします。デフォルト値以外の port 番号を使用す デフォルト:54601 る場合は、このパラメータでポート番号を指定することができます。 任意パラメータ Ex1)Port 番号の指定 55000 タイプ:API 設定 -port 55000 ⑥ デバイス番号 トレースを取得する端末デバイスのシリアル番号を指定します。 フォーマット:-dev デバイス番号 このパラメータを省略した場合、ADB で取得されるデバイスリストの先 デフォルト:デバイスリストの先頭デ 頭の端末がトレース対象になります。 バイス Ex1) デバイス番号指定 987654321 任意パラメータ -dev 987654321 タイプ:トレース設定 ⑦ Android ログトレースタイプ 取得する Android ログトレースのタイプを指定します。このパラメータを フォーマット: 省略した場合、main ログのみを取得します。 -type [m]ain [e]vents [r] adio Ex1) すべてののログトレースを取得 [s]ystem -type main event radio system [または –type m e r s] デフォルト:main Ex2) main と event ログを取得 任意パラメータ -type main event [または –type m e] タイプ:トレース設定 ※タイプ指定は文字列ではなく、パラメータとして指定します。 ⑧ トレースコメント 取得するトレースにコメントを付加します。 フォーマット:-com “コメント” Ex1) コメント設定 “デバイス操作1のパターン” デフォルト:なし -com “デバイス操作1のパターン” 任意パラメータ タイプ:トレース設定 ⑨ logcat パラメータ ログトレース取得では、Android コマンドの”logcat”を使用しています。 フォーマット:-args “パラメータ” このパラメータは”logcat”コマンドに指定するフィルター等のパラメータを デフォルト:”*:V” 任意に設定することができます。 任意パラメータ Ex1) logcat パラメータ ログフィルタの任意指定 “*:W” タイプ:トレース設定 -args “*:W” ⑩ トレース分割制限数 ログ取得 API では、デフォルトで取得したログをこのトレース分割制限 フォーマット:-limit 制限数 数パラメータにより分割します。デフォルトでは、10,000 件で分割しま デフォルト:10,000 す。制限数の最小は 10,000 件で最大は 50,000 件です。 任意パラメータ Ex1) トレース分割制限数 20,000 件 タイプ:トレース設定 -limit 20000 ⑪ トレース分割をしない トレース分割はデフォルトで必ず行う仕様であるため、分割させたくない フォーマット:-nolimit 場合は、このパラメータを設定します。 デフォルト:トレース分割をする。 Ex1) トレース分割をしない 任意パラメータ -nolimit タイプ:トレース設定 89/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 ⑫ ログクリアをしない ログトレースを取得する前にログはデフォルトでクリアします。ログをクリ フォーマット:-noclear アさせたくない場合は、このパラメータを設定します。 デフォルト:ログをクリアする Ex1) ログクリアをしない 任意パラメータ -noclear タイプ:トレース設定 ⑬ CPU + MEM 情報の取得 CPU と MEMORY のスナップショット情報を取得する場合、このパラメ フォーマット:-cpumem ータを設定します。(LAP トレース設定画面の summary を選択した場 デフォルト:取得しない。 合と同じです。) 任意パラメータ Ex1) CPU + MEM 情報の取得 タイプ:トレース設定 -cpumem ⑭ トレース追記 既に存在するトレースに追記する場合、このパラメータを設定します。 フォーマット:-append “トレース名” Ex1) “trace1”に追記する。 デフォルト:追記しない。 -append “trace1” 任意パラメータ タイプ:トレース設定 ⑮ 端末切断タイムアウト トレース中に端末が切断(電源 OFF を含む)した場合、再接続までのタイ フォーマット:-timeout 秒数 ムアウト時間を設定します。タイムアウトを超えた場合、トレース実行を デフォルト:3600 秒 終了します。デフォルトでは 3600 秒です 任意パラメータ Ex1) タイムアウト値を 1800 秒に設定する。 タイプ:トレース設定 -timeout 1800 90/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 4) トレース情報取得およびトレース終了 API のパラメータ トレース情報取得およびトレース終了 API のパラメータは、実行中のどのトレースに対しての操作かを特 定するためのパラメータの指定になります。以下の2つのパラメータのうち必ずどちらか1つを指定する 必要があります。 パラメータ 説明 ① データベースパス トレース開始時に指定したデータベースパスを指定し、トレースを特 フォーマット:-db データベースパス 定します。値指定の注意として、トレース開始時に指定したデータベー デフォルト:なし スパスは、全く同じ値を設定する必要があります。これはデータベース タイプ:API 設定 パスをトレース稼動情報リストのキーとして扱っているためで大文字・ ① または ②のパラメータのどち らかをを設定する必要がある。 小文字を区別します。 Ex1) データベース指定 C:¥lap_project¥dabases¥lap -db C:¥lap_project¥dabases¥lap ※データベースパスでのトレースの特定ですが、1 つのデータベース は複数のトレースを実行することができない規則からデータベースパ スによるトレースの特定ができます。 ② port 番号 トレース開始時に返されたポート番号を指定しトレースを特定します。 フォーマット:-port ポート番号 Ex1) port 番号指定 56401 デフォルト:なし –port 56401 タイプ:API 設定 ① または ②のパラメータのどち らかを設定する必要がある。 91/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 9.3.6.API 使用例 1) トレース開始メソッド // トレース開始 int port = LapExternalOperation.startLap( new String[] {“-db”, “C:¥¥lap_project¥¥dabases¥¥lap”, “-name”, “TRACE1”}); System.out.println("port: " + port); この例では、トレース開始のための最低限の設定(データベースパスとトレース名)を指定し、 トレースを開始します。 2) トレース終了メソッド // トレース終了 LapExternalOperation.stopLap( new String[] {“-db”, “C:¥¥lap_project¥¥dabases¥¥lap”}); トレースを特定するためにデータベースパスを指定し、トレース終了命令を送ります。 3) トレース情報取得メソッド // トレース情報取得 String info = LapExternalOperation.infoLap( new String[] {“-db”, “C:¥¥lap_project¥¥dabases¥¥lap”}); System.out.println(info); トレースを特定するためにデータベースパスを指定し、トレース情報を取得します。 92/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 9.3.7.トレース収集コマンド 外部 API は、トレース収集操作 API を使ったアプリケーション(コマンド)を併せて提供します。 アプリケーションクラスは、” jp.co.gbac.lap.external.LapExternalOperation”で、API と同じクラスで す。 1) コマンド説明 1 コマンドパラメータ 説明 -cmd “start” –db データベースパス トレースを開始します。 -name トレース名 [設定パラメータ…] トレース開始 API で指定可能なパラメータを指定し てください。(「トレース開始パラメータ」を参照) トレースが開始されると標準出力に port:ポート番 号が出力されます。 2 3 -cmd “stop” トレースを終了します。 -db データベースパス|-port ポート番号 成功すると標準出力に”OK”と出力されます。 -cmd “info” トレース情報を取得します。 -db データベースパス|-port ポート番号 トレース情報は、標準出力に表示されます。 内容は情報取得 API の戻り値と同じです。 2) コマンド使用例 ① コマンド実行の前提 jar ファイル: c:¥ext_api¥laplib¥lap-lib12.jar 展開した lib フォルダ: c¥ext_api¥lib(上記 jar ファイル展開後の lib ディレクトリ) データベースパス: c¥ext_api¥db¥DB1 トレース名: TRACE1 ※配布 CD 内に ext_api ディレクトリがありますので、ディレクトリ毎コピーし、java のパスが設定さ れていれば、そのままバッチファイルで使用可能です。 ② トレース開始 成功例 cd c:¥ext_api¥lap-start c:¥ext_api¥db¥DB1 TRACE1 port: 54601 93/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 ③ トレース終了成功例 c:¥ext_api¥lap-stop c:¥ext_api¥db¥DB1 OK ④ トレース情報の取得 成功例 c:¥ext_api¥lap-info c:¥ext_api¥db¥DB1 RUNNING 180 9.3.8. 制限事項および留意事項について 制限事項および留意事項 内容 1 同時トレース数は最大 32 1 台の PC 上で同時にトレース実行可能な最大数は 32 です。 2 1つのデータベースに対し 同時に複数台のトレースを取得できますが、取得したログを格納するデータベ て、複数同時にトレース実 ースは1つのトレースのみ使用することができ、複数のトレースで同時に使用 行はできない。 することはできません。したがって、複数同時にトレースを実行する場合は、デ ータベースを分ける必要があります。 3 トレース分割 データベースへのトレース格納はデフォルトで制限数を超えると必ずトレースの 分割を行います。 これは LAP 画面からトレースログを参照したときにトレース内のログが非常に 多いと表示することができないためで、パラメータで指定したあるいはデフォル トの制限数で 1 トレースの最大ログ数を制限しています。 分割されたトレースは、トレース名の後ろにアンダーバーから始まる 4 桁のシー ケンシャル番号が振られます。たとえば “trace1”というトレース名である場 合、分割されると”trace1_0001” “trace1_0002” “trace1_0003” … というよう に自動で名前が付けられます。 4 トレース中の端末の切断 ログトレース収集操作 API では、トレース中の端末の切断(電源 OFF を含む) と再接続 後もトレース取得の状態を保持します。同一端末が指定の時間内(-timeout パ ラメータ)再接続した場合は、それを感知し、トレースを継続します。 再接続されたトレースログは、切断前の最終ログ以降が登録され、それ以前の 重複したログの登録は行いません。 5 トレース実行時のエラーロ トレース開始時にトレース実行プロセスが失敗した場合は、トレース開始メソッ グファイル ド(呼び出し側)のプロセスに対し、エラーメッセージを返しますが、トレースを開 94/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 始した後は、トレース実行プロセスは、デーモンプロセスになるため、エラーが 発生してもそれを返すことはできません。そのため、トレース実行中にエラーが 発生した場合はログファイルに出力します。ログファイルはシステムテンポラリ ディレクトリの下に”LapExternal.log”という名前で作成され、このファイルは 複数プロセスで共有され、追記されます。 (Windows では:¥Users¥ユーザ名 ¥AppData¥Local¥Temp¥LapExternal.log”) トレース収集実行時に問題が発生した場合、このログファイルを参照してくださ い。 6 実行中のトレースリストフ トレースを実行した際、データベースとポート番号の関連付けおよびデータベー ァイル ス制約、ポート番号制約、また複数プロセスによるロック制御を行うため、実行 中のトレース情報をファイルとして管理しています。このファイルはシステムテ ンポラリディレクトリの下に LapExternalLock.txt という名前で作成され、複 数のプロセスで共有されます。 (Windows では:¥Users¥ユーザ名 ¥AppData¥Local¥Temp¥LapExternalLock.txt”) トレースの実行が終了した場合、このファイルからトレースのエントリは削除さ れます。実行中トレース情報リストのフォーマットは CSV 形式で “Port 番号,DB パス,トレース名,開始時刻¥n”です。 95/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 9.3.9.LAP plugin からのデータベース参照・共有 トレースログ収集 API により指定のデータベースに格納したログを LAP (eclipse plugin)から参照・共 有する方法として、LAP 側のデータベースを API で指定したデータベースに切り替えます。 1) LAP のデータベース切り替え手順 LAP 画面のトレースツリー上部の「LAP 設定」アイコンをクリックすると「LAP 設定」画面が表示されま す。 その環境設定タブ内のデータベースパスに API で指定したデータベースを指定し、OK ボタンを押すこと でデータベースを切り替えることができます。 ① LAP 設定 アイコン ② データベース 設定 ③ 96/109 OK ボタン Log Analyzer for Android Platform 操作説明書 Version 1.2.8 9.4.ログデータ取得 API 9.4.1.機能 LAP およびログトレース収集 API で取得したログデータは、データベースに格納されます。 この API を利用することで、データベースに格納されたログデータを外部アプリケーションから取得する ことができます。 アプリケーション LAP Plugin/収集 API ログデータ取得 API データベース 9.4.2.API 説明 ログデータ取得 API では以下の 3 つのクラスおよびインターフェイスを使用します。 1 クラス・インターフェイス 説明 LapExternalDatabase データベースからトレース情報およびログデータセットを取得するための クラス 2 TraceInfo トレース情報を保持するためのクラス 3 TraceResultSet ログデータセットを操作と値の取得するためのインターフェイス 9.4.3. LapExternalDatabase クラス jp.co.gbac.lap.external.LapExternalDatabase このクラスはログデータの取得操作を提供するクラスで以下のメソッドがあります。 メソッド 説明 1 getTraceNames データベースに格納されているトレース名配列を取得します。 2 getTraceInfoList データベースに格納されているトレース情報のリストを取得します。 3 getTraceResultSet データベースから指定のログデータのセットを取得します。 4 close データベース接続を切断します。 97/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 1) コンストラクタ 定義: public LapExternalDatabase(String dbPath) throw ComponentException 説明: 新しい LapExternalDatabase クラスを生成します。 パラメータで指定されたデータベースに接続します。 パラメータ: dbPath 接続するデータベースパス 例外: ComponentException データベース接続に失敗した場合 2) getTraceNames 定義: public String[] getTraceNames() throws ComponentException 説明: データベース内のすべてのトレース名を配列に格納し、返します。 パラメータ: なし。 戻り値: トレース名(文字列)配列 例外: ComponentException データベースアクセスに失敗した場合 データベース接続が既に切断されている場合 3) getTraceInfoList 定義: public List<TraceInfo> getTraceInfoList() throws ComponentException 説明: データベース内のすべてのトレース情報をリストにして返します。 パラメータ: なし。 戻り値: トレース情報リスト 例外: ComponentException データベースアクセスに失敗した場合 データベース接続が既に切断されている場合 98/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 4) getTraceResultSet 定義: ①public TraceResultSet getTraceResultSet(String traceName, RESULT_TYPE type) throws ComponentException ②public TraceResultSet getTraceResultSet(String traceName, RESULT_TYPE type, String where) ③public TraceResultSet getTraceResultSet(String traceName, RESULT_TYPE type, String where, String orderby) 説明: データベース内の指定したトレースのログデータセットを返します。 取得するログタイプおよび条件を指定することができます。 パラメータ: traceName トレース名文字列 RESULT_TYPE 取得するログトレース種別、タイプは以下。 // TraceResultSet.RESULT_TYPE public static enum RESULT_TYPE { RESULT_TRACE, // トレースログ RESULT_PROCESS, // プロセス情報 RESULT_CPU, // CPU スナップショット情報 RESULT_MEMORY, // MEMORY スナップショット情報 RESULT_SQL, // SQL 情報 RESULT_BINDER, // BINDER 情報 RESULT_CONTENT, // CONTENT 情報 RESULT_ACTIVITY, // ACTIVITY 情報 }; ※詳細は「ログデータセットのタイプ」を参照 where 取得するログデータセットの付加条件文字列(SQL の where 条件) orderby 取得するログデータセットのソート条件文字列(SQL の order by 条件) 戻り値: 指定された条件によるログデータセット 例外: ComponentException データベースアクセスに失敗した場合 データベース接続が既に切断されている場合 99/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 5) close 定義: public void close() throws ComponentException 説明: データベース接続を切断します。 ログデータの取得操作の終了時に必ずコールしてください。 パラメータ: なし。 戻り値: なし。 例外: ComponentException データベース切断に失敗 9.4.4. TraceInfo クラス 1) jp.co.gbac.lap.models.TraceInfo このクラスはトレース情報を保持するためのクラスで以下のトレース情報を取得するメソッドを持って います。 ※トレース情報取得メソッドはシンプルですのでメソッドの詳細説明は省略します。 メソッド定義 説明 1 public int getId() トレース ID を取得します。 2 public String getName() トレース名を取得します。 3 public String getComment() トレースコメントを取得します。 4 public String トレースの端末シリアル番号を取得します。 getSerialNumber() 5 public String getDevice() トレースの端末名(デバイスモデル名)を取得します。 6 public String トレースの端末の Android Version を取得します。 getAndroidVersion() 7 public String getStartTime() トレース開始時間を取得します。 8 public String getEndTime() トレース終了時間を取得します。 9 public int getMemory() トレースの端末トータルメモリサイズを取得します。 ※取得できない端末も存在します。 100/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 9.4.5. TraceResultSet インターフェイス 1) jp.co.gbac.lap.external.TraceResultSet このインターフェイスは、LapExternalDatabase.getTraceResultSet メソッドで取得したログデータ セットを操作するメソッドを持っています。 メソッド 説明 1 next 次のログデータを取得します 2 close ログデータセットを閉じます。 3 getLong 指定ログデータのカラムから long 値を取得します。 4 getInt 指定ログデータのカラムから integer 値を取得します。 5 getString 指定ログデータのカラムから String 値を取得します。 2) next 定義: public boolean next() throws ComponentException 説明: 次のログデータを取得します。 パラメータ: なし。 戻り値: true 取得成功 false 取得失敗 - ログデータセットの最後(終端)を超えた場合 例外: ComponentException データベースアクセスに失敗した場合 3) close 定義: public void close() throws ComponentException 説明: ログデータセットを閉じます。 ログデータセット使用の最後で必ずコールしてください。 パラメータ: なし。 戻り値: なし。 例外: ComponentException データベースアクセスに失敗した場合 101/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 4) getLong 定義: public long getLong(int cidx) throws ComponentException; 説明: 指定ログデータのカラムから long 値を取得します。 パラメータ: 取得するログデータのカラム番号 (1~) ※カラム番号は「ログデータセットのタイプ」を参照 戻り値: 指定ログデータのカラムの long 値 例外: ComponentException データベースアクセスに失敗した場合 5) getInt 定義: public int getInt (int cidx) throws ComponentException; 説明: 指定ログデータのカラムから integer 値を取得します。 パラメータ: 取得するログデータのカラム番号 (1~) ※カラム番号は「ログデータセットのタイプ」を参照 戻り値: 指定のログデータのカラムの integer 値 例外: ComponentException データベースアクセスに失敗した場合 6) getString 定義: public String getString (int cidx) throws ComponentException; 説明: 指定ログデータのカラムから String 値を取得します。 パラメータ: 取得するログデータのカラム番号 (1~) ※カラム番号は「ログデータセットのタイプ」を参照 戻り値: 指定のログデータのカラムの String 値 例外: ComponentException データベースアクセスに失敗した場合 102/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 9.4.6.ログデータセットのタイプ 1) トレースログ ログトレースにより収集したログのデータセットです。(タイプ名:RESULT_TRACE) カラム No 名前 説明 1 pid ログを出力したプロセスのプロセス ID 2 tid ログを出力したスレッドのスレッド ID 3 process_name PID に対応するプロセス名 4 log_tms ログが出力された日時 5 log_data ログメッセージ 6 log_level ログの出力レベル 7 tag ログに指定されたタグ 8 log_type ログの種別。(MAIN、EVENTS、RADIO、SYSTEM) 9 sequence_no ログの一意性を表す番号 2) プロセス情報 プロセス情報のデータセットです。(タイプ名:RESULT_PROCESS) カラム No 名前 説明 1 pid プロセス ID 2 process_name PID に対応するプロセス名 3 alias プロセスの別名 4 user ユーザ名 5 ppid 親プロセス ID 3) CPU スナップショット情報 CPU スナップショット情報のデータセットです。(タイプ名: RESULT_CPU) カラム No 名前 説明 1 snapshot_id スナップショット ID 2 snp_tms スナップショット時間 3 cpu_no CPU 番号 4 utime ユーザモード時間 5 ntime 低優先度ユーザモード 6 stime システムモード時間 7 itime アイドル時間 8 iowait IO 待ち時間 9 irqtime ハードウェア割り込み時間 10 sirqtime ソフトウェア割り込み時間 103/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 4) MEMORY スナップショット情報 MEMORY スナップショット情報のデータセットです。(タイプ名:RESULT_MEMORY) カラム No 名前 説明 1 snapshot_id スナップショット ID 2 snp_tms スナップショット時間 3 free 空き物理メモリサイズ 4 buffers ファイルバッファに使用している物理メモリサイズ 5 cached キャッシュメモリに使用している物理メモリサイズ 6 swap_cached 物理メモリ上にスワップされたキャッシュページ数 7 active 使用されているバッファ+キャッシュメモリ 8 inactive 使用されていないバッファ+キャッシュメモリ 9 anon_pages 無名ページ数 10 mapped ページテーブルにマップされているページキャッシュ 11 slab スラブアロケータで使用されている物理メモリサイズ 5) SQL 情報 SQL 情報のデータセットです。(タイプ名:RESULT_SQL) カラム No 名前 説明 1 pid ログを出力したプロセスのプロセス ID 2 tid ログを出力したスレッドのスレッド ID 3 process_name PID に対応するプロセス名 4 log_tms ログが出力された日時 5 db_path データベースパス 6 lap_time ラップタイム 7 long_sql SQL 文字列 8 prepare_sql プリペア SQL 文字列 9 sql_level SQL の階層(通常は 1、トリガーからコールされる毎に加算される) 10 sequence_no ログの一意性を表す番号 11 query_plan クエリプラン 104/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 6) BINDER 情報 BINDER 情報のデータセットです。(タイプ名:RESULT_BINDER) カラム No 名前 説明 1 pid ログを出力したプロセスのプロセス ID 2 tid ログを出力したスレッドのスレッド ID 3 process_name PID に対応するプロセス名 4 log_tms ログが出力された日時 5 descriptor ディスクリプタ 6 method_num メソッド番号 7 lap_time ラップタイム 8 pkg_name ブロッキングパッケージ名 9 percent サンプルパーセント 10 sequence_no ログの一意性を表す番号 7) CONTENT 情報 CONTENT RESOLVER ログ情報のデータセットです。(タイプ名: RESULT_CONTENT) カラム No 名前 説明 1 pid ログを出力したプロセスのプロセス ID 2 tid ログを出力したスレッドのスレッド ID 3 process_name PID に対応するプロセス名 4 log_tms ログが出力された日時 5 uri URI 6 projection 抽出項目 7 operation 操作 8 selection 選択条件 9 sortorder ソート順 10 lap_time ラップタイム 11 pkg_name ブロッキングパッケージ名 12 percent サンプルパーセント 13 sequence_no ログの一意性を表す番号 105/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 8) ACTIVITY 情報 ACTIVITY ログ情報のデータセットです。(タイプ名:RESULT_ACTIVITY) カラム No 名前 説明 1 pid ログを出力したプロセスのプロセス ID 2 tid ログを出力したスレッドのスレッド ID 3 process_name PID に対応するプロセス名 4 log_tms ログが出力された日時 5 tag タグ 6 component_name コンポーネント名 7 uri URI 8 target_pid ターゲットプロセス ID 9 target_process ターゲットプロセス名 10 lap_time ラップタイム 11 log_data ログメッセージ 12 process_name プロセス名 106/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 9.4.7.API 使用例 1) LapExternalDatabase コンストラクタ、トレース名の取得, DB クローズ LapExternalDatabase db = null; try { new LapExternalDatabase("/LAP/db"); String[] traceNames = db.getTraceNames(); System.out.println("trace count:" + traceNames.length); for (String name : traceNames) { System.out.println(name); } } catch (ComponentException e) { e.printStackTrace(); } finally { if (db != null) { try { db.close(); } catch (ComponentException e) { e.printStackTrace(); } } } 2) トレース情報リストの取得 List<TraceInfo>list = db.getTraceInfoList(); System.out.println("trace count:" + infoList.size()); for (TraceInfo info: infoList){ System.out.println("Trace Id:" +info.getId()); System.out.println("Name:" +info.getName()); System.out.println("AndroidVersion:" +info.getAndroidVersion()); System.out.println("Comment:" +info.getComment()); System.out.println("Device:" +info.getDevice()); System.out.println("Serial Number:" +info.getSerialNumber()); System.out.println("Start Time:" +info.getStartTime()); System.out.println("End Time:" +info.getEndTime()); System.out.println("Memory:" +info.getMemory()); } // LapExternalDatabaseコンストラクタおよびclose(), 例外処理は省略。1)を参照 107/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 3) トレースログ取得 ログタイプ RESULT_TYPE.RESULT_TRACE TraceResultSet result = null; try { result = db.getTraceResult("trace2", RESULT_TYPE.RESULT_TRACE); while (result.next()) { System.out.println("PID:" + result.getInt(1)); System.out.println("TID:" + result.getInt(2)); System.out.println("PROCESS:" + result.getString(3)); System.out.println("TIME:" + result.getString(4)); System.out.println("MESSAGE:" + result.getString(5)); System.out.println("LEVEL:" + result.getString(6)); System.out.println("TAG:" + result.getString(7)); System.out.println("TYPE:" + result.getString(8)); System.out.println("SNO:" + result.getString(9)); } } finally { If (result != null) { result.close(); } } // LapExternalDatabaseコンストラクタおよびclose(), 例外処理は省略。1)を参照 108/109 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 10.トラブルシューティング 10.1.端末の接続に関するエラーが表示される PC にデバイスを接続しており、ドライバが正常にインストールされているにも関わらず端末接続がうま くいかない場合、Android SDK に付属する以下の adb コマンドを実行して下さい。 #adb kill server #adb start server ※adb コマンドの詳しい詳細については Android SDK の公式サイトを参照して下さい。 上記のコマンドでも接続できない場合、一度デバイスを PC から外してデバイスを再起動して再度接続 して下さい。 10.2.操作後の処理結果が正しく表示されない LAP を操作しても期待する結果が表示されない場合、LAP 内部でエラーが発生している可能性があり ます。その場合は、コンソールの「LAP」にエラーメッセージがないか確認して下さい。 ※上記は全クエリプラン取得にて、SQL 文字列が途中で切れている場合のメッセージです 以上 Log Analyzer for Android Platform 操作説明書 Version 1.2.8 Copyright (C) 2013-2015 GBA Co.,Ltd. All rights reserved. 本書の記載内容の著作権は、株式会社ジービーエーに帰属します。 内容の全部か一部を問わず、著作権の許可なく転載、複製することを禁じます。 109/109