Untuk membuat rekaman aktivitas metode eksekusi aplikasi, Anda dapat menginstrumentasikan aplikasi
menggunakan class
Debug
. Menginstrumentasikan aplikasi dengan cara ini akan memberi Anda kontrol yang lebih besar tepat saat
perangkat mulai dan berhenti merekam informasi rekaman aktivitas. Perangkat juga menyimpan
log rekaman aktivitas menggunakan nama yang Anda tetapkan, sehingga nantinya Anda dapat dengan mudah mengidentifikasi
setiap log. Selanjutnya, Anda dapat melihat setiap log rekaman aktivitas menggunakan CPU Profiler
Android Studio.
Anda juga dapat mulai dan berhenti merekam aktivitas di CPU Profiler tanpa menginstrumentasikan kode aplikasi.
Sebelum mulai membuat log rekaman aktivitas, pastikan aplikasi telah menambahkan logika untuk menyimpan log rekaman aktivitas ke direktori khusus aplikasi.
Menginstrumentasikan aplikasi Anda
Untuk membuat log rekaman aktivitas, panggil startMethodTracing()
tempat Anda ingin sistem memulai pencatatan log data rekaman aktivitas.
Di panggilan tersebut, Anda dapat menentukan nama untuk
file .trace
, dan sistem akan menyimpannya ke direktori
khusus paket yang ditujukan untuk data aplikasi persisten di perangkat target. Ini adalah
direktori yang sama yang ditunjukkan oleh
getExternalFilesDir()
dan berada dalam direktori ~/sdcard/
di sebagian besar perangkat.
File ini berisi data rekaman aktivitas metode biner serta tabel pemetaan berisi thread
dan nama metode. Untuk menghentikan perekaman aktivitas, panggil
stopMethodTracing()
.
Contoh berikut memulai dan menghentikan perekaman log rekaman aktivitas dengan nama
sample.trace
:
Kotlin
// Starts recording a trace log with the name you provide. For example, the // following code tells the system to start recording a .trace file to the // device with the name "sample.trace". Debug.startMethodTracing("sample") // The system begins buffering the generated trace data, until your // application calls <code><a href="/reference/android/os/Debug.html#stopMethodTracing()">stopMethodTracing()</a></code>, at which time it writes // the buffered data to the output file. Debug.stopMethodTracing()
Java
// Starts recording a trace log with the name you provide. For example, the // following code tells the system to start recording a .trace file to the // device with the name "sample.trace". Debug.startMethodTracing("sample"); ... // The system begins buffering the generated trace data, until your // application calls <code><a href="/reference/android/os/Debug.html#stopMethodTracing()">stopMethodTracing()</a></code>, at which time it writes // the buffered data to the output file. Debug.stopMethodTracing();
Perlu diperhatikan bahwa jika aplikasi Anda memanggil
startMethodTracing()
kembali tanpa mengubah nama log rekaman aktivitas, aplikasi tersebut akan menimpa log yang
telah disimpan di perangkat. Untuk mempelajari cara mengubah nama setiap log rekaman aktivitas
secara dinamis, buka bagian tentang menyimpan beberapa log.
Jika sistem mencapai ukuran buffer maksimum sebelum Anda memanggil
stopMethodTracing()
,
sistem akan menghentikan perekaman aktivitas dan mengirimkan notifikasi ke konsol.
Metode yang memulai dan menghentikan perekaman aktivitas bekerja di seluruh proses aplikasi Anda. Artinya,
Anda dapat memanggil
startMethodTracing()
dalam metode
onCreate(Bundle)
aktivitas Anda, dan memanggil stopMethodTracing()
dalam metode onDestroy()
aktivitas tersebut.
Perlu diketahui bahwa aplikasi Anda akan berjalan lebih lambat jika pembuatan profil diaktifkan. Artinya, Anda tidak boleh menggunakan data pembuatan profil untuk menentukan pengaturan waktu absolut (seperti, "metode foo()
memerlukan waktu 2,5 detik untuk berjalan"). Informasi pengaturan waktu dalam log rekaman aktivitas
hanya berguna saat membandingkannya dengan log rekaman aktivitas sebelumnya, sehingga Anda dapat melihat apakah perubahan
terbaru mempercepat atau memperlambat aplikasi Anda.
Saat melakukan deployment ke perangkat yang menjalankan Android 5.0 (API level 21) dan yang lebih baru, Anda dapat menggunakan pembuatan profil berbasis sampel untuk membuat profil dengan dampak lebih kecil pada performa runtime. Untuk
mengaktifkan pembuatan profil berbasis sampel, panggil
startMethodTracingSampling()
(bukan startMethodTracing()
) dengan interval pengambilan sampel yang
ditetapkan. Sistem akan mengumpulkan sampel secara berkala hingga aplikasi memanggil
stopMethodTracing()
.
Menyimpan beberapa log
Jika aplikasi Anda memulai dan menghentikan rekaman aktivitas metode berkali-kali tanpa menetapkan
nama baru untuk log rekaman aktivitas, perangkat akan menimpa log rekaman aktivitas yang lebih lama dengan
yang baru. Artinya, aplikasi hanya menyimpan log rekaman aktivitas terbaru. Untuk menyimpan beberapa
log rekaman aktivitas ke perangkat, ganti nama log rekaman aktivitas secara dinamis setiap kali aplikasi
memanggil startMethodTracing()
.
Sampel di bawah ini menggunakan class
SimpleDateFormat
untuk menyertakan tanggal dan waktu saat ini ketika memberi nama setiap log rekaman aktivitas:
Kotlin
// Uses the <code><a href="/reference/java/text/SimpleDateFormat.html">SimpleDateFormat</a></code> class to create a String with // the current date and time. val dateFormat: DateFormat = SimpleDateFormat("dd_MM_yyyy_hh_mm_ss", Locale.getDefault()) val logDate: String = dateFormat.format(Date()) // Applies the date and time to the name of the trace log. Debug.startMethodTracing("sample-$logDate")
Java
// Uses the <code><a href="/reference/java/text/SimpleDateFormat.html">SimpleDateFormat</a></code> class to create a String with // the current date and time. SimpleDateFormat dateFormat = new SimpleDateFormat("dd_MM_yyyy_hh_mm_ss", Locale.getDefault()); String logDate = dateFormat.format(new Date()); // Applies the date and time to the name of the trace log. Debug.startMethodTracing( "sample-" + logDate);
Mengakses log rekaman aktivitas di perangkat
Setelah sistem membuat log rekaman aktivitas pada perangkat, Anda dapat mengakses file tersebut dengan salah satu cara berikut:
Menggunakan Device Explorer. Untuk membuka Device Explorer, klik View > Tool Windows > Device Explorer (atau klik tombol Device Explorer di kolom jendela alat). Seperti yang ditampilkan dalam gambar 1, Anda dapat menemukan file
.trace
dengan membuka direktori khusus paket pada aplikasi.Salin file tersebut ke komputer lokal Anda menggunakan perintah
adb pull
. Perintah di bawah ini menyalin log rekaman aktivitassample.trace
dari perangkat ke direktori~/Documents/trace-logs/
pada komputer lokal Anda.adb pull path-on-device/sample.trace ~/Documents/trace-logs/
Selanjutnya, Anda dapat mengimpor file rekaman aktivitas dengan CPU Profiler.