库项目的 AndroidManifest 中包含什么?

What goes into AndroidManifest of a library project?

我有一个包含 activity 的 Android 库。然而,我是否在元素中包含 activity 似乎并不重要。我只要把完整的'path'到activity在我的应用程序里面用那个库就搞定了,我就可以运行了activity.

此外,清单中的包值似乎是任意的。它不必对应库 类 的 java 包。好像只有R值的生成用到。

我的 Android 库项目清单中的包值应该是什么? 什么时候(如果有的话)我需要在元素中包含一些信息?

What SHOULD the package value be in my AndroidManifest of the library project?

一些相当独特的东西,因此它不会与应用程序可能使用的其他库冲突。否则,AFAIK,如您所述,该值仅控制代码生成(例如,R)。

When (if ever) do I need to include some information in the element?

我不知道 "the element" 是什么。

What goes into AndroidManifest of a library project?

库想要合并到应用程序清单中的任何内容:

  • 托管应用肯定需要的组件(例如,<activity>
  • <uses-permission> 个元素,用于库所需的任何权限
  • <uses-feature> 个元素,用于库所需的任何硬件功能
  • 以此类推

如果您的应用程序是唯一将使用该库的应用程序,那么进入库清单的内容与进入应用程序清单的内容之间的分界线实际上取决于您,并且有些随意。 OTOH,如果该库将被多个应用程序使用,尤其是您未编写的应用程序,请尝试制作库的清单以尽量减少应用程序开发人员的麻烦:

  • 强制应用程序开发人员添加清单条目,对于总是需要的东西,是一件令人头疼的事情
  • 强制应用程序开发人员添加清单合并控件属性(例如,tools:replace),因为库要求应用程序不需要的东西,这令人头疼
  • 在清单中添加削弱应用安全性的东西(例如,不必要的 <intent-filter> 元素)令人头疼
  • 以此类推