as 引用库 jar arr os module

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了

扫描二维码关注公众号,回复: 14987224 查看本文章

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我们需要在librarymodule中同时复制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  

猜你喜欢

转载自blog.csdn.net/l331258747/article/details/70314688
Arr