赞
踩
今天包含以下几点:
- aar 文件简介
- 生成方法
- 向工程中添加依赖的方法(即让Android Studio认出aar的方法)
- 调用方法
相信大家在做项目的时候,都会用到一些依赖包,最常见的就是jar包(当然指的是在安卓开发过程中),其实还有一种包,扩展名为aar。
那么,这两种依赖包有什么区别呢,又有什么优缺点呢?
其实,二者的功能基本是一样的,只不过,在*.aar 的新特性中,有这样的特点:
aar可以包含资源文件(也就是drawable啊、layout之类的),那么问题来了,为什么要把资源文件也放进来?
其实我个人理解,这个在做自定义控件的时候是非常方便的,在当前项目或者以后项目都可以复用。
假如使用了一些资源文件,那么这些资源文件又是相对固定的,那么封装成*.aar就有用了。
而代码文件编译后压缩在在classes.jar 中。
例如,我做了一个自定义标题栏,布局文件我想要做成水平的三段式,即:
ImageView-TextView-ImageView,这个布局我就可以写在module中,封装成依赖包aar方便以后接着用。
要输出 aar 文件,必须将 Module 配置为 library,在 gradle 文件中如下:
Moduled中的build.gradle文件的第一行参数:
①输出aar,即想生成aar就在这里把Mudule配置为library
apply plugin: 'com.android.library'
②生成apk
apply plugin: 'com.android.application'
比如对BuildType 为debug 的配置,输出为:[ModuleName]/build/outputs/aar/[ModuleName]-debug.aar。
如果是把普通的工程转化成依赖包的话,还需要删除:
applicationId "com.***"
①.在当前需要添加依赖的项目中找到build.gradle(Module:app)
我们找到buildTypes{…}这一块,在这段的下方另起一行,添加:
repositories {
flatDir {
dirs 'libs' //this way we can find the .aar file in libs folder
}
}
即告诉IDE,依赖是在libs目录下的~
然后在依赖(dependencies)中添加你的aar,例如我写了一个自定义控件,生成之后为
groupviewlayout-debug.aar,即可在其中加上:
compile(name: 'groupviewlayout-debug', ext: 'aar')
到此,需要更改的配置就完成了,只需再点击下右上角出现的sync Now即可更新Gradle配置啦!。
调用方法与jar文件一样,只需导入包名即可调用里面的函数或者控件之类的。
例如,我之前测试的时候写了一个自定义标题栏mytitlebar.aar,
在module中的包名为:
com.example.kenjc.mytitlebar
添加依赖后,在当前项目中的布局添加控件:
<com.example.kenjc.mytitlebar.MyTitleBar
android:layout_width="match_parent"
android:layout_height="66dp"
android:id="@+id/topbar"
android:background="@color/colorWhite"
custom:leftBackground="@mipmap/scissors_icon"
custom:rightBackground="@drawable/right_button_selector"
custom:titleText="xxx"
custom:titleText_Color="#000"
custom:titleText_Size="6sp" />
即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。