APK解析库
用于读取/解析 packageName。versionName。versionCode信息的简单类,以及已经编译的androidsdk文件中的更多内容。
通过解压 AndroidManifest.xml 文件并解码编译好的XML二进制文件来收集这里信息,就可以实现。
我一直在用它来实现各种android工件的自动版本管理。 为了希望其他人会发现它是有用的,我在 Apache源许可证 2.0下分享了这个代码库。
用法
已经将库的快照部署到以下 dependency 下的oss.sonatype.org。
net.erdfelt.android
apk-parser
1.1
一旦你拥有了依赖项( 不需要其他传递依赖项),你就可以使用下面的代码来获取所需的信息。package net.erdfelt.android.example;
import java.io.File;
import net.erdfelt.android.apk.AndroidApk;
public class ApkDump {
public static void main(String[] args) {
if(args.length <1) {
System.err.println("Usage: ApkDump [apkfile]");
System.exit(-1);
}
File apkfile = new File(args[0]);
if(!apkfile.exists()) {
System.err.println("Error: File Not Found:" + apkfile);
System.exit(-1);
}
try {
AndroidApk apk = new AndroidApk(apkfile);
System.out.println("APK:" + apkfile);
System.out.println(". packageName =" + apk.getPackageName());
System.out.println(". appVersion =" + apk.getAppVersion());
System.out.println(". appVersionCode =" + apk.getAppVersionCode());
} catch(Throwable t) {
t.printStackTrace(System.err);
}
}
}
也就是说,非常简单的部分是编译二进制xml文件,这应该容易扩展到in文件( 包括资源)。