今天的需求是用户在管理后台上传APK安装程序的时候要获取APK的安装包名用来升级使用。

使用工具apktool-1.0.0

代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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"));
	}
}

获取效果: