Android群英传——第九章使用PackageManager获取应用包信息

本文详细介绍了如何在Android中使用PackageManager(PM)和ActivityManager(AM)来管理APK。PM负责包管理,AM负责Activity管理。通过Manifest.xml中的不同标签,系统会将它们封装为相应的Info类。例如,ActivityInfo、ServiceInfo和ApplicationInfo。PackageInfo则包含所有activity与service的信息。PackageManager提供了多种方法,如获取ApplicationInfo、ICON、已安装应用列表以及查询Intent对应的Activity或Service。通过PackageInfo,可以筛选并进一步处理不同类型的Android应用。
摘要由CSDN通过智能技术生成

Apk信息的获取

使用PM(PackageManager)和AM(ActivityManager)管理APK
PM负责包管理,AM负责Activity管理

在Mainifest.xml中,
activity与receiver标签会被系统封装为ActivityInfo类
service标签则会被封装为ServiceInfo类
application标签会被封装为ApplicationInfo类,ApplicationInfo包含很多Flag,FLAG_SYSTEM表示系统应用,FLAG_EXTRERNAL_STORAGE表示安装在SD上的应用,使用这些Flag可以判断应用的类型
mainifest标签则会被封装为PackageInfo类,包含了所有activity与service的信息
ResolveInfo则是封装intent标签的上一级信息,有可能是ActivityInfo也有可能是ServiceInfo,用来帮助我们找到含有特定intent的信息

有了上面各种Bean对象后,PackageManager就可以通过调用各种方法,返回不同的Bean对象了,有以下常见的方法:

getPackageManager(); // 返回一个PackageManager对象
getApplicationInfo();// 以ApplicationInffo的形式返回指定包名的ApplicationInfo
getApplicationIcon(); // 返回指定包名的ICON
getInstalledApplication(); //以ApplicationInfo的形式返回安装的应用
getInstalledPackages(); // 以PackageInfo的形式返回安装的应用
queryIntentActivities(); // 返回指定Intent的ResolveInfo对象,Activity集合
queryIntentAcrivity();// 返回指定intent的Activity
resolveService(); // 返回指定Intent的Service

通过PackageInfo筛选不同类型的App

将app相关信息封装为一个新的bean:

import android.graphics.drawable.Drawable;

import java.util.List;

/**
 * Created by feathers on 16-11-19.
 */

public class PMAppInfo {
   

    private String appLabel; //App名称

    private Drawable appIcon; //App图标

    private String pckName; // App包名

    public String getAppLabel() {
        return appLabel;
    }

    public void setAppLabel(String appLabel) {
        this.appLabel = appLabel;
    }

    public Drawable getAppIcon() {
        return appIcon;
    }

    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值