主要利用两个信息类:PackageInfo、ApplicationInfo
一、获取应用PackageInfo信息
以下packageManager都用这个表示
PackageManager packageManager = context.getPackageManager();
获取方式
==获取不同信息主要是传入不同的flag值==
//第一个参数传入应用包名,
//第二个参数是一个flag表示你想要获取哪些信息,比如下例的activity信息及activity标签下的metadata信息
PackageInfo packageInfo = packageManager.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES | PackageManager.GET_META_DATA);
具体信息获取
1、权限信息(AndroidManifest中标签中信息列表)
String[] permisions = packageManager.getPackageInfo(packageName, PackageManager.GET_PERMISSIONS).requestedPermissions;
2、版本信息
PackageInfo packageInfo = packageManager.getPackageInfo(packageName, 0);
String versionName = packageInfo.versionName;
int versionCode = packageInfo.versionCode;
3、其他信息
比如sharedUserId、packageName等等
二、获取ApplicationInfo信息
获取方式
//由上述packageInfo中获取得到
ApplicationInfo applicationInfo = packageInfo.applicationInfo;
具体信息获取
1、应用名称
String appName = (String) applicationInfo.loadLabel(packageManager);
2、应用图标
Drawable appIcon = applicationInfo.loadIcon(packageManager);
3、其他信息
比如taskAffinity、processName、theme等
三、