//获取到包的管理者 PackageManager manager=context.getPackageManager();
<span style="white-space:pre"> </span>//获取所有程序的信息集合
List<PackageInfo> installedPackages = manager.getInstalledPackages(0);
<span style="white-space:pre"> </span>//遍历获取各种信息 for(PackageInfo info:installedPackages){ //获取到应用程序的图标 Drawable icon = info.applicationInfo.loadIcon(manager); //获取到应用程序名字 String apkName = info.applicationInfo.loadLabel(manager).toString(); //应用程序的包名 String packageName = info.applicationInfo.packageName; //获取到apk资源的路径 String sourceDir = info.applicationInfo.sourceDir; File file=new File(sourceDir); //apk大小 long apkSize=file.length(); //获取到安装应用程序的标记 int flags=info.applicationInfo.flags; //判断是否为系统应用 if((flags&ApplicationInfo.FLAG_SYSTEM)!=0){ //表示系统app appInfo.setUserApp(false); }else{ //表示用户app appInfo.setUserApp(true); } //判断安装在sd卡还是手机没存 if((flags&ApplicationInfo.FLAG_EXTERNAL_STORAGE)!=0){ //表示在sd卡 appInfo.setRom(false); }else{ //表示在手机内存 appInfo.setRom(true); }