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文件( 包括資源)。