APK Analiz Aracı'nın komut satırı sürümü, oluşturma işlemi tamamlandıktan sonra APK'nızın bileşimini oluşturur ve İki APK arasındaki farkları karşılaştırır. APK Analiz Aracı'nı kullanmak uygulamanızda DEX dosyaları ve kaynaklarıyla ilgili hata ayıklama sorunları için harcadığınız süreyi ve APK'nızın boyutunu küçültür.
apkanalyzer
, şuna dahildir:
Android SDK Komut Satırı Araçları paketi
android_sdk/cmdline-tools/version/bin/apkanalyzer
.
Alternatif olarak, APK Analiz Aracı'na şuradan da erişebilirsiniz:
Android Studio:
Derlemenizi APK Analiz Aracı ile analiz edin.
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ı olabilir.
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ı.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üleyin.
verb
, konu hakkında bilmek istediğiniz şeydir. Özneler,
fiiller ve bunların seçenekleri, komutlar hakkındaki aşağıdaki bölümde açıklanmıştır.
Her komut bir APK dosyası belirtmenizi gerektirir. Yalnızca
apk compare
komutu ikinci bir APK belirtmenizi gerektirir.
Seçenek açık olduğu sürece her seçeneği kısaltabilirsiniz. Örneğin,
--human-readable
genel seçeneği şu şekilde kısaltılabilir:
-h
.
Aşağıdaki örnekte apk
(konu) analiz edilmiştir
file-size
(fiil) almak için kullanılır, sonra da dosya boyutunu
insan tarafından okunabilir biçim (-h
seçeneği):
apkanalyzer -h apk file-size myapk.apk
Komutlar
Aşağıdaki komut açıklamaları konuya göre düzenlenir ve her bir komut için uygun fiil ve seçenek kombinasyonlarını aşağıda bulabilirsiniz:
|
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
|
Tetikleyici APK'nın kullandığı yazdırma özellikleri
Play Store filtrelemesi
ziyaret edin. --not-required seçeneğini ekleyin
çıktıda gerekli değil olarak işaretlenen özellikleri dahil edin.
Ö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 boyutlarını karşılaştırır
apk-file2 .
Aşağıdaki seçenekleri ekleyebilirsiniz:
Örnek çıktı (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çeriklerini yazdırır. APK içinde bir yol belirtmek için
--file path seçeneği (ör. --file
/AndroidManifest.xml )
|
Manifest dosyasındaki bilgileri görüntüle | Açıklama |
manifest print apk-file
|
APK manifestini 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ıklaması mümkün 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 referansı sayısını yazdırır.
Tüm DEX dosyaları varsayılan olarak kullanılır. --files seçeneğini şunun için ekleyin:
dahil etmek istediğiniz belirli dosyaları belirtin.
Örnek çıkış: classes.dex 59598 classes2.dex 8042 |
dex packages [option1 option2 ...] apk-file
|
DEX'ten sınıf ağacını yazdırır. Çıkışta, P
C , M ve F paketleri gösterir,
sınıfları, yöntemleri ve alanları gösterir. x ,
k , r ve d kaldırıldı, saklandı,
ve tanımlı düğümler arasında geçiş yapın.
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ı
gerekir ve derlemesi için tam nitelikli sınıf adını yazdırır. URL'yi
--method seçeneği.
Biçim
|
res/ ve resources.arsc içinde depolanan kaynakları görüntüleme | Açıklama |
resources packages
|
Kaynaklar tablosunda tanımlanan paketlerin listesini yazdırır. |
resources configs --type type [--package package] apk-file
|
Belirtilen type için yapılandırmaların listesini yazdırır.
type , string gibi bir kaynak türüdür.
--package ekleyin
kaynak tablosu paket adını belirtmek istiyorsanız
tanımlanan ilk paket kullanılacak.
|
resources value --config config --name name
--type type [--package package] apk-file
|
config tarafından belirtilen kaynağın değerini yazdırır.
name ve type . İlgili içeriği oluşturmak için kullanılan
type seçeneği kaynağın türünü ifade eder. Örneğin:
string .
|
resources names --config config --type type
[--package package] apk-file
|
Yapılandırma ve tür için kaynak adlarının listesini yazdırır. İlgili içeriği oluşturmak için kullanılan
type seçeneği kaynağın türünü ifade eder. Örneğin:
string .
--package ekleyin
kaynak tablosu paket adını belirtmek istiyorsanız
tanımlanan ilk paket kullanılacak.
|
resources xml --file path apk-file
|
İkili XML dosyasının kullanıcılar tarafından okunabilen biçimini yazdırır.
Şunu dahil et:
file seçeneğini kullanabilirsiniz.
|