Android aar 打包事项

news2025/8/12 18:31:32

我们在开发中难免会遇到把现有的module变成库文件SDK的情况,aar包中不仅可以包含代码,也可以包含资源文件,是一种常用的库文件方式。打包的事项主要有以下几点:

  1. 在root project工程下的build.gradle文件中引入"com.kezong:fat-aar:1.3.3"

    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.3'
        classpath "com.kezong:fat-aar:1.3.3"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

引入这个库文件的作用,就是为了让我们打出的aar包中,自动包含module所依赖的其他三方库文件。

  1. 在需要打包的module中build.gradle文件中添加
plugins {
    id 'com.android.library'
    id 'com.kezong.fat-aar'
}

'com.android.library’表示这个module的产物是一个库文件;
'com.kezong.fat-aar’表示产物aar包会包含module依赖的库。

  1. 还是在module中build.gradle文件中添加
android.libraryVariants.all{ variant ->
        variant.outputs.all{
            def fileName = "demo-sdk-${defaultConfig.versionName}.${defaultConfig.versionCode}-${buildType.name}.aar"
            outputFileName = fileName
        }
    }

这会根据versionName和versionCode去生成aar的名字,便于区分版本。

  1. 还是在module中build.gradle文件中,如果有引入第三方的库文件时,一定要用embed关键字引入
    dependencies {
        embed(name:"navi-service-sdk-6.0.1-debug",ext:'aar')
        implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
        implementation 'androidx.appcompat:appcompat:1.2.0'
        implementation 'com.google.android.material:material:1.3.0'
        testImplementation 'junit:junit:4.+'
        androidTestImplementation 'androidx.test.ext:junit:1.1.2'
        androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
    }

当然,第三方库文件是需要放在lib文件夹下的

  1. 在Android Studio的右上角Gradle选项中,选择对应的Module -> Tasks -> build -> assemble,点击assemble就开始了aar包的构建,最后在工程目录对应的Module build目录下便可以找到我们需要的aar包。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/15065.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自动驾驶入门:规划

目录 概念 基本原理 将地图转化为数据结构图 路径查找算法 A* A*在现实中的应用 地图级轨迹生成 Frenet 坐标系 速度- 路径解耦规划 路径生成与选择 ST图 速度规划 优化 路径-速度规划的轨迹生成 Lattice规划 ST轨迹的终止状态 SL轨迹的终止状态 Lattice规划的…

JVM——虚拟机类加载机制

类加载时机 加载loading 加载.class文件的方法 类连接阶段 验证阶段 准备阶段 解析阶段 初始化 简而言之,为类的静态变量赋予正确的初始值。如果前面的步骤都没有问题,那么表示类可以顺利装载到系统中,此时才会开始执行Java字节码。即&…

微信小程序 python电影票务系统-nodejs电影票预订系统

目 录 1绪论 1 1.1项目研究的背景 1 1.2开发意义 1 1.3项目研究现状及内容 5 1.4论文结构 5 2开发技术介绍 7 2.1 B/S架构 7 2.2 MySQL 介绍 7 2.3 MySQL环境配置 7 2.4 Java语言简介 8 2.5微信小程序技术 8 3系统分析 9 3.1可行性分析 9 3.1.1技术可行性 9 3.1.2经济可行性 9 …

沉睡者IT - 听我给你科普什么是WEB3.0?

推荐关注新博主,点击上面关注吧 ↑↑ 不出意外的话,今年下半年最火的概念大概率是web三点零了。 如果说去年元宇宙霸占了科技和金融圈的榜一的话,今年的榜一估计会变成web三点零。 什么是web三点零? 真的没有那么玄乎啊&#xf…

木马特征值免杀

文章目录木马特征值免杀一. 木马特征值免杀0x01. 灰鸽子配置生成木马0x02. 使用MyCCL复合特征码定位器反复缩小目标进行定位0x03. 直到定位到很小的区间0x04. 用工具将文件偏移地址0009B9C3转换成内存地址0049C5C30x05. 使用OD跳转特征值语句的执行顺序以实现免杀0x06. 将修改后…

微信录屏怎么录?微信聊天记录怎么录制下来

微信作为我们日常使用的沟通工具,里面保留着许多的信息。在有些时候,我们可能会遇到需要用录屏功能,将微信里的信息分享出去的场景。可是微信自身是不带录屏功能的,微信录屏怎么录?我们究竟要怎么将信息给录制下来呢&a…

万字博客带你了解Spring Framework 的全貌

1.写在前面 我之前出过一个系列介绍的是spring的源码的系列,但是由于当时个人的水平有限,有些地方介绍的也是模棱两可的,打算重启这块内容,上次只是介绍其中的一部分,例如国际化,事件等等这块的源码都没有…

