Android 中如何取得已经安装在手机山的app的信息

本文介绍如何在Android系统中获取已安装应用程序的详细信息,包括用户安装的app位于data/data/app目录下,系统自带app位于data/data/system目录下。需要注意的是,非root设备无法直接查看data/data文件夹内容,而模拟器则可以。提供了相关代码示例,将获取的包信息存储到AppInfo.java数据类中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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;
    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值