Simpleperf is a native profiler used on Android platform. It can be used to profile Android applications. Its documentation is here. Instructions of preparing your Android application for profiling are here. This directory is to show examples of using simpleperf to profile Android applications. The meaning of each directory is as below:
../scripts/ -- contain simpleperf binaries and scripts. SimpleperfExamplePureJava/ -- contains an Android Studio project using only Java code. SimpleperfExampleWithNative/ -- contains an Android Studio project using both Java and C++ code. SimpleperfExampleOfKotlin/ -- contains an Android Studio project using Kotlin code.
It can be downloaded as below:
$ git clone https://android.googlesource.com/platform/system/extras $ cd extras/simpleperf/demo
The testing environment:
Android Studio 3.2 test device: Android O (Google Pixel 2) test device: Android N (Google Nexus 6P) Please make sure your device having Android version >= N.
Android Studio project: SimpleExamplePureJava
steps:
# Open SimpleperfExamplesPureJava project with Android Studio, # and build this project successfully, otherwise the `./gradlew` command below will fail. $ cd SimpleperfExamplePureJava # On windows, use "gradlew" instead. $ ./gradlew clean assemble $ adb install -r app/build/outputs/apk/app-profiling.apk
$ cd ../../scripts/ # app_profiler.py collects profiling data in perf.data, and binaries on device in binary_cache/. $ python app_profiler.py -p com.example.simpleperf.simpleperfexamplepurejava
# report_html.py generates profiling result in report.html. $ python report_html.py --add_source_code --source_dirs ../demo --add_disassembly
Android Studio project: SimpleExampleWithNative
steps:
# Open SimpleperfExamplesWithNative project with Android Studio, # and build this project sucessfully, 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
$ cd ../../scripts/ # app_profiler.py collects profiling data in perf.data, and binaries on device in binary_cache/. $ python app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative
# report_html.py generates profiling result in report.html. $ python report_html.py --add_source_code --source_dirs ../demo --add_disassembly
Android Studio project: SimpleExampleOfKotlin
steps:
# Open SimpleperfExamplesOfKotlin project with Android Studio, # and build this project sucessfully, otherwise the `./gradlew` command below will fail. $ cd SimpleperfExampleOfKotlin # On windows, use "gradlew" instead. $ ./gradlew clean assemble $ adb install -r app/build/outputs/apk/profiling/app-profiling.apk
$ cd ../../scripts/ # app_profiler.py collects profiling data in perf.data, and binaries on device in binary_cache/. $ python app_profiler.py -p com.example.simpleperf.simpleperfexampleofkotlin
# report_html.py generates profiling result in report.html. $ python report_html.py --add_source_code --source_dirs ../demo --add_disassembly