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签名并不会影响什 ...
随机推荐
- docker 在windows上的使用
Docker ToolBox 安装 1.首先,安装Docker ToolBox,其中包含了Docker三剑客: docker , docker-machine 和 docker-compose . 安 ...
- Linux系统下修改IP地址、网关、DNS的基本方法
临时修改IP地址.网关.主机名.DNS,马上生效,无需重启(重启后失效) 1.修改主机名 #hostname Slyar 2.修改IP地址(eth0为网卡名称) #ifconfig eth0 192. ...
- bootstrap正则表达式验证手机 座机 邮箱
$('#CusForm').bootstrapValidator({ fields : { //验证手机 'customer.mobile' : { //input中的name 值 validator ...
- Dev控件-gridview的属性说明
说明 Options OptionsBehavior 视图的行为选项 AllowIncrementalSearch 允许用户通过输入想得到的列值来定位行 AllowPartialRedrawOnScr ...
- Minimum Window Substring, 包含子串的最小窗口,双指针
问题描述:给定字符串S,子串T,求S中包含T的最小窗口 Given a string S and a string T, find the minimum window in S which will ...
- Java条件语句之 if
生活中,我们经常需要先做判断,然后才决定是否要做某件事情.例如,如果考试成绩大于 90 分,则奖励一个 IPHONE 5S .对于这种“需要先判断条件,条件满足后才执行的情况”,就可以使用if 条件语 ...
- cmake手册
cmake手册 部分转载自:http://www.cnblogs.com/coderfenghc/tag/cmake/ CMake2.8.3 主索引 命令名称 用法 描述 命令选项 生成器 命令 属性 ...
- 'yii\base\InvalidRouteException' with message 'Unable to resolve the request "site/error".'
引用:http://www.linuxidc.com/Linux/2015-02/114116.htm Yii2高级版本复制新项目会遇到下面的报错信息: exception 'yii\base\Inv ...
- [转]linux将一个服务器上的文件或者文件夹复制到另一台服务器上
本文转载自<linux 将一个服务器上的文件或者文件夹复制到另一台服务器上>,有时间实践一把 使用scp将一个Linux系统中的文件或文件夹复制到另一台Linux服务器上 复制文件或文件夹 ...
- 18-THREE.JS 基本材质
<!DOCTYPE html> <html> <head> <title></title> <script src="htt ...









