Android aar 和 jar 区别
Android Studio中对一个自己库进行生成操作时将会同时生成*.jar与*.aar文件
分别存储位置:
*.jar:库/build/intermediates/bundles/debug(release)/classes.jar
*.aar:库/build/outputs/aar/libraryname.aar
jar 和 aar 联系
arr能带资源文件,jar不能带资源
二者都是lib库文件,能被其他工程所引用
jar 和 aar 区别
*.jar:只包含了class文件与清单文件,不包含资源文件,如图片,字体等所有res中的文件。
*.aar:包含所有资源,class以及res的全部资源文件
如果你只是一个简单的类库,那么使用生成的*.jar文件即可;
如果你的是一个UI库,包含一些自己写的控件布局文件,图片,字体等资源文件,那么就只能使用*.aar文件。
jar 使用方式
*.jar:拷贝到:libs目录,eclipse直接导入即可,Android Studio项目中添加:
dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') }
重新编译一次项目既可完成加载。
aar 使用方式
*.aar:有两种方式,分别为本地加载以及网络加载,由于网络加载涉及到发布到maven Central托管的问题这里不做讨论;另外eclipse很久没有使用了也不做讨论;在这里给大家说一种本地加载的方式,简单快捷。
这里演示的aar文件为:”genius.aar“
第一步:拷贝到 libs目录
第二步:build.gradle 配置文件中更改为
repositories { flatDir { dirs 'libs' } } dependencies { compile(name:'genius', ext:'aar') }
分别添加了”repositories“与更改了”dependencies“,然后重新编译一次项目就可以正常使用了。
这时打开你的项目地址”\build\intermediates\exploded-aar\“你会发现下面多了一个文件夹”genius“打开后能看见里边包含了一个”classes.jar“文件与一些资源文件和”R.txt“文件。
这就是Android Studio自动解析了aar文件后出现的东西。
Android Studio引入aar包接入方式
1..File —> New —> New Module —> Import .JAR/.AAR Package
2.Open Module Settings—>Dependencies 添加依赖
完成aar包的引入
Android Eclipse 开发如何 使用 (*.aar)文件
1. (*.aar)几乎是Android Studio的东西,所以你要用eclipse来使用基于“IntelliJ IDEA”的Android Studio,必须要了解这个玩意里面是什么!
2. 说退一万步,既然Android Studio使用的(*.aar),你就好好的去学使用Android Studio,为何要使用eclipse 来弄这(*.aar)呢?
3. 什么?因为github的开源项目用 “Gradle ” 构建项目来依赖这些包 (*.aar)。
4. Android Studio本来就用Gradle ,所以直接github的URL一导入,花上一两分钟就能跑起项目了。
哎,没有办法了。看来eclipse以后都不知道怎么怎么办。(如果新开的Android项目的话,要大力建议使用Android Studio,毕竟别人github上的大牛都用Gradle 了,更别说Android Studio)
看完上面的吐槽,还想自找麻烦使用Eclipse 使用 (*.aar)包的话,就继续看下面吧。
前提:假设 (*.aar)的包是从“%ANDROID_HOME%\extras\android\m2repository” 中的 v4 或者 v7中获取到的。
什么? 你的SDK没有 更新到“ m2repository ”文件夹 或者 “被大天朝拦住网络无法更新”。
好吧!你赢了,你去看 android SDK下载失败和更新方法 这篇吧。
更新完你的SDK再回来看吧。
其实我还没有用Android Studio时,在eclipse开发时,都是没有更新到“m2repository ”文件夹
更新完后如图:
言归正传
1. 我们以appcompat-v7来举例吧,又什么你不知道appcompat-v7有什么?
请看这篇吧: Android UI开发第三十五篇——AppCompat实现Action Bar
2. 我们看到下面的图片的文件,就看到客官们的的(*.arr)文件了
3. 我们直接双击看里面是什么?
如图,里面有一个jar,和其他类似在Eclipse的工作目录,例如res,assets,AndroidManifest.xml这些文件
4. 如果这样的话,我们是否可以考虑当这个(*.arr) 里面的res, assets, AndroidManifest.xml是一个在eclipse中的Android 的 libs项目的文件,复制过去后再把这个项目声明为libs
5. 然后在你想要使用的项目中导入你的class.jar(当然,你需要改变成相应的名字,如果你不改我也耐不了你如何)
6. 现在你再引入刚才的libs项目,再启动一下你的项目。(如果你没有引入刚才的libs项目,估计只加入jar的话,肯定会报找不到某资源的异常)。
经过这六步,你还感觉用eclipse来导(*.arr)使用不麻烦的话。我只能说。你赢了。
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2018-09-20 16:11:38
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!