android 创建aar包

news2024/11/15 21:49:16

1. 背景

        由于新入职公司在做硬件接入的项目,需要接入多款硬件,而且,几个app的功能不太一样。于是,需要模块化开发,并且许多东西都是可以复用的(像网络框架、log、shareprefrence、权限申请等)。因此这里总结一下aar的创建和引用。

2.aar创建

1. 创建普通项目

        由于各个项目都要引用这个aar,所以建议直接新建一个项目,然后生成aar,在各个项目中直接引用。

        选择“add no activity”,点击next,

         在配置项目界面设置包名、项目名等。

         点击finish,完成项目创建。这一步就是正常创建项目,没啥可说的。

2. 将普通项目改为aar项目

这一步也很简单,也就几步操作的事。

        首先是修改apply plugin:将        apply plugin: 'com.android.application’

修改成        apply plugin: ‘com.android.library’ ,如下

(目录在app的bulid.gradle)

然后就是将  applicationId 这一行注释掉,如下:

(目录任然是app的bulid.gradle)

         接着修改清单配置文件:application,具体来说:修改 application 属性:

         还有就是如果上面创建项目时,没有选择“add no activity”,那在这里要把“main”申明去掉,如下:

 到这里修改基本完成。

3. 打包aar包,共其他项目引用。

        这里也分debug.aar和release.aar。

需要打debug包:直接点击“build”,选择“ Make Module 'app' ”,等待编译完成,即可在build目录下看到aar包(具体目录为:你的项目目录\app\build\outputs\aar)

需要打release包:gradle界面,选择当前项目——>Tasks——>build,双击“assembleRelease”,

等待编译完成,即可在build目录里下看到aar包。

备注:这里有的在build中找不到assembleRelease,那可以到其他中找找。

3.aar引用

引用分两步

1. 将打包好的aar复制到你的项目的“libs”中

2. 在 appbulid.gradle 中加入依赖:

implementation(name: 'app-debug', ext: 'aar'),其中:app-debug为你打包好的aar包的名称。

4. 需要注意项

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

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

相关文章

嵌入式HLS 案例开发步骤分享——Zynq-7010/20工业开发板(1)

目 录 前 言 3 1 HLS 开发流程说明 5 1.1 HLS 工程导入 5 1.2 编译与仿真 6 1.3 综合 8 1.4 IP 核封装 10 1.5 IP 核测试 14 前 言 本文主要介绍 HLS 案例的使用说明,适用开发环境: Windows 7/10 64bit、Xilinx Vivado 2017.4 、Xilinx Vivado HLS 2017.4 、Xilinx…

数据结构|排序算法详解

​​​​​​​目录 一.插入类 1.直接插入排序 2.希尔排序 二.选择类,排一次选出一个最值 1.选择排序 2.堆排序 三.交换类,通过一直交换一次确定数字的位置 1.冒泡排序 2.快速排序 2.1 hoare版本 2.2挖坑法 2.3前后指针法 四.归并类 1.归并…

Go第 5 章:程序流程控制

第五章程序流程控制 5.1程序流程控制介绍 在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控 制语句。 1)顺序控制 2)分支控制 3)循环控制 5.2 顺序控制 程序从上到下逐行地执行,中间没有任…

C++标准库的智能指针:shared_ptr、weak_ptr和unique_ptr

文章目录智能指针shared_ptr模版类week_ptr模版类unique_ptrC中是没有内存回收机制的,我在之前的一篇文章中提到使用指针的一些基本方法。C在std标准库中也提供了三种封装过的指针模版类,称作为智能指针:shared_ptrunique_ptrweek_ptr 我这里…

JVM性能调优详解

前面我们学习了整个JVM系列,最终目标的不仅仅是了解JVM的基础知识,也是为了进行JVM性能调优做准备。这篇文章带领大家学习JVM性能调优的知识。 性能调优 性能调优包含多个层次,比如:架构调优、代码调优、JVM调优、数据库调优、操…

最优二叉树(哈夫曼树)

一、最优二叉树 1、定义 官方定义:在权值为w1,w2,…,wn的 n个叶子所构成的所有二叉树中,带权路径长度最小(即代价最小)的二叉树称为最优二叉树或哈夫曼树。 通俗来讲,就是给定N个权值作为N个叶子结点&…

仿牛客论坛项目总结

