Phiên bản dòng lệnh của Công cụ phân tích APK cung cấp thông tin chi tiết ngay lập tức về thành phần của APK của bạn sau khi quy trình xây dựng hoàn tất và cho phép bạn so sánh sự khác biệt giữa hai APK. Bằng cách sử dụng Công cụ phân tích APK, bạn có thể giảm thời gian khắc phục các vấn đề với tệp DEX và tài nguyên trong ứng dụng, đồng thời giảm kích thước APK của bạn.
apkanalyzer
có trong gói Công cụ SDK Android và nằm tại
android_sdk/tools/bin/apkanalyzer
.
Ngoài ra, bạn có thể truy cập Công cụ phân tích APK trong Android Studio như được mô tả trong bài viết Phân tích bản dựng của bạn với Công cụ phân tích APK.
Cú pháp
apkanalyzer [global-options] subject verb [options] apk-file [apk-file2]
subject
là nội dung bạn muốn truy vấn và có thể là toàn bộ APK hoặc một phần của APK. Chủ đề có thể là bất kỳ nội dung nào sau đây.
apk
: Phân tích các thuộc tính tệp APK, chẳng hạn như ID ứng dụng, mã phiên bản và tên phiên bản.files
: Phân tích các file bên trong tệp APK.manifest
: Phân tích nội dung của file kê khai bên trong tệp APK.dex
: Phân tích các tệp DEX bên trong tệp APK.resources
: Xem văn bản, hình ảnh và tài nguyên chuỗi.
verb
là những gì bạn muốn biết về chủ đề. Các chủ đề,
động từ, và tùy chọn của chúng được mô tả trong Lệnh.
Mỗi lệnh yêu cầu bạn chỉ định một tệp APK. Chỉ có lệnh
apk compare
yêu cầu bạn chỉ định APK thứ hai.
Bạn có thể rút ngắn mọi tùy chọn miễn là tùy chọn không rõ ràng. Ví dụ:
tùy chọn chung --human-readable
có thể được rút ngắn thành
-h
. Ví dụ sau đây phân tích apk
(chủ đề)
để lấy file-size
(Động từ), sau đó in kích thước tệp ở
định dạng có thể đọc được (tùy chọn -h
):
apkanalyzer -h apk file-size myapk.apk
Tùy chọn chung
Tùy chọn | Mô tả |
---|---|
--human-readable
|
In các kích thước ở định dạng có thể đọc được. |
Lệnh
Các mô tả lệnh sau đây được sắp xếp theo chủ đề và liệt kê các động từ và tổ hợp tùy chọn có sẵn cho mỗi chủ đề.
|
Mô tả |
---|---|
apk summary apk-file
|
In ID ứng dụng, mã phiên bản và tên phiên bản.
Kết quả điểm dữ liệu: com.myapp 5 1.1-beta |
apk file-size apk-file
|
In tổng kích thước tệp của APK. |
apk download-size apk-file
|
In ước tính kích thước tải xuống của APK. |
apk features [--not-required] apk-file
|
Các tính năng in mà APK sử dụng để kích hoạt
lọc Play Store
. Thêm tùy chọn --not-required
để bao gồm các tính năng được đánh dấu là không bắt buộc trong kết quả.
Kết quả điểm dữ liệu: android.hardware.type.watch android.hardware.microphone implied: requested android.permission.RECORD_AUDIO permission |
apk compare [options] apk-file
apk-file2
|
So sánh kích thước của apk-file và
apk-file2 .
Bạn có thể bao gồm các tùy chọn sau:
Kết quả điểm dữ liệu (kích thước cũ / kích thước mới / sự khác biệt về kích thước / đường dẫn): 39086736 48855615 9768879 / 10678448 11039232 360784 /classes.dex 18968956 18968956 0 /lib/ 110576 110100 -476 /AndroidManifest.xml ... |
Xem hệ thống tệp APK | Mô tả |
files list apk-file
|
Liệt kê tất cả các tệp trong APK.
Kết quả điểm dữ liệu: / /classes2.dex /classes.dex /assets/ /assets/asset.data /AndroidManifest.xml /resources.arsc /res/ ... |
files cat --file path apk-file
|
In nội dung tệp. Bạn phải chỉ định một đường dẫn bên trong APK bằng cách sử dụng
tùy chọn --file path , chẳng hạn như --file
/AndroidManifest.xml
|
Xem thông tin trong tệp kê khai | Mô tả |
manifest print apk-file
|
In tệp kê khai APK ở định dạng XML. |
manifest application-id apk-file
|
In giá trị ID ứng dụng. |
manifest version-name apk-file
|
In giá trị tên phiên bản. |
manifest version-code apk-file
|
In giá trị mã phiên bản. |
manifest min-sdk apk-file
| In phiên bản SDK tối thiểu. |
manifest target-sdk apk-file
|
In phiên bản SDK mục tiêu. |
manifest permissions apk-file
|
In danh sách quyền. |
manifest debuggable apk-file
|
In xem ứng dụng có thể gỡ lỗi hay không. |
Truy cập thông tin tệp DEX | Mô tả |
dex list apk-file
|
In danh sách các tệp DEX trong APK. |
dex references [--files path] [--files path2]
apk-file
|
In số tham chiếu phương thức trong các tệp DEX đã chỉ định.
Tùy chọn mặc định là tất cả tệp DEX. Thêm tùy chọn --files để
cho biết các tệp cụ thể mà bạn muốn đưa vào.
Kết quả điểm dữ liệu: classes.dex 59598 classes2.dex 8042 |
dex packages [option1 option2 ...] apk-file
|
In phân loại từ DEX. Dữ liệu đầu ra, P ,
C , M và F cho biết các gói,
loại, phương thức và trường tương ứng. Các mã x ,
k , r và d cho biết các nút đã bị xóa, được giữ lại,
được tham chiếu và được xác định tương ứng.
Hãy thêm các tùy chọn sau để tinh chỉnh kết quả:
Kết quả điểm dữ liệu (loại / trạng thái / phương thức đã xác định / phương thức tham chiếu / kích thước byte / tên): 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]
|
In mã byte của một lớp hoặc phương thức ở định dạng smali. Tên loại
là bắt buộc và in tên loại đủ điều kiện để biên dịch ngược. Thêm
tùy chọn --method để chỉ định phương thức biên dịch ngược. Định dạng
của phương thức biên dịch ngược là name(params)returnType , ví dụ:
someMethod(Ljava/lang/String;I)V .
|
Xem các tài nguyên được lưu trữ ở res/ và resources.arsc | Mô tả |
resources packages
|
In danh sách các gói được xác định trong bảng tài nguyên. |
resources configs --type type [--package package] apk-file
|
In danh sách các cấu hình cho type chỉ định.
type là một loại tài nguyên chẳng hạn như string .
Đưa vào tùy chọn --package
nếu bạn muốn chỉ định tên gói của bảng tài nguyên, nếu không
gói xác định đầu tiên sẽ được sử dụng.
|
resources value --config config --name name
--type type [--package package] apk-file
|
In giá trị của tài nguyên chỉ định bởi config ,
name và type . Tùy chọn
type là loại tài nguyên, chẳng hạn như
string . Đưa vào tùy chọn --package
nếu bạn muốn chỉ định tên gói của bảng tài nguyên, nếu không
gói xác định đầu tiên sẽ được sử dụng.
|
resources names --config config --type type
[--package package] apk-file
|
In danh sách tên tài nguyên cho một cấu hình và loại. Tùy chọn
type là loại tài nguyên, chẳng hạn như
string . Đưa vào tùy chọn --package
nếu bạn muốn chỉ định tên gói của bảng tài nguyên, nếu không
gói xác định đầu tiên sẽ được sử dụng.
|
resources xml --file path apk-file
|
In biểu mẫu tệp XML nhị phân có thể đọc được. Đưa vào
tùy chọn file để chỉ định đường dẫn đến tệp.
|