ApkUtil+aapt读取APK软件包信息

经常需要程序去读取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了)