阅读(208) (15)

使用库项目共享Android源代码和资源

2018-03-15 09:14:33 更新

使用库项目共享Android源代码和资源

IntelliJ IDEA 支持包含共享 Android 源代码和资源的 Android 库项目。其他 Android 应用程序项目可以引用库项目,并在构建时将其编译源包含在其 .apk 文件中。

在 IntelliJ IDEA 中,库项目通过单独的库模块进行支持。

要启用共享 Android 源代码和资源,请执行以下任一操作:

  • 创建一个新的库模块。
  • 将包含要共享的源的应用程序模块转换为库模块。

创建一个新的库模块的操作步骤如下:

  1. 执行以下操作之一:
    • 从头开始创建一个项目
    • 将模块添加到现有项目中
  2. 在向导的第一页上,在左侧窗格中选择 Android,在右侧窗格中选择 Library Module。
  3. 完成向导。

您可以通过更新 Android facet 将应用程序模块转换为库模块。

将应用程序模块转换为库模块的操作步骤如下:

  1. 通过从主菜单中选择:文件| 项目结构(File | Project Structure)来打开“项目结构(Project Structure)”对话框。
  2. 在左侧窗格中选择模块。在中央窗格中,展开要变成库模块的模块的节点,然后单击 Android。
  3. 在右侧窗格中,选择 Android facet 页面顶部的“库模块(Library module)”复选框。

在另一个项目中使用库模块

要在另一个项目中使用库模块,您需要将该模块导入到其中。

  1. 从主菜单中,选择:文件| 新增| 来自现有源的模块(File | New | Module from Existing Sources)。
  2. 在打开的对话框中,浏览到要导入的.iml模块文件,然后单击“确定”。模块节点将被添加到树视图中。
  3. 将导入的库模块的依赖关系添加到将要使用其数据的模块中:
    1. 打开非库模块的设置:导航到文件|项目结构(File | Project Structure)中,在左窗格中选择模块(Modules),然后在中心窗格中选择非库模块。
    2. 在右侧窗格中,切换到“依赖关系(Dependencies)”选项卡。单击右侧工具栏中的添加按钮,然后从上下文菜单中选择“模块依赖项(Module Dependency)”。
    3. 在打开的“选择模块(Choose Modules)”对话框中,从列表中选择导入的库模块,然后单击“确定”。

将 AndroidManifest.xml 中用于库模块的数据添加到整个应用程序的 AndroidManifest.xml 中

要成功地将库模块集成到另一个应用程序中,其组件必须在应用程序AndroidManifest.xml文件中声明。清单文件包含运行应用程序所需的信息。您可以手动将这些信息添加到库模块中,也可以将其从库模块的AndroidManifest.xml中提取出来并将其自动添加到应用程序的AndroidManifest.xml中。

第二种方法被称为合并清单(merging manifests)。

要使库模块的清单自动与应用程序清单合并,请执行以下操作:

  1. 通过从主菜单选择:文件|项目结构(File | Project Structure)打开“项目结构(Project Structure)”对话框。
  2. 在左侧窗格中选择模块(Modules)。在中央窗格中,展开非库模块并单击其节点下的 Android facet。
  3. 在右侧窗格的 Android facet 页面上,切换到“打包(Packaging)”选项卡,然后选择“启用清单合并(Enable manigest merging)”选项。

将库模块的.dex文件包含到整个应用程序的.apk文件中,无需重建(预分离)

在应用程序打包过程中,库模块的.class文件被转换为.dex文件。这个操作被称为 dexing。最后,从库模块输出的.dex文件包含在最终的.apk应用程序中(详细了解构建和运行中的构建过程 )。

通常,库模块的内容保持不变。在这种情况下,你只能够dexed一次,因此输出.dex文件包含在.apk中。这种方法被称为 pre-dexing。

默认情况下,IntelliJ IDEA pre-dexe(预分割)库模式依赖关系以及自上一次构建以来尚未更新的外部jars。您可以更改这些设置,以便所有.class文件始终 dexed。

  1. 通过从主菜单选择:文件| 项目结构(File | Project Structure)打开“项目结构(Project Structure)”对话框。
  2. 在左侧窗格中选择模块(Modules)。在中央窗格中,展开非库模块并单击其节点下的 Android facet。
  3. 在右侧窗格的 Android facet 页面上,切换到“打包(Packaging)”选项卡,然后选择“Pre-dex 外部 jar 和 Android 库依赖关系(Pre-dex external jars and Android library dependencies)”选项。