ApplicationInfo 和 PackageInfo 的区别?

Posted

技术标签:

【中文标题】ApplicationInfo 和 PackageInfo 的区别?【英文标题】:Difference between ApplicationInfo and PackageInfo? 【发布时间】:2012-07-09 17:08:40 【问题描述】:

我有几个关于 ApplicationInfo 和 PackageInfo 类的一般性问题。他们在这里:

    谁能描述一下 ApplicationInfo 和 包信息? 它们如何相互关联? 在哪些情况下使用ApplicationInfo,何时使用PackageInfo?

感谢您的帮助!

编辑:

首先,在发布这样的问题之前,我已经阅读了官方文档并在 Google 上搜索过。以下是一些我不清楚的其他问题。对不起,也许我没有适当地问他们:

    PackageInfo 可以具有值为 NULL 的 ApplicationInfo 对象。当它 有可能吗? (我猜这与卸载有关 包) ApplicationInfo 包含应用程序的 uid。有没有可能 PackageInfo 没有 uid(当 ApplicationInfo 为 null 时?)。

所以这类问题。我不明白这些联系。

【问题讨论】:

【参考方案1】:

PackageInfo 包含 ApplicationInfo (PackageInfo.applicationInfo)。

Package info 是您清单文件中的所有信息,ApplicaitonInfo 是清单中 <application> 标记中的信息。

什么时候使用?这取决于您要查找的信息,或者您使用的 API 方法。

【讨论】:

【参考方案2】:

    谁能描述一下 ApplicationInfo 和 包信息?

    PackageInfo代表整个androidManifest.xml。ApplicationInfo实际上是PackageInfo的一个字段/属性,仅指应用标签。参考this。

    它们如何相互关联?

    正如我提到的,ApplicationInfo 实际上是 PackageInfo 的一个属性/字段,它本身恰好是一个复杂的对象,并且有自己的方法/字段。

    什么情况下使用ApplicationInfo,什么时候使用PackageInfo?

    要访问可能与服务或活动或广播接收器相关的应用程序标记中的信息,我们使用 ApplicationInfo。与 AndroidManifest.xml 的其余部分相关的数据可以通过 PackageInfo 类中的其他字段/方法获得

【讨论】:

很好的答案,所以支持。为什么这不是选定的答案?

以上是关于ApplicationInfo 和 PackageInfo 的区别?的主要内容,如果未能解决你的问题,请参考以下文章

类ApplicationInfo详解

为 arm64 Android 手机构建应用程序包时在 ApplicationInfo.nativeLibraryDir 中找不到本机库

在为arm64 Android手机构建应用程序包时,在ApplicationInfo.nativeLibraryDir中找不到本机库

怎样将主菜单图标改成按安装时间排序

android 怎样将主菜单图标改成按安装时间排序

获取所有用户的应用列表