使用庫(kù)項(xiàng)目共享Android源代碼和資源

2018-03-15 09:40 更新

使用庫(kù)項(xiàng)目共享Android源代碼和資源

IntelliJ IDEA 支持包含共享 Android 源代碼和資源的 Android 庫(kù)項(xiàng)目。其他 Android 應(yīng)用程序項(xiàng)目可以引用庫(kù)項(xiàng)目,并在構(gòu)建時(shí)將其編譯源包含在其 .apk 文件中。

在 IntelliJ IDEA 中,庫(kù)項(xiàng)目通過(guò)單獨(dú)的庫(kù)模塊進(jìn)行支持。

要啟用共享 Android 源代碼和資源,請(qǐng)執(zhí)行以下任一操作:

  • 創(chuàng)建一個(gè)新的庫(kù)模塊。
  • 將包含要共享的源的應(yīng)用程序模塊轉(zhuǎn)換為庫(kù)模塊。

創(chuàng)建一個(gè)新的庫(kù)模塊的操作步驟如下:

  1. 執(zhí)行以下操作之一:
    • 從頭開(kāi)始創(chuàng)建一個(gè)項(xiàng)目
    • 將模塊添加到現(xiàn)有項(xiàng)目中
  2. 在向?qū)У牡谝豁?yè)上,在左側(cè)窗格中選擇 Android,在右側(cè)窗格中選擇 Library Module。
  3. 完成向?qū)А?/li>

您可以通過(guò)更新 Android facet 將應(yīng)用程序模塊轉(zhuǎn)換為庫(kù)模塊。

將應(yīng)用程序模塊轉(zhuǎn)換為庫(kù)模塊的操作步驟如下:

  1. 通過(guò)從主菜單中選擇:文件| 項(xiàng)目結(jié)構(gòu)(File | Project Structure)來(lái)打開(kāi)“項(xiàng)目結(jié)構(gòu)(Project Structure)”對(duì)話框。
  2. 在左側(cè)窗格中選擇模塊。在中央窗格中,展開(kāi)要變成庫(kù)模塊的模塊的節(jié)點(diǎn),然后單擊 Android。
  3. 在右側(cè)窗格中,選擇 Android facet 頁(yè)面頂部的“庫(kù)模塊(Library module)”復(fù)選框。

在另一個(gè)項(xiàng)目中使用庫(kù)模塊

要在另一個(gè)項(xiàng)目中使用庫(kù)模塊,您需要將該模塊導(dǎo)入到其中。

  1. 從主菜單中,選擇:文件| 新增| 來(lái)自現(xiàn)有源的模塊(File | New | Module from Existing Sources)。
  2. 在打開(kāi)的對(duì)話框中,瀏覽到要導(dǎo)入的.iml模塊文件,然后單擊“確定”。模塊節(jié)點(diǎn)將被添加到樹(shù)視圖中。
  3. 將導(dǎo)入的庫(kù)模塊的依賴關(guān)系添加到將要使用其數(shù)據(jù)的模塊中:
    1. 打開(kāi)非庫(kù)模塊的設(shè)置:導(dǎo)航到文件|項(xiàng)目結(jié)構(gòu)(File | Project Structure)中,在左窗格中選擇模塊(Modules),然后在中心窗格中選擇非庫(kù)模塊。
    2. 在右側(cè)窗格中,切換到“依賴關(guān)系(Dependencies)”選項(xiàng)卡。單擊右側(cè)工具欄中的添加按鈕,然后從上下文菜單中選擇“模塊依賴項(xiàng)(Module Dependency)”。
    3. 在打開(kāi)的“選擇模塊(Choose Modules)”對(duì)話框中,從列表中選擇導(dǎo)入的庫(kù)模塊,然后單擊“確定”。

將 AndroidManifest.xml 中用于庫(kù)模塊的數(shù)據(jù)添加到整個(gè)應(yīng)用程序的 AndroidManifest.xml 中

要成功地將庫(kù)模塊集成到另一個(gè)應(yīng)用程序中,其組件必須在應(yīng)用程序AndroidManifest.xml文件中聲明。清單文件包含運(yùn)行應(yīng)用程序所需的信息。您可以手動(dòng)將這些信息添加到庫(kù)模塊中,也可以將其從庫(kù)模塊的AndroidManifest.xml中提取出來(lái)并將其自動(dòng)添加到應(yīng)用程序的AndroidManifest.xml中。

第二種方法被稱為合并清單(merging manifests)。

要使庫(kù)模塊的清單自動(dòng)與應(yīng)用程序清單合并,請(qǐng)執(zhí)行以下操作:

  1. 通過(guò)從主菜單選擇:文件|項(xiàng)目結(jié)構(gòu)(File | Project Structure)打開(kāi)“項(xiàng)目結(jié)構(gòu)(Project Structure)”對(duì)話框。
  2. 在左側(cè)窗格中選擇模塊(Modules)。在中央窗格中,展開(kāi)非庫(kù)模塊并單擊其節(jié)點(diǎn)下的 Android facet。
  3. 在右側(cè)窗格的 Android facet 頁(yè)面上,切換到“打包(Packaging)”選項(xiàng)卡,然后選擇“啟用清單合并(Enable manigest merging)”選項(xiàng)。

將庫(kù)模塊的.dex文件包含到整個(gè)應(yīng)用程序的.apk文件中,無(wú)需重建(預(yù)分離)

在應(yīng)用程序打包過(guò)程中,庫(kù)模塊的.class文件被轉(zhuǎn)換為.dex文件。這個(gè)操作被稱為 dexing。最后,從庫(kù)模塊輸出的.dex文件包含在最終的.apk應(yīng)用程序中(詳細(xì)了解構(gòu)建和運(yùn)行中的構(gòu)建過(guò)程 )。

通常,庫(kù)模塊的內(nèi)容保持不變。在這種情況下,你只能夠dexed一次,因此輸出.dex文件包含在.apk中。這種方法被稱為 pre-dexing。

默認(rèn)情況下,IntelliJ IDEA pre-dexe(預(yù)分割)庫(kù)模式依賴關(guān)系以及自上一次構(gòu)建以來(lái)尚未更新的外部jars。您可以更改這些設(shè)置,以便所有.class文件始終 dexed。

  1. 通過(guò)從主菜單選擇:文件| 項(xiàng)目結(jié)構(gòu)(File | Project Structure)打開(kāi)“項(xiàng)目結(jié)構(gòu)(Project Structure)”對(duì)話框。
  2. 在左側(cè)窗格中選擇模塊(Modules)。在中央窗格中,展開(kāi)非庫(kù)模塊并單擊其節(jié)點(diǎn)下的 Android facet。
  3. 在右側(cè)窗格的 Android facet 頁(yè)面上,切換到“打包(Packaging)”選項(xiàng)卡,然后選擇“Pre-dex 外部 jar 和 Android 庫(kù)依賴關(guān)系(Pre-dex external jars and Android library dependencies)”選項(xiàng)。
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)