在多个Android项目工程中共享一个库模块

我们可以把库模块做成一个jar,由多个项目工程引用。不过有时我们会希望以源文件源项目的方式来引用库模块,这样可以对库模块文件临时做修改调试等等。

 

我们首先建立两个最简项目工程,其一叫MyProj1,其二叫MyProj2Lib,假定现在我们已经建好了,每个工程里面各有一个app模块。

 

接下来我们在MyProj2Lib中增加了一个mylibrary库模块,方法是File-->New-->NewModule,在弹出的对话框中选择Androidlibrary类型,一路下去就生成了一个库模块,并命名为mylibrary。我们在这个库模块的存放源代码的位置添加一个类,比如MyLibFunctions,在其中添加一个公共方法,比如myLibAdd,用来对两个整数相加并返回结果。

 

接下来我们设法使得MyProj2Lib中app模块可以引用MyLibFunctions中的公共方法。

 

首先我们注意到,在刚才添加库模块mylibrary之时,Android Studio已经自动在settings.gradle文件中做了修改:

include':app',':mylibrary'

该修改指明本工程中有app和mylibrary两个模块。

 

在app模块下的build.gradle文件的dependencies里面增加如下编译项:

compileproject (':mylibrary')

 

在gradle同步之后我们打开一个java源文件,输入:

new MyLibFunctions().myLibAdd(1, 2)

可以看到我们已经可以引用mylibrary里面的公共方法了。

 

自此我们在MyProj2Lib中的app模块可以引用mylibrary库模块了,接下来我们要实现在MyProj1里面的app也可以引用MyProj2Lib中的这个mylibrary库模块。

 

打开MyProj1里面的settings.gradle文件,将内容改为:

include ':app'

include ':mylibrary'

project(':mylibrary').projectDir= new File("../MyProj2Lib", 'mylibrary')

这是最关键的一步,由此实现了跨项目工程的库模块引用。

 

打开MyProj1里面app模块的build.gradle,在dependencies里面增加:

compileproject(':mylibrary')

由此实现MyProj1编译MyProj2Lib中的库模块。

 

打开MyProj1里面app模块的一个java文件,输入

new MyLibFunctions().myLibAdd(1, 2)

可以看到我们已经可以引用MyProj2Lib里面的mylibrary里面的公共方法了,此刻完成了库模块的跨项目工程引用。

 

全部demo代码:https://github.com/maxyou/Android-Refer-Library-Across-Project-Demo

你可能感兴趣的:(Android)