通过apk安装包直接获取入口类和包名暨PackageManager 类的介绍
来源:互联网 发布:c语言if else多个 编辑:程序博客网 时间:2024/05/16 15:51
直接贴代码,代码中有详解
public class TestPackageName extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.test_package_name);// String archiveFilePath =// "/com.bazik.store_v1.2_w_201409060304.apk";// 待测的包// 此路径为apk所在的路径,这里没有做相关的sd卡判断String apkPath = Environment.getExternalStorageDirectory().getPath() + "/Exp_Time12Or24_example.apk";PackageManager pm = getPackageManager();PackageInfo info = pm.getPackageArchiveInfo(apkPath, PackageManager.GET_ACTIVITIES);if (info != null) {ApplicationInfo appInfo = info.applicationInfo;String appName = pm.getApplicationLabel(appInfo).toString(); // 得到app名称String packageName = appInfo.packageName; // 得到安装包名称String version = info.versionName; // 得到版本信息TextView tv = (TextView) findViewById(R.id.textView); // TEXT显示tv.setText("packageName:" + packageName + "\nversion:" + version + "\n入口类::" + info.activities[0].name+ "\nappName:" + appName);}}}
关于PackageManager类的介绍
PackageManager相关
本类API是对所有基于加载信息的数据结构的封装,包括以下功能:
安装,卸载应用查询permission相关信息
查询Application相关信息(application,activity,receiver,service,provider及相应属性等)
查询已安装应用
增加,删除permission
清除用户数据、缓存,代码段等
- /**
- * PackageManager介绍:
- * 本类API是对所有基于加载信息的数据结构的封装,包括以下功能:
- * 安装,卸载应用 查询permission相关信息 查询Application相关
- * 信息(application,activity,receiver,service,provider及相应属性等)
- * 查询已安装应用 增加,删除permission 清除用户数据、缓存,代码段等 非查询相关的API需要特定的权限。
- * 主要包含了,安装在当前设备上的应用包的相关信息
- * 如下:获取已经安装的应用程序的信息
- */
- private HashMap<String, String> installPackagesInfo(){
- // 获取packageManager对象
- PackageManager packageManager = this.getPackageManager();
- /*getInstalledApplications 返回当前设备上安装的应用包集合
- * ApplicationInfo对应着androidManifest.xml中的application标签。通过它可以获取该application对应的信息
- */
- List<ApplicationInfo> applicationInfos = packageManager.getInstalledApplications(0);
- HashMap<String, String> resultMap = new HashMap<String, String>();
- Iterator<ApplicationInfo> iterator = applicationInfos.iterator();
- while(iterator.hasNext()){
- ApplicationInfo applicationInfo = iterator.next();
- String packageName = applicationInfo.packageName;// 包名
- String packageLabel = packageManager.getApplicationLabel(applicationInfo).toString();//获取label
- resultMap.put(packageLabel, packageName);
- }
- return resultMap;
- }
另外在PackageManager类中,我们发现了几个很好玩的方法。
XMLResourceParse getXml(String packageName,int resid,ApplicationInfo appInfo)可以从指定的包中加载某个xml文件。
以上PackageManager介绍参考http://blog.csdn.net/chenzheng_java/article/details/6386517 1 0
- 通过apk安装包直接获取入口类和包名暨PackageManager 类的介绍
- Android通过PackageManager获取:app程序名、包名、入口类名
- 通过l PackageManager 获取某个安装包内的资源
- Appium-如何获取apk的包名及入口类
- 通过PackageManager获取应用包的信息
- 跳转到已安装的apk&&获取Android应用包名package和入口activity名称
- 获取APK 包的相关信息PackageManager 第一部分
- 通过PackageManager的api 查询已经安装的apk
- 通过PackageManager的api 查询已经安装的apk
- 通过APK获取应用的包名以及启动类
- 通过apk安装包获取sha1的值
- 通过包名获取apk安装路径
- PackageManager 获取系统安装包信息
- 安装APK的错误码(PackageManager.java)
- 安装APK的错误码(PackageManager.java)
- Android中PackageManager类的简单介绍
- PackageManager类以及获取包名版本号版本名
- 通过包名获得入口类
- poj 1021--Intervals(差分约束&Bellman_Ford)
- Windows系统数据与WMI存储空间的对应关系
- 即时通讯
- Android内核 netdevices.txt文档说明
- C++里面的一个technique : Type Traits
- 通过apk安装包直接获取入口类和包名暨PackageManager 类的介绍
- 通过bootstrap插件制作响应式导航!
- Android Framework层Power键关机流程(二,关机流程)
- 线程池四个中断策略
- HTML5实现手机摇一摇更换背景色
- iOS8新特性之基于地理位置的消息通知UILocalNotification
- java基础汇总(二)
- IOS8下的UIScrollView有子控件时滑动经常不能滚动解决办法
- js获取根目录的方法