2025 年 3 月 27 日より、AOSP のビルドとコントリビューションには aosp-main
ではなく android-latest-release
を使用することをおすすめします。詳細については、AOSP の変更をご覧ください。
システム パフォーマンス ツール
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
このページでは、パフォーマンス指標の測定に使用できるツールについて説明します。
起動時間
起動タイミングをプロファイリングするには、Simpleperf のドキュメントを使用します。config.yaml
ファイルに検索するイベントを含めます。config.yaml
は次のようになります。
stop_event: <logcat log message which will terminate log collection after reboot>
events:
event1_name: <pattern that matches log message>
event2_
...
一部のデバイスでは、時計を起動してから最初の数秒間、間違った時刻が表示されることがあります。bootanalyze ツールにはすぐに使用できる時刻調整機能が用意されていますが、config.yaml
で任意の時刻調整パターンを指定することもできます。起動時間の最適化では、ブートローダー、デバイス カーネル、I/O 調整、ブート アニメーション、SELinux ポリシーなどのコンポーネントを使用して、起動時間を改善する方法について説明します。
アプリの起動時間
ユーザーは、アプリに対して読み込みの速さと応答性の高さを期待しています。
アプリの起動時間では、起動プロセスの内部構造の詳細と、起動パフォーマンスをプロファイリングして最適化する方法について説明します。
ユーザー インターフェース
ユーザー インターフェース(UI)のパフォーマンス テストでは、アプリが機能要件を満たし、ユーザーがアプリをスムーズに操作できることを確認します。具体的には、安定して毎秒 60 フレーム(Android Performance Patterns: Why 60fps? を参照)で動作し、フレームのドロップまたは遅延が起こらないことを確かめます。
詳細については、UI パフォーマンスのテスト と JankTest をご覧ください。
メモリ
アプリのメモリ使用量は、次の 2 つの方法のいずれかで検査できます。
- 一定期間(
procstats
を使用)。
- 特定の時点のスナップショット(
meminfo
を使用)。
詳しくは以下のページをご覧ください。
中央処理装置
CPU のクエリに以下のツールを使用できます。
- Android アプリと Android で実行されているネイティブ プロセスをプロファイリングするには、Simpleperf のドキュメントを使用します。
これは Android 用のネイティブ中央処理装置(CPU)プロファイリング ツールです。Simpleperf は Android で Java コードと C++ コードをプロファイリングできます。Simpleperf 実行可能ファイルは L より後の Android リリースで実行でき、Python スクリプトは N より後の Android リリースで使用できます。
Simpleperf のドキュメントはこちらです。詳細については、Simpleperf のドキュメントをご覧ください。- アプリの操作中にアプリの CPU 使用率とスレッド アクティビティをリアルタイムで検査するには、CPU Profiler を使用します。これにより、より高速でスムーズなユーザー エクスペリエンスを実現したり、デバイスのバッテリー寿命を延ばしたりなど、多くのメリットを得られます。また、記録されたメソッド、関数、システム トレースの詳細を調べることもできます。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-27 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-07-27 UTC。"],[],[],null,["# System performance tools\n\nThis page describes the tools you can use to measure performance metrics.\n\nBoot time\n---------\n\nTo profile boot timing, use the\n[Simpleperf](https://android.googlesource.com/platform/system/extras/+/android16-release/simpleperf/doc/README.md)\ndocumentation.\n`config.yaml` file to include events you want to search for. `config.yaml`\nshould appear as follows: \n\n```scdoc\n stop_event: \u003clogcat log message which will terminate log collection after reboot\u003e\n events:\n event1_name: \u003cpattern that matches log message\u003e\n event2_\n ...\n```\n\nOn some devices, booting the clock may display an incorrect time for the first few seconds. While\nthe bootanalyze tool can accommodate a time correction out-of-the-box, you can provide an optional\ntime correction pattern in `config.yaml`.\n[Optimizing boot times](/devices/tech/perf/boot-times) explains how to improve boot\ntime using components such as Bootloader, Device Kernel, I/O tuning, Boot animation, and the\nSELinux policy.\n\nApp start-up time\n-----------------\n\nUsers expect apps to be quick to load and responsive.\n[App Startup Time](https://developer.android.com/topic/performance/vitals/launch-time)\ndetails the internals of the launch process and discusses how to profile and optimize startup\nperformance.\n\nUser interface\n--------------\n\nUser interface (UI) performance testing ensures that your app meets functional requirements and\nthat user interactions with your app are smooth, run at a consistent 60 frames per second (see\n[Android\nPerformance Patterns: Why 60fps?](https://www.youtube.com/watch?v=CaMTIgxCSqU&index=25&list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE)), and all without dropping or delaying frames.\n\nFor more information, see [Test\nUI Performance](https://developer.android.com/training/testing/performance) and\n[JankTest](https://developer.android.com/reference/android/support/test/jank/JankTest).\n\nMemory\n------\n\nYou can inspect app memory usage in one of two ways:\n\n- Over time, using `procstats`.\n- Snapshot in time, using `meminfo`.\n\nFor details, see:\n\n- To measure memory usage, see [View\n Memory Allocations](https://developer.android.com/studio/command-line/dumpsys.html#ViewingAllocations).\n- To use the Android Studio IDE to inspect memory, Android Studio provides a GUI-based memory usage tool. For details, see [View the Java Heap and\n Memory Allocations with Memory Profiler](https://developer.android.com/studio/profile/memory-profiler).\n- To conduct performance instrumentation and tracing on the Linux, Android, and Chrome platform and in user-space apps, use open source [Perfetto](https://perfetto.dev/#/).\n\nCentral processing unit\n-----------------------\n\nYou can use the following tools to query the CPU.\n\n- To profile Android apps *and* native processes running on Android, use [Simpleperf](https://android.googlesource.com/platform/system/extras/+/android16-release/simpleperf/doc/README.md) documentation.\na native central processing unit (CPU) profiling tool for Android. Simpleperf can profile Java and C++ code on Android. The Simpleperf executable can run on Android releases later than L and Python scripts can be used on Android releases later than N. \n\n[Simpleperf](https://android.googlesource.com/platform/system/extras/+/android16-release/simpleperf/doc/README.md) documentation. For details, see the [Simpleperf](https://android.googlesource.com/platform/system/extras/+/android16-release/simpleperf/doc/README.md) documentation.\n- To inspect your app's CPU usage and thread activity in real time while interacting with your app, use the [CPU Profiler](https://developer.android.com/studio/profile/cpu-profiler). Doing so has many advantages, such as providing a faster and smoother user experience and preserving device battery life. In addition, you can inspect the details of recorded method, function, and system traces."]]