Wersja wiersza poleceń Analizatora plików APK zapewnia natychmiastowy wgląd pakietu APK po zakończeniu procesu kompilacji. Pozwala porównać różnice między dwoma pakietami APK. Użycie Analizatora plików APK zmniejsza na debugowanie problemów z plikami i zasobami DEX w aplikacji zmniejsza rozmiar pliku APK.
apkanalyzer
znajduje się w
Pakiet narzędzi wiersza poleceń dla pakietu Android SDK w
android_sdk/cmdline-tools/version/bin/apkanalyzer
Możesz też skorzystać z narzędzia Analizator plików APK
Android Studio, jak opisano w
Przeanalizuj kompilację za pomocą Analizatora plików APK.
Składnia
Składnia instrukcji apkanalyzer
:
apkanalyzer [global-options] subject verb [options] apk-file [apk-file2]
Element subject
to zapytanie, którego ma dotyczyć zapytanie. Może on być całym plikiem APK.
lub jego część. Tematem może być:
apk
: analizuj atrybuty pliku APK, takie jak identyfikator aplikacji, kod wersji i nazwę wersji.files
: analizowanie plików w pliku APK.manifest
: przeanalizuj zawartość pliku manifestu w pliku APK.dex
: przeanalizuj pliki DEX w pliku APK.resources
: wyświetlanie zasobów tekstowych, graficznych i ciągowych.
verb
to wszystko, co chcesz wiedzieć na dany temat. Przedmioty,
czasowniki oraz ich opcje zostały opisane w sekcji dotyczącej polecenia poniżej.
Każde polecenie wymaga wskazania pliku APK. Tylko
Polecenie apk compare
wymaga wskazania drugiego pliku APK.
Każdą opcję można skrócić, o ile jest ona jednoznaczna. Przykład:
opcję globalną --human-readable
można skrócić do
-h
Poniższy przykład analizuje apk
(temat)
aby uzyskać file-size
(czasownik), a następnie wydrukuje rozmiar pliku w
format zrozumiały dla człowieka (opcja -h
):
apkanalyzer -h apk file-size myapk.apk
Polecenia
Te opisy poleceń są uporządkowane według tematu i zawierają listę dostępne kombinacje czasowników i opcji dla każdego tematu:
|
Opis |
---|---|
apk summary apk-file
|
Wyświetla identyfikator aplikacji, kod i nazwę wersji.
Przykładowe dane wyjściowe: com.myapp 5 1.1-beta |
apk file-size apk-file
|
Wyświetla całkowity rozmiar pliku APK. |
apk download-size apk-file
|
Wyświetla szacowany rozmiar pobieranego pliku APK. |
apk features [--not-required] apk-file
|
Drukuje funkcje używane przez plik APK, które aktywują
Filtrowanie Sklepu Play
. Dodaj opcję --not-required
, aby uwzględnić w danych wyjściowych funkcje oznaczone jako niewymagane.
Przykładowe dane wyjściowe: android.hardware.type.watch android.hardware.microphone implied: requested android.permission.RECORD_AUDIO permission |
apk compare [options] apk-file
apk-file2
|
Porównuje rozmiary: apk-file i
apk-file2
Możesz uwzględnić te opcje:
Przykładowe dane wyjściowe (stary rozmiar / nowy rozmiar / różnica w rozmiarze / ścieżka): 39086736 48855615 9768879 / 10678448 11039232 360784 /classes.dex 18968956 18968956 0 /lib/ 110576 110100 -476 /AndroidManifest.xml ... |
Wyświetlanie systemu plików APK | Opis |
files list apk-file
|
Zawiera listę wszystkich plików w pakiecie APK.
Przykładowe dane wyjściowe: / /classes2.dex /classes.dex /assets/ /assets/asset.data /AndroidManifest.xml /resources.arsc /res/ ... |
files cat --file path apk-file
|
Wydrukuje zawartość pliku. Musisz podać ścieżkę w pliku APK za pomocą parametru
opcję --file path , na przykład --file
/AndroidManifest.xml
|
Wyświetl informacje w pliku manifestu | Opis |
manifest print apk-file
|
Powoduje wydrukowanie pliku manifestu APK w formacie XML. |
manifest application-id apk-file
|
Drukuje wartość identyfikatora aplikacji. |
manifest version-name apk-file
|
Wyświetla wartość nazwy wersji. |
manifest version-code apk-file
|
Drukuje wartość kodu wersji. |
manifest min-sdk apk-file
| Drukuje minimalną wersję pakietu SDK. |
manifest target-sdk apk-file
|
Drukuje docelową wersję pakietu SDK. |
manifest permissions apk-file
|
Drukuje listę uprawnień. |
manifest debuggable apk-file
|
Informacja o tym, czy aplikację można debugować. |
Dostęp do informacji o pliku DEX | Opis |
dex list apk-file
|
Wyświetla listę plików DEX w pakiecie APK. |
dex references [--files path] [--files path2]
apk-file
|
Wypisuje liczbę odwołań do metod w określonych plikach DEX.
Domyślnie wszystkie pliki DEX. Dodaj opcję --files do:
wskazać konkretne pliki, które chcesz uwzględnić.
Przykładowe dane wyjściowe: classes.dex 59598 classes2.dex 8042 |
dex packages [option1 option2 ...] apk-file
|
Drukuje drzewo klas z pliku DEX. W danych wyjściowych P ,
C , M i F wskazują pakiety,
klas, metod i pól. Oraz x ,
k , r i d wskazują na usunięte, zachowane,
węzłów dozwolonych i zdefiniowanych.
Dodaj następujące opcje, aby zawęzić wyniki:
Przykładowe dane wyjściowe (typ/stan/zdefiniowane metody/odwołania /rozmiar/nazwa bajtów): 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]
|
Drukuje kod bajtowy klasy lub metody w formacie smali. nazwę zajęć,
jest wymagany i wyświetla w pełni kwalifikowaną nazwę klasy do zdekompilowania. Dodaj parametr
--method określającą metodę dekompilacji.
Format
dla metody dekompilacji to |
Wyświetl zasoby przechowywane w plikach res/ i resource.arsc | Opis |
resources packages
|
Wyświetla listę pakietów zdefiniowanych w tabeli zasobów. |
resources configs --type type [--package package] apk-file
|
Wyświetla listę konfiguracji określonego typu type .
type jest typem zasobu, na przykład string .
Uwzględnij: --package
Jeśli chcesz określić nazwę pakietu tabeli zasobów. W przeciwnym razie
zostanie użyty pierwszy zdefiniowany pakiet.
|
resources value --config config --name name
--type type [--package package] apk-file
|
Wyświetla wartość zasobu określonego przez funkcję config .
name i type .
Opcja type to typ zasobu, taki jak
string
Uwzględnij: |
resources names --config config --type type
[--package package] apk-file
|
Drukuje listę nazw zasobów konfiguracji i typu.
Opcja type to typ zasobu, taki jak
string
Uwzględnij: --package
Jeśli chcesz określić nazwę pakietu tabeli zasobów. W przeciwnym razie
zostanie użyty pierwszy zdefiniowany pakiet.
|
resources xml --file path apk-file
|
Drukuje czytelną dla człowieka formę binarnego pliku XML.
Dołącz
file , aby podać ścieżkę do pliku.
|