android的apk文件的xml提取

来源:互联网 发布:游戏编程入门自学 编辑:程序博客网 时间:2024/05/16 04:03
 

前面有说明android获取程序信息,这些信息是基本信息,我想提取android:minSdkVersion的值,可还没有发现用程序可以提取出来。

有一个比较笨的方式是解压apk文件,分析apk文件里的xml。

首先apk文件其实是zip文件,改名即可按zip文件解压,而xml文件是二进制的,倒是需要另外的软件解决。
如果需要提取,不需要再重新打包,可以改名直接解压,否则可以试试apktool来解压和打包,不重复说明。

浏览二进制的xml文件,可以用 AXMLPrinter2 解决,在 android4me 的工程里面可以下载到。
AXMLPrinter2.jar  Prints XML document from binary XML file (with correct namespace handing & attribute formatting). 

下面演示一下解析过程:


root@aslibra:/tmp/apk# ls
c.apk
root@aslibra:/tmp/apk# mv c.apk c.zip
root@aslibra:/tmp/apk# unzip c
Archive:  c.zip
...
  inflating: res/layout/main.xml    
...
  inflating: AndroidManifest.xml    
extracting: resources.arsc         
...
root@aslibra:/tmp/apk# java -jar /path/to/AXMLPrinter2.jar AndroidManifest.xml |grep minSdkVersion
                android:minSdkVersion="2"


TIPS: minSdkVersion 在安装时有用,如果版本比这个低,就根本安装不上此程序的。