国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

AndroidStudio 如何使用aar詳解

2019-12-12 05:20:51
字體:
來源:轉載
供稿:網友

一. 簡介

aar 是一個類似于 jar 的文件格式。但是他們之間是有區別的。

jar :僅僅包含class和清單文件,沒有資源文件。

aar :包含了class文件和資源文件。說白了就是Android的專屬“jar”

將代碼打包成aar文件,可以在一定程度上加快 AndroidStudio 的速度。

尤其是將 Module 打包成 aar 文件,提升的效果很顯著。

二. 如何得到aar

1. Module的aar文件

將一個AndroidStudio項目中的 Module 打包成 aar 其實很簡單。

在每一個 Module 的目錄下面都會有這樣一個文件夾: build/outputs/aar 。

這個文件夾下面就放著這個 Module 對應的 aar 文件。

一般情況下會有兩個 aar 文件,一個 debug 版本,一個 release 版本。

我們選擇 release 的就ok。

AAR文件圖示

注意:

新建的Module是沒有這個文件夾的。這時,你可以使用 兩種方法 生成這個文件夾

將整個項目運行一遍,這個文件夾會自動生成
執行命令 ./gradlew assembleRelease 也可以生成這個文件夾

2. 遠程倉庫的aar

在項目里面經常會引用一下遠程倉庫的依賴庫。

這時,我們也可以將它以 aar 的形式引入到項目中。

這個依賴庫的aar其實也很好找。

當你配置好一個依賴庫以后,點擊 Sync Now 。

AndroidStudio會自動下載這個庫到C盤(windows)。你找到這個文件就可以了。

這里我使用的是 Everything 進行搜索,很方便就找到這個庫的下載文件夾。其他操作系統就自行搜索吧,總之找見這個項目的下載文件夾就ok。

這個下載文件夾中包含了這個項目所需要的所有東西:包括 aar 、 jar 等文件。

后面會以一個例子詳細講解這個過程

注:

Everything是一個搜索軟件,可以瞬間搜索全盤。

是一個非常實用的軟件。但是很可惜只有windows版本。

官網地址: https://www.voidtools.com/

三. 如何使用aar

想要使用aar文件,需要經過以下幾步:

1. 在app的build.gradle中加入以下配置

repositories {  flatDir {  dirs 'libs' // aar目錄 }}

2. 將aar文件拷貝到app/libs目錄下

3. 在dependencies中加入aar引用

compile(name: 'zbar-release', ext: 'aar')

四. LeakCanary項目示例

因為Module的例子比較簡單,所以選擇遠程代碼庫作為示例。

這里使用一個經常使用的內存檢測項目 LeakCanary 來做一個示例。

我們通常使用依賴來使用這個庫:

debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'

當 Sync Now 完成后,我們可以在C盤(windows)找見這個項目文件夾。

該項目文件夾截圖如下:

LeakCanary項目示例圖

這個文件夾下面就有我們需要的兩個依賴庫: leakcanary-android 和 leakcanary-android-no-op
點開 leakcanary-android文件夾 ,目錄結構如下( 1.3是對應的版本號 ):

leakcanary-android文件夾

打開最里層的文件夾,你會發現文件的類型主要有三種:

  1. jar文件 :有的項目是以jar文件形式提供
  2. aar文件 :有的項目是以aar文件形式提供
  3. pom文件 : (Project Object Model),實際上就是個xml,是對一些必要信息的說明。這里我們只關心一個節點信息: <dependencies>:聲明依賴列表

我們用文本編輯器打開 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文件, 點擊這里

當我們打開 leakcanary-android 的pom文件,

我們發現 leakcanary-android 依賴于 leakcanary-analyzer 的1.3版本。

同樣的的我們打開 leakcanary-analyzer 的pom文件,

發現 leakcanary-analyzer 依賴 leakcanary-watcher 和 haha 。

leakcanary-watcher 和 haha 則沒有依賴任何東西。

這樣整個leakcanary-android導入本地的東西就是四個:

  1. leakcanary-android
  2. leakcanary-analyzer
  3. leakcanary-watcher
  4. haha

同樣的方式去一層一層解析 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項目完全轉換成了本地的依賴。

http://www.jianshu.com/p/59efa895589e

 

 

 

 

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 二连浩特市| 赫章县| 溆浦县| 山阴县| 天气| 永泰县| 滁州市| 普安县| 平原县| 遵义县| 永济市| 潜山县| 洪江市| 桐梓县| 库车县| 新闻| 志丹县| 思南县| 枣强县| 广汉市| 普定县| 盘锦市| 成安县| 淮滨县| 民丰县| 巴南区| 沙河市| 中西区| 永和县| 河池市| 常德市| 邻水| 江山市| 石家庄市| 思茅市| 丘北县| 哈密市| 舒城县| 九寨沟县| 威海市| 皮山县|