随着项目越来越多,代码的复用就变得异常重要,这时候就要进行模块化编程,就是把一些通用的组件或者类库做成单独的模块,其他项目直接进行引用就好。针对Android开发最常见的就是Android Library,在Gradle出现之前引用Android Library的方式也很繁琐,但是有了Gradle一切变得非常简单方便。
aar
何为aar?大家都知道jar文件把,如果你有一个Android Library项目,可以很容易的导出jar文件,然后在其他项目中很方便的引用,aar和jar类似,区别就是一个Android Library项目导出的jar文件不能包含资源文件,比如一些drawable文件、xml资源文件之类的,所以这就有很大的限制,在gradle之前我们要引用带资源文件的Android Library必须要把整个library导入进来进行引用,但是有了gradle之后,Android Library项目可以直接导出成aar,然后其他项目像引用jar的方式直接方便的引用。
导出aar
首先Android Library项目的gradle脚本只需要在开头声明
apply plugin: 'com.android.library'
之后就和导出apk文件一样的方法,执行 ./gradlew assembleRelease,然后就可以在 build/outputs/aar 文件夹里生成aar文件
引用本地的aar
生成aar之后下一步就是如何引用本地的aar文件?本地的aar文件并没有像引用jar文件这么简单,官方也没有提供解决方案。好在国外的一些前辈总结出了方法,下面就以test.aar文件为例来详述下方法
1、把aar文件放在一个文件目录内,比如就放在libs目录内
2、在app的build.gradle文件添加如下内容
repositories {
flatDir {
dirs 'libs' //this way we can find the .aar file in libs folder
}
}
3、之后在其他项目中添加一句gradle依赖便方便的引用了该library
dependencies {
compile(name:'test', ext:'aar')
}
以上方法亲测有效。
总结
当然通过gradle最普遍的方法是把aar上传到mavenCentral或者jcenter,引用的话更方便,但是对于一些公司内部library不想公开,而传统的引用library方式又太繁琐,引用本地的aar文件这种方式会非常方便合适,之后通用的模块只需要做成library,不管更新还是修改只需要打包成aar,然后供其他项目使用就好了,对Android开发来说这是提升代码复用非常有效的一个手段。
相关推荐
Android引用包含远程依赖库的aar(引用aar时找不到arr的远程依赖库问题); aar引用很简单,将sdk-zhousf-1.0-20170907.054540-1.aar复制到libs包下,在项目的build.gradle文件中增加以下代码即可: compile(name:'sdk-...
主要介绍了Android项目中引用本地aar文件的方法,本文讲解了什么是aar文件、导出aar文件方法、引用本地的aar文件方法等内容,需要的朋友可以参考下
问题:有个arr文件被放到Module A中引用,现在Module B又依赖了Module A,则在编译过程中会发生错误,Module B找不到aar文件。(同时如果又有Module C 依赖了Module B,C也会出同样的问题) 解法: 1、正常给一个...
最新的opencv 4.5.0 版本 已经打包成aar 直接导入android studio 中使用即可 无须再重复下载 opencv sdk 包
如果 module 引用了一个本地的 aar,在打包的时候,这个被引用的 aar 是不会打包进去的,这种设计思想是比较好的,可以很好的避免包冲突的问题。例如 App 引用了两个 aar(1.aar 和 2.aar),1.aar 和 2.aar 都依赖...
我们在开发中,在app下引用aar包能正常识别,但是如果是app下包含module,而module下依赖aar包,则会引用不到,这个demo解决gradle module不能引用aar问题
androidx-core-1.3.1.aar
androidx-drawerlayout-1.0.0.aar
androidx-fragment-1.1.0.aar
今天对接一个海康监控的sdk,其中sdk 是以aar的形式提供的,并且我需要用到此aar的模块是个library。所以按照正常的在application模块中引入aar的方式一致报错,首先提示要关闭offline ,然后关闭了还是会提示错误。...
androidx appcompat 1.3.0版本资源包
androidx-constraintlayout-2.0.4.aar
androidx activity-1.2.3版本资源包
androidx appcompat 资源包
android studio 生成aar包并在其他工程引用 (导入)aar包 具体介绍 http://blog.csdn.net/q610098308/article/month/2016/06
androidx-interpolator-1.0.0.aar
谷歌android串口开发 使用nexus 生成的 aar文件,直接导入项目即可使用 1.0为谷歌源文件打包生成 1.0.1 是个人稍作修改的版本
3.Android.mk或Android.bp中引用Android的第三方(jar、aar、so)、Androidx的类库等的使用方法 4.Android.mk或Android.bp编译生成Apk、静态库、动态库、可执行文件等的使用方法 5.Android系统定制有源码App或无源码...
因项目需要,自己编译的最新版vlc-android,该arr包中包含armeabi-v7a,arm64-v8a,x86架构的.so库,编译时间2019.4.15。