Android Studio 包含 Simpleperf 的圖形前端,記錄在使用 CPU Profiler 檢查 CPU Activity 中。大多數用戶更喜歡使用該圖形前端,而不是直接使用 Simpleperf。
如果您更喜歡使用命令行,可以直接使用 Simpleperf。Simpleperf 是一個通用的命令行 CPU 性能剖析工具,包含在面向 Mac、Linux 和 Windows 的 NDK 中。
Simpleperf包含兩部分:simpleperf可執行文件和Python腳本。路徑:Android/sdk/ndk/20.0.5594570/simpleperf
simpleperf可執行文件的工作方式類似於linux-tools-perf,但是具有針對Android分析環境的一些特定功能:詳情參看simpleperf
Python 腳本根據功能劃成如下三部分:
- 用於記錄事件的腳本, like app_profiler.py, run_simpleperf_without_usb_connection.py.
- 用於報告的腳本, like report.py, report_html.py, inferno.
- 用於分析 profiling data的腳本, like simpleperf_report_lib.py.
1.事件
2.分析Android App性能
分析一個 Android 應用的性能可以按照如下三步走:
- 準備一個要分析的APP.
例如Google官方的實例:
<code>$ git clone https://android.googlesource.com/platform/system/extras $ cd extras/simpleperf/demo # Open SimpleperfExamplesWithNative project with Android studio, and build this project # successfully, otherwise the `./gradlew` command below will fail. $ cd SimpleperfExampleWithNative # On windows, use "gradlew" instead. $ ./gradlew clean assemble $ adb install -r app/build/outputs/apk/profiling/app-profiling.apk/<code>
2.抓取性能數據:
<code>./app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative --compile_java_code -a .MixActivity -lib /Volumes/lixinmu/google/SimpleperfExampleWithNative/app/build/intermediates/cmake/debug/obj/arm64-v8a//<code>
3.分析性能數據:
<code>python report_html.py/<code>
4.查看對應的性能分析數據:
通過數據我們可以看到各個線程佔用的CPU時鐘週期