Android Studio 打包及引用 AAR(可能是史上最详细的 )
https://www.jianshu.com/p/1777a634db5e
Android Library(AAR) 的好处
Android 库在结构上与 Android 应用模块相同。它可以提供构建应用所需的一切内容,包括源代码、资源文件和 Android 清单。不过,Android 库将编译到您可以用作 Android 应用模块依赖项的 Android 归档 (AAR) 文件,而不是在设备上运行的 APK。与 JAR 文件不同,AAR 文件可以包含 Android 资源和一个清单文件,这样,除了 Java 类与方法外,您还可以捆绑布局和可绘制对象等共享资源。
简单来说:
- *.jar:只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。
- *.aar:包含所有资源 ,class 以及 res 资源文件全部包含
库模块在以下情况下非常有用:
- 构建使用某些相同组件(例如 Activity、服务或 UI 布局)的多个应用。
- 构建存在多个 APK 变体(例如免费版本和付费版本)的应用并且需要在两种版本中使用相同的核心组件。
建立 AAR
- 新建 LibDemo(我没有找到直接建立 Library 的办法,有知道的请告知,谢谢),如果在已有 project 中增加 Library 则跳过本步骤

- 新建 Library
选择菜单File -> New -> New Module...
选中 Android Library 后点击
Next按钮
输入 Library Name 后点击
Finish按钮
这时文件结构如下图

增加测试 class

增加测试 resource

导出 AAR
打开 Gradle projects,依次展开 LibDemo -> LibDemo -> Tasks -> build,双击 assemble

这时打开文件夹 mykit -> build -> outputs -> aar,将看到自动生成的 mykit-debug.aar 和 mykit-release.aar

- 如果只想生成
mykit-release.aar,则双击assembleRelease
- 如果只想生成
mykit-debug.aar,则双击assembleDebug
其他 project 引用 AAR
建立 LibInvoke

- 打开文件夹
LibInvoke -> app -> libs,将之前生成的mykit-release.aar复制进来 - 打开 app 的
build.gradle,增加配置后点击Sync Now按钮
增加的配置如下:
repositories{
flatDir{
dirs 'libs'
}
}
compile(name:'mykit-release',ext:'aar')
使用 AAR 中的公共 class 和 String 资源

增强
AAR 中的所有资源在默认情况下均处于公开状态。要将所有资源隐式设为私有,您必须至少将一个特定的属性定义为公开。资源包括您项目的 res/ 目录中的所有文件,例如图像。在 AAR 的 res/values/ 目录中创建 public.xml 文件,增加需要公开的资源(不在文件中的资源将不公开)。
<resources>
<public name="hc_string" type="string"/>
</resources>

AAR 文件详解
AAR 文件的文件扩展名为 .aar,Maven 工件类型也应当是 aar。文件本身是一个包含以下强制性条目的 zip 文件:
- /AndroidManifest.xml
- /classes.jar
- /res/
- /R.txt
此外,AAR 文件可能包含以下可选条目中的一个或多个:
- /assets/
- /libs/名称.jar
- /jni/abi 名称/名称.so(其中 abi 名称 是 Android 支持的 ABI 之一)
- /proguard.txt
- /lint.jar
作者:起了
链接:https://www.jianshu.com/p/1777a634db5e
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
Android Studio 打包及引用 AAR(可能是史上最详细的 )的更多相关文章
- Android Studio 打包及引用 aar
Android Studio 打包及引用 aar 1. 简述 在比较大的 Android 项目的开发中,我们经常会遇到工程.jar 包等等之间相互引用的方式.一般我们通过在 gradle 文件中配置依 ...
- Android tips(八)-->Android Studio打包apk,aar,jar包
文本我们将讲解android studio打包apk,aar,jar包的相关知识.apk包就是android系统的安装包,这里没什么好说的,aar包是android中独有的类库包,而jar包是java ...
- Android Studio打包apk,aar,jar包
转载请标明出处:一片枫叶的专栏 文本我们将讲解android studio打包apk,aar,jar包的相关知识.apk包就是android系统的安装包,这里没什么好说的,aar包是android中独 ...
- android studio开发工具的android library打包文件(.aar)本地引用
by 蔡建良 2014-5-13 关键点: 利用Gradle发布本地maven库支持android library 打包文件(*.aar) 的本地引用 开发环境: windows7 64位操作系统 a ...
- Android Studio多Module使用 aar 依赖包 丢包解决
FAQ: AAR打包引用丢包问题, jar, aar, dependency 嵌套层级依赖的丢失 问: aar包中,如何包含第三方依赖库? 如果直接作为module 依赖是没有问题的,但是如果打包成a ...
- Android Studio(九):引用jar及so文件
Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...
- eclipse 和 android studio 打包签名apk问题
首先,我使用eclipse打包了一个签名apk 然后,我使用同一个签名文件在android studio 打包同一个项目 接下来,首先安装eclipse 打包的apk,然后安装android stud ...
- Android Studio打包未签名包
Android Studio打包未签名包 好久没有写技术博客了,真有点懈怠了,作为35岁的程序员,转行重新捡起这些知识,还是挺犹豫纠结的,不过没啥其它办法,一点一滴开始吧,今天这开篇就小结点前几天工作 ...
- Android Studio 打包时 Signature Version 选择V1还是V2 ?
只勾选V2会导致 7.0 以下的安卓机出现 INSTALL_PARSE_FAILED_NO_CERTIFICATES 的问题 ,推荐全选. 解决方案一v1和v2的签名使用1)只勾选v1签名并不会影响什 ...
随机推荐
- Oracle数据库的数据导入导出
--备份数据库--数据库系统用户账号system/adminuser --查看oracle数据库的用户select * from all_users;--查看oracle数据库的版本号select * ...
- spring与memcached整合[转]
1, 开始肯定是下载需要的文件了,这里就下载附件里的文件就好,我也是在网上down的,放这好找.然后我们安装一下Memcache服务器,找到解压的memcached-1.2.1-win32,启动cmd ...
- http客户端-基于boost开发
http客户端-基于boost开发 基于BOOST编写的http客户端,作为BOOST开发学习之用.目前支持功能: http协议,单向链接返回http response code 200 可conte ...
- 手把手教你用Vue2+webpack+node开发一个H5 app
手把手教你用Vue2+webpack+node开发一个H5 app 前一篇vue2 + webpack + node 开发一个小demo说到了用vue的一些基本用法,这一篇就讲一个复杂一点的更完整的 ...
- shell read
#!/bin/bash read -p "Enter your account:" acct #提示用户输入用户名read -s -p "Enter your passw ...
- stringToDateUtils 字符串转化日期
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...
- @ResponseBody与@RestController的作用与区别
在使用springmvc框架的时候,在处理json的时候需要用到spring框架特有的注解@ResponseBody或者@RestController注解,这两个注解都会处理返回的数据格式,使用了该类 ...
- IOS-环信
一.即时通讯 即时通讯,又称实时通讯 即时通信(Instant Messaging,简称IM)是一个实时通信系统,允许两人或多人使用网络实时的传递文字消息.文件.语音与视频交流 即时通讯在开发中使用的 ...
- 【spark】文件读写和JSON数据解析
1.读文件 通过 sc.textFile(“file://") 方法来读取文件到rdd中. val lines = sc.textFile("file://")//文件地 ...
- 【.Net】Socket小示例
引言 项目中用到了Socket,这里做个控制台小示例记录一下. Client 客户端的Receive用了异步方法,保持长连接,可以随时发送消息和响应服务端的消息,如下 static string Cl ...









