Membuat profil dan mendebug APK yang sudah di-build sebelumnya

Android Studio 3.0 dan yang lebih tinggi memungkinkan Anda untuk membuat profil dan men-debug APK tanpa harus mem-build-nya dari project Android Studio. Namun, pastikan Anda menggunakan APK dengan proses debug yang diaktifkan.

Untuk memulai proses debug APK, klik Profile or debug APK dari layar Selamat Datang Android Studio. Atau, jika sudah membuka sebuah project, klik File > Profile or Debug APK dari panel menu. Di jendela dialog berikutnya, pilih APK yang ingin diimpor ke Android Studio dan klik OK.

Android Studio kemudian menampilkan file APK yang belum dibuka, seperti ditunjukkan dalam gambar 1. Ini bukanlah kumpulan file yang sudah didekompilasi sepenuhnya, meskipun menyediakan file .smali untuk versi file .dex yang lebih mudah dibaca.

Gambar 1. Mengimpor APK yang sudah di-build ke Android Studio.

Tampilan Android di panel Project memungkinkan Anda memeriksa konten APK berikut:

  • File APK: Klik dua kali pada APK akan membuka Penganalisis APK.
  • manifes: Berisi manifes aplikasi yang diekstrak dari APK.
  • java: Berisi kode Java yang dibongkar oleh Android Studio (menjadi file .smali) dari file DEX APK Anda. Setiap file .smali dalam direktori ini cocok dengan sebuah class Java.
  • cpp: Jika aplikasi Anda menyertakan kode native, direktori ini akan berisi library native APK (file .so).
  • Library Eksternal: Berisi SDK Android.

Anda dapat langsung menggunakan profiler Android untuk mulai menguji performa aplikasi.

Untuk men-debug kode Java aplikasi, Anda harus menyematkan sumber Java dan menambahkan titik henti sementara dalam file .java. Demikian pula, untuk men-debug kode native, Anda harus menyematkan simbol debug native.

Menyematkan sumber Java

Secara default, Android Studio mengekstrak kode Java dari APK dan menyimpannya sebagai file .smali. Untuk men-debug kode Java menggunakan titik henti sementara, Anda perlu mengarahkan IDE ke file sumber .java yang terkait dengan file .smali yang ingin di-debug.

Untuk menyematkan sumber Java, lakukan langkah berikut:

  1. Klik dua kali pada file .smali dari panel Project (gunakan tampilan Android). Setelah file terbuka, editor akan menampilkan banner peringatan yang meminta Anda memilih sumber Java, seperti ditunjukkan dalam gambar 1.
  2. Klik Attach Java Sources dari banner di bagian atas jendela editor.
  3. Buka direktori yang memuat file sumber Java aplikasi dan klik Open.

Di jendela Project, IDE akan mengganti file .smali dengan file .java yang terkait, dan IDE juga menyertakan class internal secara otomatis. Anda sekarang dapat menambahkan titik henti sementara dan men-debug aplikasi seperti biasanya.

Menyematkan simbol debug native

Jika APK Anda berisi library native (file .so) yang tidak menyertakan simbol debug, IDE akan menampilkan peringatan di jendela Messages, seperti yang ditunjukkan dalam gambar 1. Anda tidak dapat men-debug kode native APK atau menggunakan titik henti sementara tanpa menyematkan library native yang dapat di-debug.

Jika Anda mem-build library native dalam APK dengan ID build, Android Studio akan memeriksa apakah ID build dalam file simbol cocok dengan ID build dalam library native, lalu menolak file simbol jika ada ketidakcocokan. Jika Anda tidak mem-build dengan ID build, menyediakan file simbol yang salah dapat menyebabkan masalah dengan proses debug.

Untuk menyematkan library native yang dapat di-debug, lakukan langkah berikut:

  1. Jika Anda belum melakukannya, pastikan untuk mendownload NDK dan fitur-fiturnya.
  2. Dalam direktori cpp di jendela Project (hanya terlihat jika Anda memilih tampilan Android, seperti ditunjukkan dalam gambar 2), klik dua kali file library native yang tidak menyertakan simbol debug. Editor akan menampilkan tabel berisi semua ABI yang didukung APK Anda.
  3. Klik Add di sudut kanan atas jendela editor.
  4. Buka direktori berisi library native yang dapat di-debug yang ingin Anda sematkan, lalu klik OK.

Jika sebelumnya APK dan library native yang dapat di-debug telah di-build menggunakan komputer lain, Anda juga harus menentukan jalur ke simbol debug lokal dengan mengikuti langkah berikut:

  1. Tambahkan jalur lokal ke simbol debug yang tidak ditemukan dengan mengedit bidang di bawah kolom Local Paths di bagian Path Mappings pada jendela editor, seperti ditunjukkan dalam gambar 2. Biasanya, Anda hanya perlu menyediakan jalur ke folder utama dan Android Studio akan memeriksa subdirektori secara otomatis untuk memetakan sumber tambahan. IDE juga akan secara otomatis memetakan jalur menuju NDK jarak jauh ke download NDK lokal Anda.
  2. Klik Apply Changes di bagian Path Mappings pada jendela editor.

Gambar 2. Menyediakan jalur ke simbol debug lokal.

Sekarang, Anda dapat melihat file sumber native di jendela Project. Buka file native tersebut untuk menambahkan titik henti sementara dan men-debug aplikasi seperti biasa. Anda juga dapat menghapus pemetaan dengan mengklik Clear di bagian Path Mappings pada jendela editor.

Masalah umum: Saat menyematkan simbol debug ke APK, file APK dan file .so yang dapat di-debug harus di-build menggunakan komputer atau server build yang sama.