Androidでアプリケーションのパフォーマンスをテストするにはどうすればよいですか? Androidで提供されるサポートとは何ですか?
パフォーマンスのボトルネックを見つけるためにアプリケーションのプロファイルを作成する場合は、 traceview
ツールを使用 にできます。これにより、アプリケーションのパフォーマンストレースがグラフィカルに表示されます。
トレースを作成するには、トレースを開始するコードに次を追加します。
Debug.startMethodTracing("myapp");
トレースを停止する場合は、次を追加します。
Debug.stopMethodTracing();
これにより、SDカードのルートディレクトリにmyapp.trace
というトレースファイル呼び出しが作成されます。 SDカードに書き込まれるとおり:
マニフェストに以下を追加して、SDカードに書き込む許可をアプリに与える必要があります。
<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
ファイルが作成されたら、PCにコピーする必要があります。 adb
コマンドを使用してこれを行うことができます。
adb pull /sdcard/myapp.trace c:/my/dir/myapp.trace
最後に、traceview
を開始して、トレースファイルへのフルパスを指定します。
traceview c:/my/dir/myapp.trace
traceview
がOutOfMemory
例外で失敗するという問題がありました。 traceview.bat
の最後の行を次のように変更することにより、Windowsでこれを修正しました。
call Java -Djava.ext.dirs=%javaextdirs% -Dcom.Android.traceview.toolsdir= -jar %jarpath% %*
に:
call Java -Xmx1g -Djava.ext.dirs=%javaextdirs% -Dcom.Android.traceview.toolsdir= -jar %jarpath% %*
-Xmx1g
オプションを追加すると、traceview
がより多くのメモリを使用できるようになります。
また、理論的に、DDMSはプログラムのメモリ割り当てを取得でき、プロファイラを使用してダンプを分析できます。 DDMSリファレンス
理論的にイタリック体を使用している理由は、私自身はまだそのようなことをしようとしていないからです。
TraceViewに含まれる情報が多すぎると、迷子になる可能性があります。
私の解決策は、システム時間をコードの3箇所で記録することです。
潜在的な低速コードの前後および中心。
バイナリ検索のように、次回、段階的に絞り込み、最後に原因コードを見つけます。
テストする別の方法は、Load RunnerのTruClientを使用することです
モバイルWebの手順は次のとおりです。
ネイティブモバイルで従うべき手順は次のとおりです。
スクリプトを記録してテストを実行できます。
ロードランナーを使用できます。
詳細については、このリンクを使用してください。
従うべき手順は次のとおりです。
これでテストを実行できます。