as引用库
libratay:为远程库引用
file:为本地文件引用,如:libs文件里的jar文件
module:本地module引用
1,需要把本地module作为library文件
2,module需要关联进项目统一管理(module生成jar,则通过file关联就行了)
注意:setting中需要加入你的modulename,这样才能和项目关联起来。
module关联
首先我们新建一个project然后再新建一个module作为library
apply plugin: 'com.android.library'
使用方式
只需要通过module dependency关联就ok了
jar和arr两者区别
*.jar:只包含了class文件与清单文件,不包含资源文件,如图片等所有res中的文件。
*.aar:包含所有资源,class以及res资源文件全部包含
如果你只是一个简单的类库那么使用生成的*.jar文件即可;如果你的是一个UI库,包含一些自己写的控件布局文件以及字体等资源文件那么就只能使用*.aar文件。
jar关联
生成jar
1,首先我们新建一个project然后再新建一个module作为library
apply plugin: 'com.android.library'
2,在mylibrary的build.gradle中增加配置如下
def SDK_BASENAME = "TestSdk"; def SDK_VERSION = "_V1.0"; def sdkDestinationPath = "build"; def zipFile = file('build/intermediates/bundles/release/classes.jar') task deleteBuild(type: Delete) { delete sdkDestinationPath + SDK_BASENAME + SDK_VERSION + ".jar" } task makeJar(type: Jar) { from zipTree(zipFile) from fileTree(dir: 'src/main',includes: ['assets/**'])//将assets目录打入jar包 baseName = SDK_BASENAME + SDK_VERSION destinationDir = file(sdkDestinationPath) } makeJar.dependsOn(deleteBuild, build)
其中SDK_BASENAME= "TestSdk"; SDK_VERSION = "_V1.0"; 是定义生成jar的名字为TestSdk_V1.0.jar。
3,然后通过gradle生成jar文件如下:
然后双击“makejar”,就可以生成jar文件了(在build文件下)
你可以复制TestSdk.jar到一个新的module中的libs目录下
使用方式
通过file dependency关联就ok了
arr关联
生成jar
1,首先我们新建一个project然后再新建一个module作为library
apply plugin: 'com.android.library'
2,然后在项目中》》build》》outputs》》arr》》***.arr
3,如果没有则如下操作
使用方式
module引用aar文件
同样将arr包复制到libs目录下,然后在build.gradle中添加下面的代码
repositories { flatDir { dirs 'libs' } }
注意:可以在两个地方添加
1,系统配置build.gradle
2,在app的build.gradle
compile(name: 'arrlibrary-debug', ext: 'aar')
“arrlibrary-debug”是你arr包的名字,根据自己的情况修改
3,引入成功
引入成功可在build->intermediates->exploded-arr文件夹下看到
library引用aar文件
在AndroidStudio下如果是library中引用aar我们需要在library和module中同时复制aar到对应的libs目录
2-1、app和library中都配置
app中的配置
library中的配置
2-2、 只在project中配置
也可以只在project中配置,app和library中就不用配置了
引用so包
方法一(jniLibs)
在 src/main/ 目录下创建文件夹 jniLibs (如果有就不需要创建了),将so文件复制到这个目录下即可,工程会自动加载src/main/jniLibs目录下的so动态库。
方法二(libs)
在libs目录下放入对应不同CPU架构的so文件,通过加入代码: jniLibs.srcDir 'libs' 来说明so的路径为该libs路径。
sourceSets {
main {
jniLibs.srcDir 'libs'
}
}
在module的build.gradle添加的defaultConfig下添加
defaultConfig { ...... ndk { abiFilters "armeabi", "armeabi-v7a", "x86", "mips" //选择要使用的平台 } }
如果编译不通过,在项目的gradle.properties中添加
android.useDeprecatedNdk=true