android之PackageManager简介
16lz
2021-01-26
PackageManager相关
本类API是对所有基于加载信息的数据结构的封装,包括以下功能:
安装,卸载应用查询permission相关信息
查询Application相关信息(application,activity,receiver,service,provider及相应属性等)
查询已安装应用
增加,删除permission
清除用户数据、缓存,代码段等
1 /** 2 * PackageManager介绍: 3 * 本类API是对所有基于加载信息的数据结构的封装,包括以下功能: 4 * 安装,卸载应用 查询permission相关信息 查询Application相关 5 * 信息(application,activity,receiver,service,provider及相应属性等) 6 * 查询已安装应用 增加,删除permission 清除用户数据、缓存,代码段等 非查询相关的API需要特定的权限。 7 * 主要包含了,安装在当前设备上的应用包的相关信息 8 * 如下:获取已经安装的应用程序的信息 9 */10 private HashMap<String, String> installPackagesInfo(){11 // 获取packageManager对象12 PackageManager packageManager = this.getPackageManager();13 /*getInstalledApplications 返回当前设备上安装的应用包集合14 * ApplicationInfo对应着androidManifest.xml中的application标签。通过它可以获取该application对应的信息15 */16 List<ApplicationInfo> applicationInfos = packageManager.getInstalledApplications(0);17 HashMap<String, String> resultMap = new HashMap<String, String>();18 Iterator<ApplicationInfo> iterator = applicationInfos.iterator();19 while(iterator.hasNext()){20 ApplicationInfo applicationInfo = iterator.next();21 String packageName = applicationInfo.packageName;// 包名22 String packageLabel = packageManager.getApplicationLabel(applicationInfo).toString();//获取label23 resultMap.put(packageLabel, packageName);24 }25 26 return resultMap;27 28 }
另外在PackageManager类中,我们发现了几个很好玩的方法。
XMLResourceParse getXml(String packageName,int resid,ApplicationInfo appInfo)可以从指定的包中加载某个xml文件。
更多相关文章
- 【Android】原生安装和卸载应用
- [Android]根据名称name来获取string的值
- Android: SDCard容量计算
- 完整的android开发环境搭建和源代码编译过程
- Ubuntu 18.04安装Android(安卓)SDK Manager
- Android(安卓)项目如何获取MD5和SHA1
- Android的ViewPager中移除Fragment
- Android系统详解之获取图片和视频的缩略图
- Qt Android(安卓)环境搭建