Android:Library module的使用

Android Library的代码结构和Android app的代码结构一样,实际上通过Android Studio创建的工程,只需要稍许修改即可变成Android Library module。

对于一些通用的代码和组件,可以制作成Library,在不用的APP中可以引入同一个Library代码。下面是笔者的实践笔记。

制作Android Library module

新建一个Android Library

直接打开Android Studio->File->New Module->Android Library。

由app module变成library module

对于已经存在的APP工程,也可以通过以下修改变成library module:

  • app/build.gradle修改apply plugin: 'com.android.application'为apply plugin: 'com.android.library';
  • app/build.gradle删除applicationId;
  • AndroidManifest.xml中activity不能添加android.intent.action.MAIN和android.intent.category.LAUNCHER;

依赖及使用Library

Android Studio->File->Import Module,选择Library Module的路径,并编辑一个library的名字,比如":MyLibrary"。

打开app module的app/build.gradle文件,在dependencies块中增加:

implementation project(':MyLibrary')

但这样引入会有一个问题,会直接拷贝代码:有N个工程就会拷贝N份代码。这个显然不是我们需要的。

怎么公用一份代码?

假设工程目录结构如下:

  • MyLibrary:Android Library工程;
  • ProjectA:工程A;
  • ProjectB:工程B;

假设三个项目在同一级目录。为了达到公用一份代码的目的,只需要在工程A和工程B的settings.gradle中增加配置:

include ':MyLibrary'
project(':MyLibrary').projectDir = new File(settingsDir, '../MyLibrary/MyLibrary')

同时,在项目module的build.gradle文件dependencies节点中增加:

implementation project(':MyLibrary')

其它文章

Android:must implement OnFragmentInteractionListener