ApplicationInfo和PackageInfo之间的区别?

我有关于ApplicationInfo和PackageInfo类的几个常见问题。 他们来了:

  1. 有人可以描述ApplicationInfo和PackageInfo之间的区别吗?
  2. 他们如何相互关联?
  3. 在哪些情况下使用ApplicationInfo并使用PackageInfo?

感谢您的帮助!

编辑:

首先,在发布这样一个问题之前,我已经阅读了官方文档并进行了search。 这里还有一些我不清楚的问题。 对不起,也许我没有适当地问他们:

  1. PackageInfo可以具有NULL值的ApplicationInfo对象。 什么时候有可能? (我想这是与卸载的软件包连接)
  2. ApplicationInfo包含应用程序的uid。 PackageInfo可能没有uid(当ApplicationInfo为null?)。

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

Solutions Collecting From Web of "ApplicationInfo和PackageInfo之间的区别?"

  1. 有人可以描述ApplicationInfo和PackageInfo之间的区别吗?

    PackageInfo表示整个AndroidManifest.xml.ApplicationInfo实际上是PackageInfo的一个字段/属性,仅涉及应用程序标记。 参考这个 。

  2. 他们如何相互关联?

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

  3. 在哪些情况下使用ApplicationInfo并使用PackageInfo?

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

PackageInfo包含ApplicationInfo( PackageInfo.applicationInfo )。

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

什么时候使用? 这取决于您查找哪些信息,或者您正在使用哪些API方法。