Versi command line APK Analyzer memberikan insight langsung tentang komposisi APK Anda setelah proses build selesai, dan memungkinkan Anda untuk membandingkan perbedaan antara dua APK. Penggunaan APK Analyzer akan mengurangi waktu yang diperlukan untuk men-debug masalah terkait file DEX dan resource dalam aplikasi Anda, serta mengurangi ukuran APK Anda.
apkanalyzer
disertakan dalam paket
Alat Command Line Android SDK di
android_sdk/cmdline-tools/version/bin/apkanalyzer
.
Atau, Anda dapat mengakses alat APK Analyzer dalam
Android Studio seperti dijelaskan dalam
Menganalisis build Anda dengan APK Analyzer.
Sintaksis
Sintaksis untuk apkanalyzer
adalah:
apkanalyzer [global-options] subject verb [options] apk-file [apk-file2]
subject
adalah hal yang ingin Anda kueri dan dapat berupa seluruh APK
atau bagian dari APK. Subjek dapat berupa salah satu dari berikut:
apk
: Menganalisis atribut file APK seperti ID aplikasi, kode versi, dan nama versi.files
: Menganalisis file yang ada di dalam file APK.manifest
: Menganalisis isi manifes yang ada di dalam file APK.dex
: Menganalisis file DEX yang ada di dalam file APK.resources
: Melihat teks, gambar, dan resource string.
verb
adalah hal yang ingin Anda ketahui tentang subjek. Subjek,
kata kerja, dan opsinya dijelaskan di bagian berikut tentang perintah.
Setiap perintah mengharuskan Anda menentukan file APK. Hanya perintah
apk compare
yang mengharuskan Anda menentukan APK kedua.
Anda dapat mempersingkat setiap opsi selama opsi tersebut tidak ambigu. Misalnya,
opsi global --human-readable
dapat disingkat menjadi
-h
.
Contoh berikut menganalisis apk
(subject)
untuk mendapatkan file-size
(verb), lalu mencetak ukuran file dalam
format yang dapat dibaca manusia (opsi -h
):
apkanalyzer -h apk file-size myapk.apk
Perintah
Deskripsi perintah berikut disusun berdasarkan subject dan mencantumkan kombinasi verb dan opsi yang tersedia untuk setiap subject:
|
Deskripsi |
---|---|
apk summary apk-file
|
Mencetak ID aplikasi, kode versi, dan nama versi.
Contoh output: com.myapp 5 1.1-beta |
apk file-size apk-file
|
Mencetak ukuran total file APK. |
apk download-size apk-file
|
Mencetak perkiraan ukuran file download APK. |
apk features [--not-required] apk-file
|
Mencetak fitur yang digunakan oleh APK yang memicu
pemfilteran Play Store
. Menambahkan opsi --not-required
untuk menyertakan fitur yang ditandai sebagai tidak diperlukan dalam output.
Contoh output: android.hardware.type.watch android.hardware.microphone implied: requested android.permission.RECORD_AUDIO permission |
apk compare [options] apk-file
apk-file2
|
Membandingkan ukuran apk-file dan
apk-file2 .
Anda dapat menyertakan opsi berikut:
Contoh output (ukuran lama / ukuran baru / perbedaan ukuran / jalur): 39086736 48855615 9768879 / 10678448 11039232 360784 /classes.dex 18968956 18968956 0 /lib/ 110576 110100 -476 /AndroidManifest.xml ... |
Melihat sistem file APK | Deskripsi |
files list apk-file
|
Mencantumkan semua file di APK.
Contoh output: / /classes2.dex /classes.dex /assets/ /assets/asset.data /AndroidManifest.xml /resources.arsc /res/ ... |
files cat --file path apk-file
|
Mencetak isi file. Anda harus menentukan jalur di dalam APK menggunakan
opsi --file path , seperti --file
/AndroidManifest.xml
|
Melihat informasi dalam manifes | Deskripsi |
manifest print apk-file
|
Mencetak manifes APK dalam format XML. |
manifest application-id apk-file
|
Mencetak nilai ID aplikasi. |
manifest version-name apk-file
|
Mencetak nilai nama versi. |
manifest version-code apk-file
|
Mencetak nilai kode versi. |
manifest min-sdk apk-file
| Mencetak versi SDK minimum. |
manifest target-sdk apk-file
|
Mencetak versi SDK target. |
manifest permissions apk-file
|
Mencetak daftar izin. |
manifest debuggable apk-file
|
Mencetak apakah aplikasi dapat di-debug. |
Mengakses informasi file DEX | Deskripsi |
dex list apk-file
|
Mencetak daftar file DEX dalam APK. |
dex references [--files path] [--files path2]
apk-file
|
Mencetak jumlah referensi metode dalam file DEX yang ditentukan.
Defaultnya adalah semua file DEX. Tambahkan opsi --files untuk
menunjukkan file tertentu yang ingin Anda sertakan.
Contoh output: classes.dex 59598 classes2.dex 8042 |
dex packages [option1 option2 ...] apk-file
|
Mencetak hierarki class dari DEX. Dalam output, P ,
C , M , dan F secara berurutan menunjukkan paket,
class, metode, dan kolom. Serta x ,
k , r , dan d menunjukkan node yang dihapus, disimpan,
direferensikan, serta ditentukan.
Tambahkan opsi berikut untuk mempersempit output:
Contoh output (jenis/status/metode yang ditentukan/metode yang direferensikan /ukuran/nama byte): P d 1 1 85 g P d 1 1 85 g.a C d 1 1 85 g.a.a M d 1 1 45 g.a.a java.lang.Object get() C r 0 1 40 byte[] M r 0 1 40 byte[] java.lang.Object clone() |
dex code --class class [--method method]
|
Mencetak bytecode untuk class atau metode dalam format smali. Nama class
harus ada. Mencetak nama class yang sepenuhnya memenuhi syarat untuk mendekompilasi. Tambahkan opsi
--method untuk menetapkan metode yang akan didekompilasi.
Format
untuk dekompilasi metode adalah |
Melihat resource yang tersimpan di res/ dan resources.arsc | Deskripsi |
resources packages
|
Mencetak daftar paket yang ditentukan dalam tabel resource. |
resources configs --type type [--package package] apk-file
|
Mencetak daftar konfigurasi untuk type yang ditetapkan.
type merupakan jenis resource seperti string .
Sertakan opsi --package
jika Anda ingin menetapkan nama paket tabel resource; jika tidak, paket
pertama yang ditetapkan akan digunakan.
|
resources value --config config --name name
--type type [--package package] apk-file
|
Mencetak nilai resource yang ditetapkan oleh config ,
name , dan type . Opsi
type menunjukkan jenis resource, seperti
string .
Sertakan opsi |
resources names --config config --type type
[--package package] apk-file
|
Mencetak daftar nama resource untuk sebuah konfigurasi dan jenis. Opsi
type menunjukkan jenis resource, seperti
string .
Sertakan opsi --package
jika Anda ingin menetapkan nama paket tabel resource; jika tidak, paket
pertama yang ditetapkan akan digunakan.
|
resources xml --file path apk-file
|
Mencetak format file XML biner yang dapat dibaca manusia.
Sertakan opsi
file untuk menetapkan jalur ke file tersebut.
|