`

Android模块化编程之引用本地的aar【转】

 
阅读更多

随着项目越来越多,代码的复用就变得异常重要,这时候就要进行模块化编程,就是把一些通用的组件或者类库做成单独的模块,其他项目直接进行引用就好。针对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文件的方法

    在Android开发中,模块化编程是一种常见的优化代码结构和提高代码复用性的策略。aar(Android Archive)文件是Google引入的一种新的库格式,它允许开发者将Android Library项目中的代码、资源文件(如drawable、xml...

    润滑脂:适用于Android的Fat AAR,可在单个文件中分发多个库模块,而无需依赖

    总的来说,润滑脂是Android开发中优化依赖管理的一个创新工具,它通过提供"Fat AAR"的解决方案,简化了大型项目或组件化项目中库模块的集成和分发,提高了开发效率。通过对Gradle插件的巧妙利用,润滑脂为Android...

    安卓Android源码——精典源码之引用第三方库的方法.zip

    本资料包“安卓Android源码——精典源码之引用第三方库的方法”旨在深入探讨如何在Android项目中集成和使用外部库。下面将详细阐述这一主题。 1. **依赖管理工具Gradle** Android项目主要使用Gradle作为构建工具...

    liblinphone-android-javadoc文档

    Javadoc是Java编程语言的一种文档生成工具,用于自动生成关于Java API的文档,通常包含了类、接口、方法等的详细描述,方便开发者理解和使用。 **描述分析:** 描述中提到"liblinphone-android-javadoc文档,和我...

    Flat-Aar-Demo:测试Flat-Aar

    4. **Android Studio项目结构**:了解Android项目的标准目录结构,如`app`模块、`build.gradle`配置文件、`AndroidManifest.xml`等,有助于理解项目是如何组织和构建的。 5. **Gradle构建系统**:项目可能使用...

    Android-AndroidLibs.zip

    Android是由谷歌公司在2008年推出的一款开源操作系统,主要以Java、C和C++为编程语言,它的核心组件构建于Linux内核之上。这一设计使得Android不仅具备了强大的功能,还具有出色的稳定性和安全性。Linux内核为...

    打造高质量Android应用 Android开发必知的50个诀窍 (PDF+Code)

    3. **代码结构**:遵循MVC、MVVM或MVP设计模式,保持代码的模块化和可维护性。利用Kotlin的协程处理异步操作,减少回调地狱。 4. **资源优化**:使用Nine-Patch图像,压缩图片资源,合理设置图片密度,以减少APK...

    Android端TCP通讯实现

    2. 在`build.gradle`模块文件中,添加本地依赖,如: ``` implementation fileTree(dir: 'libs', include: ['*.aar']) ``` 3. 同步Gradle项目,使依赖生效。 该库提供了一个字节处理工具类,用于方便地进行字节...

    Android项目-星梦缘(资料).zip

    9. **libs目录**:用于添加本地的Java库(JAR文件)或AAR(Android Archive)文件,现在通常在build.gradle文件中通过dependencies来添加远程库。 10. **proguard-rules.pro**:配置混淆规则,用于在发布应用时对...

    疯狂Android讲义lib

    6. **热修复与插件化技术**:例如Tinker和Dexposed等库,提供了应用热更新和模块化开发的能力,能够在不更新整个应用的情况下修复错误或添加新功能。 7. **测试库**:JUnit、Mockito、Espresso等库用于单元测试、...

    opencv-3.4.3-android-sdk 下载

    OpenCV-3.4.3-android-sdk是一个专为Android平台设计的版本,它包含了在Android设备上进行计算机视觉开发所需的所有组件。 在2018年8月发布的OpenCV-3.4.3-android-sdk.zip压缩包中,开发者可以找到以下关键组件和...

    androidGradle管理

    有时也需要引用本地aar文件或自定义的Gradle插件,这需要使用不同的方法来声明。 3. **版本控制**: Gradle支持版本控制策略,如`+`表示最新的稳定版本,`~>`表示最近的小版本更新。 **四、编译目标版本设置** 1. *...

    大话企业级Android

    - **模块化与组件化**:讨论大型应用的模块化设计,如何通过AAR组件化实现代码复用。 - **性能优化**:包括内存优化、绘制优化、电量优化等,提高用户体验。 - **安全性**:讲解数据加密、权限管理、安全编码以及...

    opencv-4.4.0-androidopencv-4.5.0-android-sdk

    1. **集成OpenCV到Android项目**:首先,开发者需要将下载的opencv-4.5.0-android-sdk.zip或opencv-4.4.0-android-sdk.zip解压,获取到对应的AAR库文件。然后,通过Android Studio的Gradle构建系统,将AAR库添加到...

    Android+OpenCV+Demo

    OpenCV支持多种编程语言,包括C++、Python、Java等,其中Android平台的Java接口便于在Android应用中使用。 **二、Android Studio集成OpenCV** 1. **添加依赖**: 在Android Studio中,首先需要将OpenCV库添加到项目...

    react-native-0.69.1-release.aar

    7. **原生模块支持**:开发者可以通过编写Java或Kotlin代码创建原生模块,以便使用React Native无法直接支持的Android功能。 8. **更新机制**:React Native的更新机制允许开发者通过网络推送JS代码更新,而无需...

    lua集成到android里面

    Lua是一种轻量级的脚本...这种方式对于快速迭代、模块化开发尤其有利,同时也降低了对Android原生编程语言(如Java或Kotlin)的依赖。在游戏开发中,这种集成方式使得游戏逻辑可以独立于UI,便于团队协作和后期维护。

    Android仿墨迹天气应用源码

    7. **模块化与组件化**:大型应用通常会采用模块化和组件化设计,以便于代码管理和团队协作。源码可能展示了如何拆分功能模块,以及如何通过AAR包或者Gradle插件实现模块间的通信和依赖。 8. **测试与调试**:源码...

    Android应用源码之HoloGraphLibrary-master.rar

    《深入剖析Android HoloGraphLibrary源码》 ...通过对HoloGraphLibrary源码的深入研究,开发者不仅可以学习到Android图形编程的基础知识,还能掌握如何高效地实现图表组件,为自己的应用增添更多交互性和可视化效果。

Global site tag (gtag.js) - Google Analytics