Android 模块依赖引用方式
设置 gradle
打开项目的Settings.gradle文件,在这个文件下加入你要引用的Module,新增内容如下:
include 'module'
project(':module').projectDir = new File(settingsDir, '../../Android/Module')
使用同一工程下的模块
dependencies {
// recompile this module and all modules using this one
// when legofy interface is modified
// 引用统一工程下的其他模块,但是不将符号打进包中,进编译支持
api project(':legofy')
// only recompile this module when landscapevideocamera interface is modified
// 引用统一工程下的其他模块
implementation project(':landscapevideocamera:1.0.0')
}
使用同一目录下的libs文件夹下的所有jar文件
需要将jar文件放到具体位置,然后指定参照路径
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation files('libs/x.jar')
引用远程仓库的库
gradle 自动下载
implementation 'com.android.support:appcompat-v7:28.0.0'
引用外部的Module
这里需要用到ProjectDescriptor的projectDir来指定项目的一个路径,代码中所指定的路径是settings目录的相对路径,写入该设置后Module就会从外部导入进来。
打开菜单"File" - “Project Structure…”,在打开的面板左侧的Modules一栏中选择主程序,然后再右边面板中选择Dependenicies页签,然后点击下方的“+”号选择“Module Dependency”,在弹出的界面中选择上面导入的Module添加为依赖库。
设置外部的JNI目录
要用到JNI实现往往要么是想提升处理效率要么就是要跨平台实现,那么对于跨平台时需要导入外部的JNI目录的肯定性就很大了,因为不仅仅是Android在用这份代码,其他平台也在用。因此,需要对项目配置进行外部引用,操作步骤如下:
打开build.gradle文件,找到android.sourceSets.main属性,加入下面的代码
jni.srcDirs "src/main/jni", "../../otherJNIPath"
其中jni.srcDirs就是用于指定多个JNI目录,在这里可以指定相对于项目的目录路径。这样就可以指定一个外部的JNI目录进来了。
设置外部的libs目录
打开build.gradle文件,找到android.sourceSets.main属性,加入下面的代码
jniLibs.srcDirs "src/main/jni/jinLibs", "../../otherLibsPath"
其中jniLibs.srcDirs就是用于指定多个libs目录,在这里可以指定相对于项目的目录路径。这样就可以指定一个外部的libs目录进来了。
如果JNI编译中需要引用本地so,在 ndk.ldLibs 属性中加入要引入的so的绝对路径,定位到android.defaultConfig.ndk属性,加入下面的代码
String libPath = "\\usr\\prjs\\otherLibsPath\\armeabi\\libzip.so"
ldLibs "log", "android", "z", libPath