Android简易实战教程--第十一话《获取手机所有应用信息Engine类详解》
来源:互联网 发布:vcr制作软件下载 编辑:程序博客网 时间:2024/06/01 16:19
如果想要获取系统手机应用的详细信息,那么下边代码可以直接作为模板使用。笔者对每一行代码都做了注解,供您参考。直接上代码:
package com.example.itydl.engines;import java.io.File;import java.util.ArrayList;import java.util.List;import com.example.itydl.domain.AppBean;import android.content.Context;import android.content.pm.ApplicationInfo;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import android.os.Environment;/** * Engine类,获取所有安装的apk详细信息 * @author ydl * */public class AppManagerEngine {/** * * @param context * @return * sd卡的可用空间,单位为byte */public static long getSDAvailSpace(Context context){long sdAvaliSpace = 0;//获取sd卡的目录File externalStorageDirectory = Environment.getExternalStorageDirectory();//获取sd卡的可用空间。通过文件夹来间接计算剩余空间大小sdAvaliSpace = externalStorageDirectory.getFreeSpace();//把获取的剩余数据返回return sdAvaliSpace;}/** * * @param context * @return * 手机ROM中的剩余空间 */public static long getRomAvailSpace(Context context){long romAvaliSpace = 0;//获取rom所有目录结构File dataDirectory = Environment.getDataDirectory();//获取rom的可用空间。通过文件夹来间接计算剩余空间大小romAvaliSpace = dataDirectory.getFreeSpace();//把获取的剩余数据返回return romAvaliSpace;}/** * * @param context * @return * 所有的安装了的apk的详细信息 */public static List<AppBean> getAllInstalledApks(Context context){List<AppBean> apksBean = new ArrayList<AppBean>();//获取包管理器PackageManager manager = context.getPackageManager();//通过包管理器对象,获取所有的安装了的apk的信息List<PackageInfo> installedPackages = manager.getInstalledPackages(0);//Return a List of all packages that are installed on the device.//遍历所有应用包信息,分别得到每个应用包的详细信息。就可以对该应用的数据在界面显示了for (PackageInfo packageInfo : installedPackages) {//把每个包的应用信息,封装到javabean里面。创建AppBean类AppBean bean = new AppBean();//设置apk的包名bean.setPackName(packageInfo.packageName);//设置apk的名字,记住bean.setAppName(packageInfo.applicationInfo.loadLabel(manager)+"");//loadLabel(manager)获取标签//设置apk的图标bean.setIcon(packageInfo.applicationInfo.loadIcon(manager));//设置apk的大小。通过获取apk文件,间接获取该apk的占用空间大小String sourceDir = packageInfo.applicationInfo.sourceDir;//得到该应用的一个路径//得到该路径的文件File file = new File(sourceDir);//得到apk的大小,字节为单位bean.setSize(file.length());//Returns the length of this file in bytes. //根据标志位,是否是系统apk或者用户apk//获取该apk的flag属性int flag = packageInfo.applicationInfo.flags;//判断是否是系统的apkif((flag&ApplicationInfo.FLAG_SYSTEM)!=0){//ApplicationInfo.FLAG_SYSTEM表示系统的apk的flag标志//是系统的apkbean.setSystem(true);//是系统应用的标记}else{//不是系统的apkbean.setSystem(false);}//判断应用安装在了系统还是sdif((flag & ApplicationInfo.FLAG_EXTERNAL_STORAGE)!=0){//安装在了sd卡bean.setSd(true);//sd卡的标记}else{bean.setSd(false);//rom中的标记}//把获取的每一个apk的信息对象封装到数据源模型层apksBean.add(bean);}return apksBean;}}
1 0
- Android简易实战教程--第十一话《获取手机所有应用信息Engine类详解》
- Android简易实战教程--第四十七话《使用OKhttp回调方式获取网络信息》
- Android简易实战教程--第十话《模仿腾讯手机助手小火箭发射详解》
- Android简易实战教程--第五话《开发一键锁屏应用》
- Android简易实战教程--第十二话《代码获取手机总运行内存的大小》
- Android简易实战教程--第十二话《代码获取手机总运行内存的大小》
- Android 获取手机应用信息
- Android获取手机应用信息
- Android--获取手机所有APP信息
- Android实战简易教程-第十一枪(树形组件:ExpandableListView显示和动态添加删除)
- ###*获取Android手机所有应用包名以及类名*
- Android简易实战教程--第四十话《Spinner》
- Android 获取设备所有应用信息
- Android 手机设备信息获取使用详解
- Android实战简易教程-第一枪(Spinner控件详解)
- Android实战简易教程-第十八枪(ViewPager组件详解)
- Android实战简易教程<一>(Spinner控件详解)
- Android实战简易教程<十八>(ViewPager组件详解)
- MySQL DBA 分歧之一 --> 读写分离场景中读写账号是否分离?
- Java String charAt()方法
- gridView的用法
- Git 系列之二:Windows 下 Git 客户端的选择,及 msysGit 各种中文问题的解决
- windows(XP)下配置使用Git完整过程(msysgit、TortoiseGit)
- Android简易实战教程--第十一话《获取手机所有应用信息Engine类详解》
- JAVA——垃圾收集器与内存分配策略
- 笛卡尔&小雷:科学发展有规律,研究科学有方法
- 5-22 龟兔赛跑 (20分)
- CentOS 基本信息查询命令
- 数据结构上机测试2-1:单链表操作A
- Mac中安装Python+Django+MySQL完整步骤
- 计算一个N个选项中和为X的所有组合数
- Android 开发之第三方库之 EventBus