什么进入AndroidManifest的图书馆项目?

时间:2017-07-21 18:39:54

标签: android android-manifest android-library

我有一个包含活动的Android库。然而,我是否在元素中包含活动似乎并不重要。只要我将完整的“路径”放在我的应用程序中使用该库的活动完成,我就可以运行该活动。

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

在我的AndroidManifest的图书馆项目中,包价值应该是什么? 什么时候(如果有的话)我需要在元素中包含一些信息吗?

1 个答案:

答案 0 :(得分:0)

  

我的AndroidManifest中的包项值应该是什么?

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

  

何时(如果有的话)我需要在元素中包含一些信息吗?

我不知道"元素"是

  

图书馆项目的AndroidManifest有什么用?

图书馆希望合并到应用程序清单中的任何内容:

  • 托管应用确保需要的组件(例如<activity>
  • <uses-permission>元素,用于库所需的任何权限
  • <uses-feature>个元素,适用于库所需的任何硬件功能
  • 等等

如果您的应用是唯一将使用该库的应用,那么进入图书馆清单的内容和进入应用程序清单的内容之间的分界线真的取决于您并且在某种程度上随心所欲。如果,OTOH,该库将被多个应用程序使用,特别是那些您没有编写的应用程序,请尝试制作库的清单,以尽量减少应用程序开发人员的头痛:

  • 迫使应用开发者添加清单条目,对于总是需要的东西,令人头疼
  • 强制应用开发者添加清单合并控制属性(例如tools:replace),因为库询问应用不需要的东西,令人头疼
  • 在清单中添加会削弱应用安全性的内容(例如,不必要的<intent-filter>元素)令人头疼
  • 等等