android手机上的app都安装data/data文件下
1. 用户安装的app在data/data/app目录下
2. 系统自带的app在data/data/system目录下
注意如果想要查看data/data下文件夹中的数据,手机必须是root的,否则看不到data/data文件夹中的内容,模拟器可以看到。
下面是代码,获得手机安装软件app信息都存在AppInfo.java类中,这是个数据类
package com.luo.safemobile.engin; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; /** * Created by luolawn on 15/6/13. */ public class AppInfo { private Drawable icon; private String name; private String packName; private boolean inRom; private boolean userApp; public Drawable getIcon() { return icon; } public boolean isUserApp() { return userApp; } public String getPackName() { return packName; } public boolean isInRom() { return inRom; } public String getName() { return name; } public void setUserApp(boolean userApp) { this.userApp = userApp; } public void setInRom(boolean inRom) { this.inRom = inRom; } public void setIcon(Drawable icon) { this.icon = icon; } public void setPackName(String packName) { this.packName = packName; } public void setName(String name) { this.name = name; } @Override public String toString() { return "AppInfo{" + "icon=" + icon + ", name='" + name + '\'' + ", packName='" + packName + '\'' + ", inRom=" + inRom + ", userApp=" + userApp + '}'; } }
下面是获取包信息后存到AppInfo.java类中的代码
package com.luo.safemobile.engin; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.graphics.drawable.Drawable; import java.util.ArrayList; import java.util.List; /** * Created by luolawn on 15/6/13. */ //手机中安装的所有app的信息 public class AppInfoProvider { //android 里所有安装的app:用户安装在data/app目录xia //系统自动的app在data/system目录下, public List<AppInfo> getAppInfo(Context context){ PackageManager pm=context.getPackageManager(); List<PackageInfo> packageInfoList= pm.getInstalledPackages(0); List<AppInfo> appInfos=new ArrayList<AppInfo>(); for (PackageInfo pi:packageInfoList){ //PackageInfo相当于mianfist.xml文件 String packNane= pi.packageName; Drawable icon=pi.applicationInfo.loadIcon(pm); String name=pi.applicationInfo.loadLabel(pm).toString(); AppInfo appInfo=new AppInfo(); appInfo.setPackName(packNane); appInfo.setIcon(icon); appInfo.setName(name); appInfos.add(appInfo); } return appInfos; } }