经常需要程序去读取APK的信息,网上很多介绍类似于Zip解压缩之类的方法去获取Androidmanifest.xml里面的信息,但是这种方法并不可取,因为里面取到的有可能是“引用ID”。我们可以用ApkUtil工具类。
1.下载ApkUtil和aapt工具
ApkUtil下载地址列表
https://code.google.com/p/cfuture09-apkutil/downloads/list
部分包中已经包含Windows下可运行的aapt工具
2.程序中使用
try {
String demo = "E:/androidApk/2012/05/百宝工具箱/1.0/signed/Toolbox-360.apk";
if (args.length > 0) {
demo = args[0];
}
ApkInfo apkInfo = new ApkUtil().getApkInfo(demo);
System.out.println(apkInfo);
} catch (Exception e) {
e.printStackTrace();
}
3.Linux环境下使用aapt
如果开发环境或者服务器是Linux,使用aapt的程序部署时有几点要注意的
- aapt依赖的工具zlib需要以32位编译安装,较低版本的zlib可能也需要升级到更高版本的
- 默认的aapt路径是lib/aapt,最好自己通过ApkUtil提供的方法修改为你的aapt路径(个人试过如果不主动设置可能这次配好了,服务器一旦重启程序就又找不到aapt了)