今天的需求是用户在管理后台上传APK安装程序的时候要获取APK的安装包名用来升级使用。
使用工具apktool-1.0.0
代码如下
package com.temobi.util;
import java.io.File;
import java.util.Set;
import brut.androlib.AndrolibException;
import brut.androlib.ApkDecoder;
import brut.androlib.res.data.ResPackage;
public class APKUtil {
public static String getAPKPageName(String apkpath) {
ApkDecoder d = new ApkDecoder();
d.setApkFile(new File(apkpath));
try {
Set p = d.getResTable().listMainPackages();
for (ResPackage r : p) {// 这里set最大只会等于1
return r.getName();
}
} catch (AndrolibException e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
System.err.println("The APK packname is : "+APKUtil.getAPKPageName("d:/UCBrowser_V8.7.0.187_Android_pf145_(Build12101613).apk"));
}
}