Java读取Apk的包名,版本号,权限列表,支持的最小系统版本等信息

Java读取Apk的包名,版本号,权限列表,支持的最小系统版本等信息。无论是做后台开发,或者是android开发。有时候需要获取apk文件的版本号,包名,权限,以及支持最小系统版本等信息。比如在做apk更新的时候,如果不是发布应用商店,自己做更新的时候。我们可能就需要得到服务器版本的apk版本号等基本信息。
那么怎么去获取apk文件的这些基本信息呢。这里介绍一个工具GetAPKInfo.jar的文件,使用这个jar包可以帮助我们获取apk的基本信息。
这里以QQ的安装包为例子。

  • 查看包名,版本号,签名等信息: java -jar GetApkInfo.jar qq.apk

    Java读取Apk的包名,版本号,权限列表,支持的最小系统版本等信息_第1张图片

    查看包名,版本号,签名、支持最小系统版本(minSdkVersion),权限列表等信息,可以使用GetMorePackageInfo.jar文件.
    可以输入:java -jar GetMorePackageInfo.jar qq.apk
    Java读取Apk的包名,版本号,权限列表,支持的最小系统版本等信息_第2张图片

    jar包下载: GetApkInfo.jar
    jar包下载: GetMoreApkInfo.jar(建议使用这个)

    具体使用,以QQ为例子:添加jar包到工程中后

package com.xice.apk;

import java.io.File;

import org.json.JSONObject;

import com.android.apksigner.ApkSignerTool;
import com.bihe0832.packageinfo.bean.ApkInfo;
import com.bihe0832.packageinfo.getSignature.GetSignature;
import com.bihe0832.packageinfo.utils.ApkUtil;

public class TestApk {
	
	public static void main(String[] args) {
		String path = "src\\com\\xice\\apk\\base.apk";
		ApkInfo apkinfo = new ApkInfo();
		//获取md5值和签名信息
		JSONObject jsonobject = new JSONObject(ApkSignerTool.verify(path));
		apkinfo.isV1SignatureOK = jsonobject.optBoolean("isV1OK");
		apkinfo.isV2Signature = jsonobject.optBoolean("isV2");
		apkinfo.isV2SignatureOK = jsonobject.optBoolean("isV2OK");
		apkinfo.signature = jsonobject.optString("keystoreMd5");
		apkinfo.v2CheckErrorInfo = jsonobject.optString("msg");
		//获取apk其他基本信息
		ApkUtil.getApkInfo(path, apkinfo);
		System.out.println(apkinfo.toString());
	}

}

结果显示截图:
Java读取Apk的包名,版本号,权限列表,支持的最小系统版本等信息_第3张图片

可以拿到包名,版本名称,版本号,签名文件md5值,sdk最小版本,应用支持的最低系统版本,v1和v2的签名情况,以及当前应用需要的权限列表。
以上就是通过java读取apk的版本号,包名,v1和v2签名信息,支持的最小系统版本等信息。有问题可以在下方留言。

你可能感兴趣的:(java,android)