APK Analiz Aracı'nın komut satırı sürümü, derleme işlemi tamamlandıktan sonra APK'nızın yapısı hakkında anında bilgi sağlar ve iki APK arasındaki farkları karşılaştırabilmenizi sağlar. APK Analiz Aracı'nı kullanmak, uygulamanızdaki DEX dosyaları ve kaynaklarıyla ilgili hataları ayıklamak için harcadığınız süreyi kısaltır ve APK'nızın boyutunu küçültür.
apkanalyzer
, android_sdk/cmdline-tools/version/bin/apkanalyzer
adresindeki Android SDK Komut Satırı Araçları paketine dahildir.
Alternatif olarak, Derlemenizi APK Analiz Aracı ile analiz etme bölümünde açıklandığı gibi, Android Studio'dan APK Analiz Aracı'na da erişebilirsiniz.
Sözdizimi
apkanalyzer
için söz dizimi şöyledir:
apkanalyzer [global-options] subject verb [options] apk-file [apk-file2]
subject
, sorgulamak istediğiniz öğedir ve APK'nın tamamı veya APK'nın bir parçası olabilir. Konu, aşağıdakilerden herhangi biri olabilir:
apk
: Uygulama kimliği, sürüm kodu ve sürüm adı gibi APK dosyası özelliklerini analiz edin.files
: APK dosyasındaki dosyaları analiz edin.manifest
: APK dosyasındaki manifestin içeriğini analiz edin.dex
: APK dosyasındaki DEX dosyalarını analiz edin.resources
: Metin, resim ve dize kaynaklarını görüntüleme.
verb
, konu hakkında bilmek istediğiniz şeydir. Özneler, fiiller ve seçenekleri, aşağıdaki komutlar bölümünde açıklanmıştır.
Her komut, bir APK dosyası belirtmenizi gerektirir. Yalnızca apk compare
komutu için ikinci bir APK belirtmeniz gerekir.
Seçenek açık olduğu sürece her seçeneği kısaltabilirsiniz. Örneğin, --human-readable
genel seçeneği -h
şeklinde kısaltılabilir.
Aşağıdaki örnekte, file-size
(fiil) elde etmek için apk
(konu) analiz edilir ve ardından dosya boyutu kullanıcılar tarafından okunabilir bir biçimde (-h
seçeneği) yazdırılır:
apkanalyzer -h apk file-size myapk.apk
Komutlar
Aşağıdaki komut açıklamaları konuya göre düzenlenmiş ve her konu için mevcut fiil ve seçenek kombinasyonları sıralanmıştır:
|
Açıklama |
---|---|
apk summary apk-file
|
Uygulama kimliğini, sürüm kodunu ve sürüm adını yazdırır.
Örnek çıkış: com.myapp 5 1.1-beta |
apk file-size apk-file
|
APK'nın toplam dosya boyutunu yazdırır. |
apk download-size apk-file
|
APK'nın indirme boyutuna ilişkin bir tahmin yazdırır. |
apk features [--not-required] apk-file
|
APK tarafından kullanılan ve Play Store filtrelemesini
tetikleyen özellikleri yazdırır. Gerekli değil olarak işaretlenen özellikleri çıkışa dahil etmek için --not-required seçeneğini ekleyin.
Örnek çıkış: android.hardware.type.watch android.hardware.microphone implied: requested android.permission.RECORD_AUDIO permission |
apk compare [options] apk-file
apk-file2
|
apk-file ve apk-file2 boyutlarını karşılaştırır.
Aşağıdaki seçenekleri ekleyebilirsiniz:
Örnek çıkış (eski boyut / yeni boyut / boyut farkı / yol): 39086736 48855615 9768879 / 10678448 11039232 360784 /classes.dex 18968956 18968956 0 /lib/ 110576 110100 -476 /AndroidManifest.xml ... |
APK dosya sistemini görüntüleme | Açıklama |
files list apk-file
|
APK'daki tüm dosyaları listeler.
Örnek çıkış: / /classes2.dex /classes.dex /assets/ /assets/asset.data /AndroidManifest.xml /resources.arsc /res/ ... |
files cat --file path apk-file
|
Dosya içeriğini yazdırır. --file path seçeneğini kullanarak APK içinde bir yol belirtmeniz gerekir (ör. --file
/AndroidManifest.xml )
|
Manifest'teki bilgileri görüntüleyin | Açıklama |
manifest print apk-file
|
APK manifest dosyasını XML biçiminde yazdırır. |
manifest application-id apk-file
|
Uygulama kimliği değerini yazdırır. |
manifest version-name apk-file
|
Sürüm adı değerini yazdırır. |
manifest version-code apk-file
|
Sürüm kodu değerini yazdırır. |
manifest min-sdk apk-file
| Minimum SDK sürümünü yazdırır. |
manifest target-sdk apk-file
|
Hedef SDK sürümünü yazdırır. |
manifest permissions apk-file
|
İzin listesini yazdırır. |
manifest debuggable apk-file
|
Uygulamanın hata ayıklamaya uygun olup olmadığını yazdırır. |
DEX dosyası bilgilerine erişim | Açıklama |
dex list apk-file
|
APK'daki DEX dosyalarının listesini yazdırır. |
dex references [--files path] [--files path2]
apk-file
|
Belirtilen DEX dosyalarındaki yöntem başvurularının sayısını yazdırır.
Varsayılan tüm DEX dosyalarıdır. Dahil etmek istediğiniz belirli dosyaları belirtmek için --files seçeneğini ekleyin.
Örnek çıkış: classes.dex 59598 classes2.dex 8042 |
dex packages [option1 option2 ...] apk-file
|
Sınıf ağacını DEX'ten yazdırır. Çıkışta P , C , M ve F sırasıyla paketleri, sınıfları, yöntemleri ve alanları gösterir. x , k , r ve d ise sırasıyla kaldırıldı, tutuldu, referans ve tanımlanan düğümleri belirtir.
Sonucu hassaslaştırmak için aşağıdaki seçenekleri ekleyin:
Örnek çıkış (tür/durum/tanımlanmış yöntemler/başvurulan yöntemler/bayt boyutu/ad): 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]
|
Bir sınıfın veya yöntemin bayt kodunu smali biçiminde yazdırır. Sınıf adı gereklidir ve derlemeyi çözmek için tam nitelikli sınıf adını yazdırır. Derlemenin ayrıştırılacağı yöntemi belirtmek için --method seçeneğini ekleyin.
Hata ayıklama yönteminin biçimi |
res/ ve Resources.arsc'de depolanan kaynakları görüntüleyin | Açıklama |
resources packages
|
Kaynaklar tablosunda tanımlanan paketlerin bir listesini yazdırır. |
resources configs --type type [--package package] apk-file
|
Belirtilen type için yapılandırma listesini yazdırır.
type , string gibi bir kaynak türüdür.
Kaynak tablosu paket adını belirtmek istiyorsanız --package seçeneğini ekleyin. Aksi takdirde ilk tanımlanan paket kullanılır.
|
resources value --config config --name name
--type type [--package package] apk-file
|
config , name ve type tarafından belirtilen kaynağın değerini yazdırır. type seçeneği, string gibi kaynak türüdür.
Kaynak tablosu paket adını belirtmek istiyorsanız |
resources names --config config --type type
[--package package] apk-file
|
Bir yapılandırma ve tür için kaynak adlarının listesini yazdırır. type seçeneği, string gibi kaynak türüdür.
Kaynak tablosu paket adını belirtmek istiyorsanız --package seçeneğini ekleyin. Aksi takdirde ilk tanımlanan paket kullanılır.
|
resources xml --file path apk-file
|
İkili XML dosyasının kullanıcılar tarafından okunabilen biçimini yazdırır.
Dosyanın yolunu belirtmek için file seçeneğini ekleyin.
|