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-fileiapk-file2Moż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ę --filesdo:
      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,MiFwskazują pakiety,
      klas, metod i pól. Orazx,k,ridwskazują 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 --methodokreś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.typejest typem zasobu, na przykładstring.
    Uwzględnij:--packageJeś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.nameitype. 
  Opcjatypeto typ zasobu, taki jakstringUwzględnij:  | 
| resources names --config config --type type
     [--package package] apk-file | Drukuje listę nazw zasobów konfiguracji i typu. 
    Opcja typeto typ zasobu, taki jakstringUwzględnij:--packageJeś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. | 