一.数据库中每一张表有哪些字段 user表 用户表 (1)id 用户的id (2) username 用户名 (3)password 密码 (4)salt 盐 (5)emai邮箱 (6&…

PAT甲级1008 Elevator C++/C语言

1008 Elevator 分数 20 作者 CHEN, Yue 单位 浙江大学 The highest building in our city has only one elevator. A request list is made up with N positive numbers. The numbers denote at which floors the elevator will stop, in specified order. It costs 6 seconds …

联邦学习将如何影响您的日常生活?

人工智能 (AI) 被认为是下一次工业革命的最大创新之一,其中包括机器学习。另一方面,随着原油和电力成为现代工业的基础资源,数据成为人工智能和机器学习的关键要素。 数据隐私与需求之间的冲突 训练的数据样本的大小决定了可用于增强 AI 性能…

CPT203-Software Engineering(2)

文章目录5. Scrum Framework5.1 Scrum Roles5.2 Scrum Activities and Artifacts6. Requirements Engineering6.1 User requirements and system requirements6.2 Functional & Non-functional requirements6.2.1 Functional requirements6.2.2 Non-functional requirement…

第一章:C++算法基础之基础算法

系列文章目录 文章目录系列文章目录前言一、排序(1)快速排序核心思想思路分析模板(2)归并排序核心思想思路分析模板稳定性时间复杂度二分查找(1)整数二分核心思想思路分析模板(2)浮点…

jetson nano系统引导安装(无外设安装方式)

文章目录一.硬件设置二.系统设置一.硬件设置 插入烧写好系统的SD卡将micro USB线接到jetson nano上,另一端USB A接到电脑上为jetson nano插入电源,开机等待电脑检测到如下盘符说明jetson nano连接成功 二.系统设置 进入电脑的设备管理器,查…

【linux】三种权限的使用和更改、粘滞位和yum的使用

目录 1.权限问题 ①什么是权限? ②小问题 ③默认权限 ④如何更改“人”的权限呢? ⑤更改权限的八进制方案 ⑥强制改权限里的“人”(权限人文件属性) 2.粘滞位 2.yum的使用 1.权限问题 ①什么是权限? 权限人&a…

HTTP协议解析

HTTP概述 HTTP (全称为 "超文本传输协议") 是一种应用非常广泛的应用层协议~~我们平时打开一个网站, 就是通过 HTTP 协议来传输数据的。 HTTP工作过程: 当我们在浏览器中输入一个 "网址",此时浏览器就会给对应的服务器发送一个 H…

CTF中的PHP特性函数(上)

前言 对于PHP大家一定不陌生,但你知道PHP在CTF中是如何考察的吗,本文给大家带来的是通过PHP特性来进行CTF比赛中解题出题的知识,会介绍一下CTF中常见的php特性以及围绕该知识点的相关案例,因为内容过多这里分成上中下三篇来讲&am…

操作系统的特征

文章目录🎀前言:本篇博客知识总览🍔并发🎇概念:🍔共享🎇概念:🍔虚拟🎇概念:🍔异步🎇概念:🏳️‍&a…

ThinkPHP 多应用模式之Api路由分组+中间件

ThinkPHP 6.1 在多应用模式下实现API路由分组中间件验证业务 目录 1.创建中间件文件 2.迁移中间件到子应用目录中 3.编辑中间件验证业务 修改命名空间 编写handle处理代码 4.注册中间件 编辑中间件文件 TP内置中间件 5.设置路由分组 优化相同控制器前缀 最终效果&am…

【信息论与编码 沈连丰】第六章:连续信息和连续信道

【信息论与编码 沈连丰】第六章:连续信息和连续信道第六章 连续信息和连续信道6.1 连续消息的信息6.2 连续消息在信道上的传输问题6.3 香农信道容量公式6.4 连续消息的识别和理想接收机6.5 连续信源的数字处理及其编码第六章 连续信息和连续信道 6.1 连续消息的信息…

在 KubeSphere 上部署 OpenLDAP 并进行对接使用

在 KubeSphere 上部署 OpenLDAP 并进行对接-进阶背景前置条件KubeSphere 中部署 LDAP部署 LDAP 应用ApacheDirectoryStudio 验证 LDAP下载部署 ApacheDirectoryStudioApacheDirectoryStudio 测试 LDAP创建 Ldap Search ,KS 对接时可选择使用KubeSphere 对接 LDAPHar…

【区块链 | EVM】深入理解学习EVM - 深入Solidity数据存储位置:内存

图片来源: Mech Mind on Unsplash 这是深入Solidity数据存储位置系列的另一篇。在今天的文章中,我们将学习EVM内存的布局,它的保留空间,空闲内存指针,如何使用memory引用来读写内存,以及使用内存时的常规最佳做法。 我们将使用 Ethereum Name Service (ENS)中的合约代码…