Android項目中引用本地aar文件的方法
隨著項目越來越多,代碼的復(fù)用就變得異常重要,這時候就要進(jìn)行模塊化編程,就是把一些通用的組件或者類庫做成單獨(dú)的模塊,其他項目直接進(jìn)行引用就好。針對Android開發(fā)最常見的就是Android Library,在Gradle出現(xiàn)之前引用Android Library的方式也很繁瑣,但是有了Gradle一切變得非常簡單方便。
aar
何為aar?大家都知道jar文件把,如果你有一個Android Library項目,可以很容易的導(dǎo)出jar文件,然后在其他項目中很方便的引用,aar和jar類似,區(qū)別就是一個Android Library項目導(dǎo)出的jar文件不能包含資源文件,比如一些drawable文件、xml資源文件之類的,所以這就有很大的限制,在gradle之前我們要引用帶資源文件的Android Library必須要把整個library導(dǎo)入進(jìn)來進(jìn)行引用,但是有了gradle之后,Android Library項目可以直接導(dǎo)出成aar,然后其他項目像引用jar的方式直接方便的引用。
導(dǎo)出aar
首先Android Library項目的gradle腳本只需要在開頭聲明
apply plugin: 'com.android.library'
之后就和導(dǎo)出apk文件一樣的方法,執(zhí)行 ./gradlew assembleRelease,然后就可以在 build/outputs/aar 文件夾里生成aar文件
引用本地的aar
生成aar之后下一步就是如何引用本地的aar文件?本地的aar文件并沒有像引用jar文件這么簡單,官方也沒有提供解決方案。好在國外的一些前輩總結(jié)出了方法,下面就以test.aar文件為例來詳述下方法
1、把a(bǔ)ar文件放在一個文件目錄內(nèi),比如就放在libs目錄內(nèi)
2、在app的build.gradle文件添加如下內(nèi)容
repositories {
flatDir {
dirs 'libs' //this way we can find the .aar file in libs folder
}
}
3、之后在其他項目中添加一句gradle依賴便方便的引用了該library
dependencies {
compile(name:'test', ext:'aar')
}
以上方法親測有效。
總結(jié)
當(dāng)然通過gradle最普遍的方法是把a(bǔ)ar上傳到mavenCentral或者jcenter,引用的話更方便,但是對于一些公司內(nèi)部library不想公開,而傳統(tǒng)的引用library方式又太繁瑣,引用本地的aar文件這種方式會非常方便合適,之后通用的模塊只需要做成library,不管更新還是修改只需要打包成aar,然后供其他項目使用就好了,對Android開發(fā)來說這是提升代碼復(fù)用非常有效的一個手段。
相關(guān)文章
Android開發(fā)獲取重力加速度和磁場強(qiáng)度的方法
這篇文章主要介紹了Android開發(fā)獲取重力加速度和磁場強(qiáng)度的方法,結(jié)合實(shí)例形式分析了Android通過重力傳感器與羅盤傳感器獲取重力加速度與磁場強(qiáng)度的方法,需要的朋友可以參考下2017-10-10Android利用ContentProvider初始化組件的踩坑記錄
做Android SDK開發(fā)的時候,一般我們會將初始化的方法封裝,然后讓調(diào)用SDK的開發(fā)者在Application的onCreate方法中進(jìn)行初始化,下面這篇文章主要給大家介紹了關(guān)于Android利用ContentProvider初始化組件的踩坑記錄,需要的朋友可以參考下2022-04-04Android中的SQL查詢語句LIKE綁定參數(shù)問題解決辦法(sqlite數(shù)據(jù)庫)
這篇文章主要介紹了Android中的SQL查詢語句LIKE綁定參數(shù)問題解決辦法,本文使用的是sqlite數(shù)據(jù)庫,需要的朋友可以參考下2014-06-06當(dāng)ListView有Header時 onItemClick里的position不正確的原因
這篇文章主要介紹了當(dāng)ListView有Header時 onItemClick里的position不正確的原因的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-07-07