[Android] Android 學習筆記:檢視 APK 中的 AndroidManifest.xml
偶爾會想要看看別人的 APK 中有哪些 intent 可以使用,
這時候直接檢視 APK 中的 AndroidManifest.xml 就可以很快速的知道~
1. 使用 aapt 指令
網路上有人提供了方法,只要用 aapt 這個指令就可以:
aapt dump xmltree <apk_filename> AndroidManifest.xml
下面是一個執行的範例:
$ aapt dump xmltree test.apk AndroidManifest.xml N: android=http://schemas.android.com/apk/res/android E: manifest (line=2) A: android:versionCode(0x0101021b)=(type 0x10)0x16 A: android:versionName(0x0101021c)="1.2.5" (Raw: "1.2.5") A: android:compileSdkVersion(0x01010572)=(type 0x10)0x1e A: android:compileSdkVersionCodename(0x01010573)="11" (Raw: "11") ...... E: activity (line=91) A: android:screenOrientation(0x0101001e)=(type 0x10)0x1 E: intent-filter (line=96) E: action (line=97) A: android:name(0x01010003)="android.intent.action.MAIN" (Raw: "android.intent.action.MAIN") E: category (line=99) A: android:name(0x01010003)="android.intent.category.LAUNCHER" (Raw: "android.intent.category.LAUNCHER") E: intent-filter (line=101) E: action (line=102) A: android:name(0x01010003)="android.intent.action.VIEW" (Raw: "android.intent.action.VIEW") E: category (line=104) A: android:name(0x01010003)="android.intent.category.DEFAULT" (Raw: "android.intent.category.DEFAULT") E: category (line=105) A: android:name(0x01010003)="android.intent.category.BROWSABLE" (Raw: "android.intent.category.BROWSABLE") ......
2. 使用 APK Analyzer
Android SDK 現在內建了 apkanalyzer 這個工具,
可以用來檢視 AndroidManifest.xml:
apkanalyzer manifest print <apk_filename>
這是我在 Mac 上執行 apkanalyzer 的一個範例:
$ ~/Library/Android/sdk/tools/bin/apkanalyzer manifest print test.apk <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="22" android:versionName="1.2.5" android:compileSdkVersion="30" platformBuildVersionName="11"> <application> <activity android:screenOrientation="1"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="hylib.tyml" /> </intent-filter> </activity> ......
用 aapt 指令執行的話,可以看到整理過的資料,
但並不是原始的 AndroidManifest.xml 內容。
如果你習慣看 XML 的話,可以用 apkanalyzer 那個方法囉~
參考資料:
Analyze your build with APK Analyzer | Android Developers
android – How to view AndroidManifest.xml from APK file? – Stack Overflow
(本頁面已被瀏覽過 838 次)