AndroidStudio创建Library并打包aar

QuibblerQuibbler 2021-01-26 约 5 分钟 2016 次阅读

AndroidStudio创建Library并打包aar

开发中常常使用第三方的库,Java开发常常使用 .jar包,而Android使用的是aar包。看看如何创建Library项目如何创建,以及aar是如何打包。

不同于普通的App项目,aar是Android中的Library。

1、创建Android Library项目

         File > New > New Project新建项目,由于没有Android Library选项,我们这里选择No Activity创建一个新的项目,后面再修改一下配置。这里用的最新版本4.0.2已经没有单独的Android Library选项,不知道是不是新版AndroidStudio的bug,这种情况太常见了。


两种途径将当前项目切换为Android Library库项目。

1.1、修改Modules配置

按普通APP项目新建一个工程,按 F4 打开Project Structure > Modules。点击 - 删除默认的app配置。


点击 + 新建模块配置,在这里可以找到新建项目列表中遗失的Android Library选项:


配置aar库的名称,语言,最小支持API版本。


1.2、修改build.gradle配置

当然也可以直接在build.gradle里修改配置模块是application还是library。build.gradle中第一行改成library。

apply plugin: 'com.android.library'

App模块是application:

apply plugin: 'com.android.application'

修改完之后Sync同步一下即可。

2、生成aar包

和编译Apk不同,只要编译一下即可:Build菜单中Make Project或者Make Module。这里还涉及到其它一些知识,比如混淆、压缩等等。

在目录build/outputs/aar/下生成aar文件,拷贝出来使用或者发布到Maven服务器上。

3、使用aar包

开发中使用第三方aar包有两种方式。

3.1、直接用aar包

①将第三方aar库拷贝到项目的libs目录下,在build.gradle中添加下面两行,会将该目下的所有jar包和aar库添加到项目依赖中

implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation fileTree(dir: "libs", include: ["*.aar"])

②或者使用下面的方式,添加指定的aar包,而不是把libs目录下的全部添加到项目依赖中:

repositories {
        flatDir {
            dirs 'libs'
        }
    }
    
    dependencies {
        implementation(name: 'aar包名', ext: 'aar')
        ...
    }

3.2、使用Maven下载依赖

直接从maven()下载,上面那种拷贝aar包,再修改build.gradle比较麻烦。最省事的还是直接一句话搞定,将第三方库添加到项目中。gradle会从maven()或jcenter()查找下载库,国内下载慢的可以修改仓库地址,详见Gradle依赖库下载慢的解决办法。

implementation 'cn.quibbler.clock:1.0.0'

那么如何将自己写的库发布到maven让其他开发者使用呢?让我们更进一步探索。


相关博客:

        Maven 生成本地 aar及使用本地 aar 的方法

        Android studio 打包aar库

        

相关推荐

精选
Airbnb开源项目
开源

Airbnb开源项目

Airbnb Engineering & Data ScienceAirflow Use Apache Airflow (incubating) to author workflows as directed acyclic graphs (DAGs) of tasks12,263Airpal Web UI for PrestoDB2,502Aerosolve A machine learning

1.8k
OkHttp线程池和连接池
开源

OkHttp线程池和连接池

OkHttp线程池和连接池了解了OkHttp的网络请求流程以及拦截器实现原理,再关注OkHttp中两个重要的:OkHttp的线程池和连接池。1、OkHttp线程池在OkHttp网络请求流程一文中,我们分析了OkHttp异步和同步请求流程。请求最后都在Dispatcher中分发调度处理,最后被ExecutorService执行。1.1、DispatcherDispatcher中执行任务的执行器是ex

5.2k
优美的开源动效库:Lottie
开源

优美的开源动效库:Lottie

优美的开源动效库:Lottie1、强大的动效LottieLottie是一个适用于Android,iOS,Web和Windows的库,它可以使用Bodymovin解析以json格式导出的Adobe After Effects动画,并在移动设备和Web上原生渲染它们!GitHub:https://github.com/airbnb/lottie-androidLottie官网:http://airbn

4.3k