源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

AndroidStudio 如何使用aar详解

  • 时间:2022-11-26 06:50 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:AndroidStudio 如何使用aar详解
[b]一. 简介[/b] aar 是一个类似于 jar 的文件格式。但是他们之间是有区别的。 jar :仅仅包含class和清单文件,没有资源文件。 aar :包含了class文件和资源文件。说白了就是Android的专属“jar” 将代码打包成aar文件,可以在一定程度上加快 AndroidStudio 的速度。 尤其是将 Module 打包成 aar 文件,提升的效果很显著。 [b]二. 如何得到aar[/b] 1. Module的aar文件 将一个AndroidStudio项目中的 Module 打包成 aar 其实很简单。 在每一个 Module 的目录下面都会有这样一个文件夹: build\outputs\aar 。 这个文件夹下面就放着这个 Module 对应的 aar 文件。 一般情况下会有两个 aar 文件,一个 debug 版本,一个 release 版本。 我们选择 release 的就ok。 [img]http://files.jb51.net/file_images/article/201609/20169891857488.png?20168891920[/img] AAR文件图示 [b]注意:[/b] 新建的Module是没有这个文件夹的。这时,你可以使用 两种方法 生成这个文件夹 将整个项目运行一遍,这个文件夹会自动生成 执行命令 ./gradlew assembleRelease 也可以生成这个文件夹 [b]2. 远程仓库的aar[/b] 在项目里面经常会引用一下远程仓库的依赖库。 这时,我们也可以将它以 aar 的形式引入到项目中。 这个依赖库的aar其实也很好找。 当你配置好一个依赖库以后,点击 Sync Now 。 AndroidStudio会自动下载这个库到C盘(windows)。你找到这个文件就可以了。 这里我使用的是 Everything 进行搜索,很方便就找到这个库的下载文件夹。其他操作系统就自行搜索吧,总之找见这个项目的下载文件夹就ok。 这个下载文件夹中包含了这个项目所需要的所有东西:包括 aar 、 jar 等文件。 后面会以一个例子详细讲解这个过程 [b]注:[/b] Everything是一个搜索软件,可以瞬间搜索全盘。 是一个非常实用的软件。但是很可惜只有windows版本。 官网地址: [url=https://www.voidtools.com/]https://www.voidtools.com/[/url] [b]三. 如何使用aar[/b] 想要使用aar文件,需要经过以下几步: [b]1. 在app的build.gradle中加入以下配置[/b]
repositories { 
 flatDir { 
 dirs 'libs' // aar目录
 }
}
[b]2. 将aar文件拷贝到app/libs目录下[/b] [b]3. 在dependencies中加入aar引用[/b] compile(name: 'zbar-release', ext: 'aar') [b]四. LeakCanary项目示例[/b] 因为Module的例子比较简单,所以选择远程代码库作为示例。 这里使用一个经常使用的内存检测项目 LeakCanary 来做一个示例。 我们通常使用依赖来使用这个库: debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3' releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3' 当 Sync Now 完成后,我们可以在C盘(windows)找见这个项目文件夹。 该项目文件夹截图如下: [img]http://files.jb51.net/file_images/article/201609/20169892113877.png?20168892132[/img] LeakCanary项目示例图 这个文件夹下面就有我们需要的两个依赖库: leakcanary-android 和 leakcanary-android-no-op 点开 leakcanary-android文件夹 ,目录结构如下( 1.3是对应的版本号 ): [img]http://files.jb51.net/file_images/article/201609/20169892154712.png?2016889227[/img] leakcanary-android文件夹 打开最里层的文件夹,你会发现文件的类型主要有三种: [list=1] [*]jar文件 :有的项目是以jar文件形式提供[/*] [*]aar文件 :有的项目是以aar文件形式提供[/*] [*]pom文件 : (Project Object Model),实际上就是个xml,是对一些必要信息的说明。这里我们只关心一个节点信息: <dependencies>:声明依赖列表 [/*] [/list] 我们用文本编辑器打开 leakcanary-android文件夹 下面的pom文件:
...
<dependencies>
 <dependency>
 <!--包组 id,通常是发布者拥有的域名的反向,以免跟别人的重复-->
 <groupId>com.squareup.leakcanary</groupId>
 <!--包 artifactId,其实就是组以下应该有一个更小的归类-->
 <artifactId>leakcanary-analyzer</artifactId>
 <!--版本号-->
 <version>1.3</version>
 <scope>compile</scope>
 </dependency>
</dependencies>
...
想更多了解pom文件, [url=http://blog.bugtags.com/2016/01/27/embrace-android-studio-maven-deploy/]点击这里[/url] 当我们打开 leakcanary-android 的pom文件, 我们发现 leakcanary-android 依赖于 leakcanary-analyzer 的1.3版本。 同样的的我们打开 leakcanary-analyzer 的pom文件, 发现 leakcanary-analyzer 依赖 leakcanary-watcher 和 haha 。 leakcanary-watcher 和 haha 则没有依赖任何东西。 这样整个leakcanary-android导入本地的东西就是四个: [list=1] [*]leakcanary-android[/*] [*]leakcanary-analyzer[/*] [*]leakcanary-watcher[/*] [*]haha [/*] [/list] 同样的方式去一层一层解析 leakcanary-android-no-op ,将所有需要的文件都导入到AndroidStudio中。这样整个 LeakCanary 就被我们真正实现本地化了。 两种结果对比如下: debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3' releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3' debugCompile(name: 'leakcanary-android-1.3', ext: 'aar') compile files('libs/leakcanary-analyzer-1.3.jar') compile files('libs/leakcanary-watcher-1.3.jar') compile files('libs/haha-1.1.jar') releaseCompile(name: 'leakcanary-android-no-op-1.3', ext: 'aar') 这样就将整个LeakCanary项目完全转换成了本地的依赖。 [url=http://www.jianshu.com/p/59efa895589e]http://www.jianshu.com/p/59efa895589e[/url]          
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部