apk安装包信息识别

package com.hysj.utils;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import net.dongliu.apk.parser.ApkFile;
import net.dongliu.apk.parser.bean.ApkMeta;
import net.dongliu.apk.parser.bean.Permission;
import net.dongliu.apk.parser.bean.UseFeature;

public class ApkUtil {
    
    /**
     * 获取APK信息
     * @param apkUrl apk路径
     * @return 信息集合(map)
     */
    public static Map<String,Object> readApk(String apkUrl){
        //创建集合,存放APK信息
        Map<String,Object> resMap=new HashMap<String,Object>();
        //获取APK文件
        try (ApkFile apkFile = new ApkFile(new File(apkUrl))) {
            ApkMeta apkMeta = apkFile.getApkMeta();    //获取APK文件中的元数据
            /*************************集合添加信息内容*************************/
            resMap.put("apkName", apkMeta.getName());                //apk名称
            resMap.put("apkPackageName", apkMeta.getPackageName());    //apk包名
            resMap.put("versionCode", apkMeta.getVersionCode());    //版本号
            resMap.put("versionName", apkMeta.getVersionName());    //版本名称
        } catch (IOException e) {
            e.printStackTrace();
        }
        return resMap;
    }

    /**
     * 测试用的main方法
     * @param arg
     */
    public static void main(String[] arg){
        String filePath = "E:\\tencent.apk";
     
        try (ApkFile apkFile = new ApkFile(new File(filePath))) {    //获取APK文件
            ApkMeta apkMeta = apkFile.getApkMeta();            //获取APK文件中的元数据
            System.out.println(apkMeta.getName());            //apk名称    
            System.out.println(apkMeta.getPackageName());    //apk包名
            System.out.println(apkMeta.getVersionCode());    //版本号
            System.out.println(apkMeta.getVersionName());    //版本名称
            //需要的硬件或软件资源/功能
            for (UseFeature feature : apkMeta.getUsesFeatures()) {
                System.out.println(feature.getName());
            }
            for (Permission permission : apkMeta.getPermissions()) {
                System.out.println(permission.getName());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }                       
    }
}
 

运行结果图

所需架包下载路径:

链接:https://pan.baidu.com/s/1IlKlnaZSIHN5c-nkVNpTjg 
提取码:6813 
 

猜你喜欢

转载自blog.csdn.net/qq_36161345/article/details/92573684