2017-07-21 85 views
0

我有一個包含活動的Android庫。然而,我是否將活動納入元素並不重要。只要我在我的應用程序中使用該庫完成「活動路徑」,我就可以運行該活動。什麼進入AndroidManifest的圖書館項目?

此外,清單中的軟件包值似乎是任意的。它不必與庫類的java包相對應。它似乎只用於R值的生成。

什麼應該在我的AndroidManifest的庫項目中包值? 何時(如果有)我是否需要在元素中包含一些信息?

+0

也許,'uses-permission'部分。而且(我想)比這更少。 (沒有申請,沒有活動)。服務,如果你的圖書館使用它們。 –

+0

如果清單中沒有這樣的條目,如果它是一個庫模塊,因爲如果你將它包含它,在合併清單時你的IDE會拋出一個錯誤,它會在圖標,sdk值和其他東西中產生衝突,所以不要在lib模塊的清單中包含任何這樣的事情是一個好習慣。 – Ashwani

回答

0

什麼應該在我的AndroidManifest的庫項目中包值?

東西合理獨特,所以它不會與應用程序可能使用的其他庫相沖突。否則,AFAIK,該值僅控制代碼生成(例如,R),如您所述。

何時(如果有)我是否需要在元素中包含一些信息?

我不知道「元素」是什麼。

什麼進入AndroidManifest的圖書館項目?該庫要合併到應用程序的清單

什麼:

  • 組件(例如,<activity>),其託管的應用程序是一定需要
  • <uses-permission>元素,通過所需的任何權限庫
  • <uses-feature>元素,用於庫所需的任何硬件功能
  • 等等

如果您的應用程序是使用該庫的唯一應用程序,那麼進入庫的清單和進入應用程序的清單之間的分界線真的取決於您,並且有點武斷。如果OTOH,圖書館將被多個應用程序,特別是那些你不寫使用,儘量手藝圖書館的清單,以儘量減少對應用程序開發人員頭疼:

  • 強制應用程序開發人員添加清單條目,爲事情總是需要的,是一個頭痛
  • 強迫應用開發者加入清單合併控制屬性(例如,tools:replace),因爲該庫詢問事情的應用程序並不需要,是一個頭痛
  • 添加的東西削弱應用程序安全性的清單(例如,不必要的<intent-filter>元素)是一件頭疼的事情
  • 等等
+0

CommonsWare:我所指的元素是所需的元素,它現在是

+0

@BrianReinhold:就屬性而言...可能很少(如果有的話)。查看[列表](https://developer.android.com/guide/topics/manifest/application-element.html),大多數(如果不是全部)是應用程序的責任。如果庫實際上是某種應用程序框架(應用程序本身很小,並且庫包含大部分代碼),那麼這會改變一些事情。但是''的子元素可能是相關的:組件,''用於API密鑰等。 – CommonsWare

+0

@CommonWare:你似乎真的很擅長這個,所以我會再問一個問題;這是一個藍牙庫,是否需要在庫清單中擁有藍牙許可,或者是否足以將它們(僅)放入應用程序的清單中? –