Android Studio多项目共享Library

文章转自:http://www.jianshu.com/p/f664ebc03d93

Project

AS对Project的概念进行了重定义,概括起来讲就是:APP以及它的依赖。

举个例子:

你在Eclipse中创建了一个Project叫MyAPP,同时它依赖于另外两个Library Project:Library1和Library2,在Eclipse中这是三个Project;当你把代码迁移到AS后(迁移过程省略10000字),它们合起来才是一个Project,叫作MyApp,这个Project下面有三个Module:library1,library2以及myApp.

好了现在你已经把代码迁移到了AS,这时你发现Library1是被原先多个项目所共享的,按照上面的做法,原先的N个项目独立成N个工作空间,每个工作空间里都有一份Library的代码。没有人会愿意去维护这同样的N份代码对不对?即便修改了之后只是Ctrl+C,Ctrl+V.

New Library Module

先说下共享Library的思路:把所有的Library都作为Module放到一个Project里,然后让APP去引用这个Library Project.

这里先简单说下怎么在AS里创建一个Library Module。

这里新建了一个叫SharedLibrary的项目,默认情况下该项目包含一个Module叫作”app”。把项目呈现方式切换成”Android”。

这里写图片描述

在Gradle Scripts目录下有两个build.gradle文件,一个是整个Project的构建文件,一个是Module app的。打开Module app的构建文件。

这里写图片描述

现在要把”app”这个Module变成一个Library:

第一步,把第一行改成apply plugin:’com.android.library’

第二步,删掉applicationId “com.test.qsjh”这一行。

Import Library Module

通过AS左上角File->New->Import Module导入你已经拥有的Library,在这里我导入androidLibrary和androidUIStyle两个Library.

这里写图片描述

现在已经准备好Library Project了,接下来是怎么引用它。

这里新建了一个Project叫作FirstApp,同样先切换到Android视角。

第一步:打开Gradle Scripts目录下的settings.gradle,应该只有一行include’:app’,加上下面这些

这里写图片描述

第二步:打开Gradle Scripts下Module app的build.gradle文件,在dependencies{}中添加两行

这里写图片描述

第三步:点击AS上方菜单栏的Build->Clean Project,完成之后你会发现你的工作空间中多了两个Module.

这里写图片描述

我们把视角切回Project

这里写图片描述

至此,我们就解决了在不维护多份代码的情况下共享Library。