android studio 将已有的项目 以module Library的 形式引入到 自己的项目中

时间:2021-11-20 08:53:02

1、什么是Module Library

android  将项目  分成   project 和 Module

module  其实也是一个项目   他里面也有  res  、 java 、 AndroidManifiest等文件  其实也是一个可以独立运行的项目 

只是   build.gradle中  标记了是library类型的

android studio 将已有的项目 以module Library的 形式引入到 自己的项目中

而 project是   

apply plugin: 'com.android.application'

android studio 将已有的项目 以module Library的 形式引入到 自己的项目中


android studio 将已有的项目 以module Library的 形式引入到 自己的项目中

android studio 将已有的项目 以module Library的 形式引入到 自己的项目中

2、module library 导入到自己项目中的意义

如果是将  一个外部的module library想导入到当前的工程作为   library  作为一个,  可以看作是与当前项目的  合并  ,在主项目中可以 直接使用  module library项目中的资源文件等。 总之就等效于  将module library项目中的文件复制到了主项目的对应文件夹中了。

必须明白上面这一点,  这也是  ModuleLibrary  存在的意义

3、将module library 导入到自己项目

1)如果是android studio  的module Library   那么可以直接导入。

注意:但是 由于module Library 使用的gradle版本和当前项目的gradle不一样,那么android studio就会去电脑中找是否有对应的gradle ,如果 没有那么他就去网上下载,但是服务器在国外,国内下载很慢,所以在导入前可以修改一下版。改为自己对应已有的版本。

查看 gradle 的版本    打开当前项目的文件中的gradle文件

android studio 将已有的项目 以module Library的 形式引入到 自己的项目中

用记事本打开上面的 文件看最后一句

https\://services.gradle.org/distributions/gradle-2.8-all.zip  说明版本是 2.8

然后打开要导入的module library的  对应的gradle-wrapper.properties   将版本改为2.8  这样可以导入快一点。    

其实从网上下载下来的项目  用自己的android studio 打开前  也可以这么做,这样打开的也会快一点。

2)如果是  android  studio 的项目 或者 eclipse的项目  或者eclipse的library项目导入到当前的项目作为  module library那么 步骤如下

(1)新建一个library形式的module,删掉这个module中src/main目录里面的所有文件(包括删掉java、res、AndroidManifest.xml)

(2)复制第三方库的AndroidMainfest.xml、res、src文件(夹)到库目录的src/main目录中

(3)将src/main目录下的src目录重命名(Shift+F6)为java

(4)删除库module中的build.gradle文件(注意不要修改错了地方)中的dependencies和release模块(这一步可以不做)

注意:除了上面三个文件  还有 libs  、assest等等文件对应复制就可以了

  如果libs 文件中有.so文件(就是jni)   ,android studio 是将jar包和.so文件分开放的,jar包还放在libs中,so文件放在jniLibs中   两种解决方法

方法1、 新建一个 在src/main文件中新建 jniLibs文件夹,将.so文件都拷贝进去

方法2、.so文件还是放在libs中但是,要告诉android studio去哪里找.so文件

 修改当前module的build.gradle文件。
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}

以上两种方法 结果都是一样的效果一样。

在工程中可以看到多出了jniLibs的文件夹如图

android studio 将已有的项目 以module Library的 形式引入到 自己的项目中

总结:其实.so文件一般都是一些驱动硬件的程序  ,运行起来都是在如下的路径中

   运行到手机中的时候 这些.so文件     既不是在libs中也不是在jniLibs中,以上两个都是开发时候看见的路径,实际打包成apk的时候是在lib 文件夹中。

这是监控打印的路径    System.out:      so文件的路径::::/data/data/项目名称/lib/XXX.so 

所以放在哪里都一样,这要最终android  studio 可以找得到并且打包到apk 的 lib中就可以了!

4、将 module library 添加给当前的项目

android studio 将已有的项目 以module Library的 形式引入到 自己的项目中android studio 将已有的项目 以module Library的 形式引入到 自己的项目中

完成了!


写的不太好只有自己能够看得懂,就当是笔记!