Android SDK Tools, Revision 20 から、システムワイドなトレースツールである systrace が追加されました。
このツールを使うと、ユーザランドとカーネルの詳細なトレース結果を得ることができるので、パフォーマンス解析に役立ちます。
準備
- PC に「Android SDK Tools, Revision 20」をインストールする。
- PC に Python (実行環境)をインストールする。
- Android 4.1 端末を PC と接続する。
- 端末上の設定アプリで「開発者オプション」 > 「トレースを有効にする」 で任意の有効なトレースを選択する。
systrace の使い方
android-sdk/tools/systrace ディレクトリに移動し、systrace.py を実行する(※)。
※実行するには「python systrace.py」、または、実行権(x)を付加して「./systrace.py」
デフォルトでは 5 秒間トレースされますが、-t でトレース時間(単位は秒)を指定できます。
実行結果
実行すると、trace.html ファイルが生成されるので、Chrome ブラウザ(※)で開きます。
※Firefox では正常に動作しませんでした
下図は、「API Demos」 > 「Graphics」 > 「OpenGL ES」 > 「Sprite Text」 を 1 秒間トレースした結果です。
trace.html ファイルは、HTML + Javascript で操作できるようになっていて、
色のついているエリアをダブルクリックすると、拡大できたり、範囲選択すると、下側に詳細な説明が表示されます。
VSYNC 美しいです!
VSYNC 美しいです!
おまけ
systrace の出力結果には、trace-viewer という Chrome の Javascript ベースなトレースツールを使っているようです。
- trace-viewer - Javascript-based trace visualization - Google Project Hosting
trace-viewer is the javascript frontend for Chrome's about:tracing UI, and can be used to visualize and analyze traces from various tracing libraries, including the linux kernel and Chrome's base/trace_event system.
また、systrace ツール自体は、python スクリプトで記述されていて、内部的には、adb shell から atrace を実行しているようです。
あわせて読みたい
