預設情況下,AXMLPrinter隻對Android的二進制格式的Androidmanifest.xml進行解析。
由于項目希望直接從APK檔案中解析出Androidmanifest.xml,筆者在AXMLPrinter.jar的基礎上加入了對APK壓縮檔案的解析。
1
2
3
4
5
6
7
static final String DEFAULT_XML = "AndroidManifest.xml";
File apkFile = new File(apkPath);
file = new ZipFile(apkFile, ZipFile.OPEN_READ);
ZipEntry entry = file.getEntry(DEFAULT_XML);
AXmlResourceParser parser=new AXmlResourceParser();
parser.open(file.getInputStream(entry));
1、JAVA項目直接調用test.getManifestXMLFromAPK(String)傳回XML字元串。
2、使用指令行
java -jar APKParser.jar [apk file]
Ps:代碼不是很規範,若有需要,請自行下載下傳源碼修改。
修改後的源碼和JAR檔案:
<a href="http://code.google.com/p/xml-apk-parser/" target="_blank">http://code.google.com/p/xml-apk-parser/</a>
AXMLPrinter2下載下傳位址:
<a href="http://code.google.com/p/android4me/downloads/list" target="_blank">http://code.google.com/p/android4me/downloads/list</a>