IC设计职位介绍|如何成为一名合格的数字前端设计工程师?

近年来IC行业火热,但因为一些原因,今年以来行业唱衰的人越来越多。尽管全球芯片市场过剩,但我国的半导体行业发展很可观,目前政策倾向国产芯片的发展,所以半导体人才非常稀缺。我国半导体产业终究要崛起,因…

js逆向基础篇-某电商网站-xx街

提示!本文章仅供学习交流,严禁用于任何商业和非法用途,如有侵权,可联系本文作者删除! 网站链接:aHR0cHM6Ly9tLm1vZ3UuY29tLw== 案例分析: 本文分析的参数为下图中圈出来的: 直接复制参数名mw-sign,然后Ctrl+Shift+F打开全局搜索,之后将参数名复制到搜索栏,然后回车…

深入讲解Linux上TCP的几个内核参数调优

生产内核(production kernel):产品或者线上服务器当前运行的内核。 捕获内核(capture kernel):系统崩溃时,使用kexec启动的内核,该内核用于捕获生产内核当前内存中的运行状态和数据…

收藏10000+,网络安全行业应该考哪些证?

证书是网安从业者知识水平能力的一个体现,考证同时也是拓展自身知识的一个方法。事实证明,有相关证书会让你的职业生涯锦上添花。 市面上的安全证书是非常多的,从大的角度来讲可以分为国际证书和国内证书两大类,国际证书简单来…

抖店订单发货回传的实际开发笔记

目录 前言 一、订单发货接口 二、商家对接接口步骤 1.业务逻辑分析 2.业务逻辑代码 总结 前言 主要是以前有对接过抖店开放平台,所以现在想要记录一下,做一个笔记,好好归纳一下,当时对接订单发货接口,是怎么实现的…

使用pip安装模块时,提示MemoryError

在使用pip安装依赖模块时,报错如下: 解决方法: 添加 --no-cache-dir参数 pip3 --no-cache-dir install -r *** 安装时遇到的其他问题: 设置python源命令: pip3 config set global.index-url https://pypi.tuna.tsing…

老K,硬核“锅”气

把一个有社会价值的事情,经过持续地思考和行动做成第一,并产生商业价值。之前,老K是这么做的; 现在“硬科技 + Food”就是老K新的选择与坚守。 作者|皮爷 出品|产业家 最近一年,一级市场交投清淡&…

SpringMVC学习篇(十一)

SpringMVC文件上传(普通版) 1 准备工作 1.1 导入文件上传需要的依赖 <dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.4</version> </dependency>1.2 在springM…

5G无线技术基础自学系列 | 物理下行共享信道

素材来源&#xff1a;《5G无线网络优化实践》 一边学习一边整理内容&#xff0c;并与大家分享&#xff0c;侵权即删&#xff0c;谢谢支持&#xff01; 附上汇总贴&#xff1a;5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 NR PDSCH采用OFDM符号调制方式&#xff0…

构建有效和安全的远程工作模式

IDSA的一项研究发现&#xff0c;79%的企业遭受了与身份相关的违规行为。在 ManageEngine&#xff0c;我们了解身份对企业组织的整体安全状况的重要性。在这个身份安全周&#xff0c;我们准备了一系列文章来传播身份安全重要性以及哪些简单措施可以帮助提高企业组织对身份安全的…

【node进阶】深入浅出websocket即时通讯(一)

✅ 作者简介&#xff1a;一名普通本科大三的学生&#xff0c;致力于提高前端开发能力 ✨ 个人主页&#xff1a;前端小白在前进的主页 &#x1f525; 系列专栏 &#xff1a; node.js学习专栏 ⭐️ 个人社区 : 个人交流社区 &#x1f340; 学习格言: ☀️ 打不倒你的会使你更强&a…

游戏黑卡代充36技术及库存系统案例分析

黑卡充值常隐匿于「代充」服务中&#xff0c;且形式多变&#xff0c;从外币汇率差、退款到36漏洞、黑卡/盗刷信用卡充值&#xff0c;甚至还出现了专门的库存系统。 「36漏洞」是利用iOS小额支付漏洞实现的刷单套利业务。苹果为提高用户体验&#xff0c;在 APP Store 购买商品时…

【Hack The Box】linux练习-- Sunday

HTB 学习笔记 【Hack The Box】linux练习-- Sunday &#x1f525;系列专栏&#xff1a;Hack The Box &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4c6;首发时间&#xff1a;&#x1f334;2022年11月17日&#x1f334; &#x1f3…