如何把項目打包成aar文件或jar文件

在Android開發中咱們每每爲了節省開發時間,會用直接引入其餘工程中的module,避免重在新工程中開發,尤爲一個團隊多項目時候用到特別多,固然也有包括引入第三方jar包或者aar文件,有的時候會以jar包形式引入,有的時候以aar包形式引入,那種兩種有啥區別呢,那咱們簡單的來說講這兩個概念...
android

1.什麼是aar包?

xxx.aar,AAR(Android Archive)是一個Android庫項目的二進制歸檔文件,裏面不只包含工程代碼也還包含工程資源文件,例如各類字體大小,字符串資源,圖片等,固然每一個工程所包含的資源文件不用,最後編譯出來的aar文件裏面包含的內容也不盡相同,例若有的工程有aidl業務處理,可是大部分都包括:AndroidManifest.xml,classes.jar,res,R.txt,你能夠隨便找一個aar文件將後綴名字改爲.zip或者.rar壓縮包形式,而後解壓查看解壓後的內容,網絡


(網上直接引用一張圖片)
app


2.aar文件和jar文件有什麼區別?

xxx.jar:只包含了class文件與清單文件,不包含資源文件,如圖片等全部res中的文件,maven

反之 xxx.aar則包含全部資源,class以及res資源文件;學習

因此若是你有資源文件須要,那麼你就以aar文件形式引入到工程中去,反之直接引入jar便可;字體

3.使用方式

如何使用別人提升好的jar包和aar文件呢?gradle

xxx.jar文件:將其拷貝到:libs目錄,並在AndroidStudio項目中build.gradle中添加:ui

dependencies {debug

compile fileTree(include: ['*.jar'], dir: 'libs')cdn

}

從新編譯一次項目既可完成加載,(可在工程的External Libraries目錄下查看)。

xxx.aar:有兩種方式,分別爲本地加載以及網絡加載,因爲網絡加載涉及到發佈到mavenCentral託管的問題這裏不作討論;在這裏給你們說一種本地加載的方式,簡單快捷。

第一步:將aar文件拷貝到:libs目錄

第二步:build.gradle 配置文件中更改成


repositories {

   flatDir {

       dirs 'libs'

   }

}


dependencies {

compile(name:'xxx', ext:'aar')

}

分別添加了」repositories「與更改了」dependencies「,而後從新編譯一次項目就能夠正常使用了。

一樣編譯成功後能夠在工程的External Libraries目錄下查看;

那麼到此你算成功引入了別人提供的jar文件和aar包了;

那麼就會引用不行啊,有時候須要咱們本身打包文件,那麼下面的步驟就是教你如何打成引用包...請看大屏幕,哦,不對,請看下文...

4.如何將項目打成aar文件?

1.通常咱們的module的build.gradle文件中存在apply plugin和applicationId,是建立時默認生成的,須要對build.gradle(必定是要打的module對應的)進行修改,

  • 將apply plugin: 'com.android.application'改成apply plugin: 'com.android.library';
  • 去掉applicationId

如圖:


此時再點擊右側的assembleRelease,看到module層的outputs文件夾下生成了.aar文件,

即:xxx.aar文件位置爲:module(你對應的)/build/outputs/aar/xxx.aar

固然執行右側的assebleDebug腳本則生成debug版的aar文件,執行asseble會生成release和debug兩個版本的aar,名字也會有所體現,目錄仍是在 module(你對應的)/build/outputs/aar/下;

如圖:


看到這裏就已經差很少了,那麼jar文件如何生成的呢? 

在module下的intermediates文件夾,也生成了一個bundles文件夾,.jar文件也能夠用這裏生成的,這個就是生成的jar包,如今是否是很明白了;

如圖:


到這兒了其實已經將aar文件打包說完了,固然咱們在建立module的時候能夠直接以Libiary形式建立,具體操做就是在工程中右鍵--選擇Module--選擇Android Library,而後看看咱們module的build.gradle文件,意外又驚喜發現這行代碼 apply plugin: 'com.android.library',由於咱們建立的時候指定了Module類型爲Library形式,這也是爲何咱們要把其餘項目的Module的build.gradle文件Application改爲Library, 此時改Module也沒有ApplicationId,由於Libiary包沒有應用Id;


 到此,咱們基本對打aar文件有了總體瞭解;

最後,提早祝你們 新年快樂! 18年即將過去,這一年發生了不少,昨天即將被定格,讓咱們以新的姿態迎接19,但願全部的人都能在19年離夢想更進一步,工做和學習更加順利快樂!

感謝!

相關文章
相關標籤/搜索