Android中常見的第三方庫(so、jar、aar)區(qū)別及打包

一、前言:

Android中常見的第三方庫包括:.so、.jar、*.aar,一般來說.so是C或C++語言的內(nèi)容打包成的庫,由于本項(xiàng)目是java語言,所以此處不探究so。

一、jar包:

1、說明

  • 只包含了class文件與清單文件 ,不包含資源文件,如圖片等所有res中的文件。
  • JAR(Java Archive,Java 歸檔文件)是與平臺無關(guān)的文件格式,它允許將許多文件組合成一個壓縮文件。
  • Jar的優(yōu)點(diǎn):安全性、減少下載時間、傳輸平臺擴(kuò)展、包密封、包版本控制、可移植性。
  • 打jar包時,項(xiàng)目里的res文件是用不了的,若想用圖片文件,可以將圖片文件放進(jìn)assets文件里面打進(jìn)jar包再進(jìn)行調(diào)用,但必須注意jar里面assets文件夾里面的文件不能和調(diào)用項(xiàng)目里面assets文件夾里面的文件重名。

2、打jar包方法:

網(wǎng)上方法很多也很詳細(xì),不再贅述,給個鏈接:http://blog.csdn.net/u013895206/article/details/52692415

3、使用jar方式:

  • *.jar:拷貝到:libs目錄,eclipse直接導(dǎo)入即可,AndroidStudio項(xiàng)目中添加:
dependencies { 
    implementation fileTree(dir: 'libs', include: ['*.jar'])
} 

重新編譯一次項(xiàng)目既可完成加載。

二、aar包:

1、說明

  • Android庫項(xiàng)目的二進(jìn)制歸檔文件,包含所有資源,class以及res資源文件全部包含。
  • 將aar解壓(后綴改為.zip,再解壓文件)打開后,可以看到每個aar解壓后的內(nèi)容可能不完全一樣,但是都會包含AndroidManifest.xml,classes.jar,res,R.txt。
  • aar 包含代碼和資源文件. 放在可運(yùn)行的module 項(xiàng)目的libs 文件夾中.

2、打aar包方法:

  • 1、先把想要打包成sdk的項(xiàng)目做成Android libraries B,不要建成Android project ;
  • 2、然后建立一個新的Android project A 去調(diào)用寫好的libraries B;
  • 3、運(yùn)行后,studio就自動把我們的librarys B自動打包成aar包了,這就是我們想要的sdk了(路徑:module 下,build/outputs/aar/)
  • 4、如果運(yùn)行后,沒在目錄下看到 aar,可以按照下圖方式執(zhí)行,執(zhí)行成功后,就可以在左側(cè)的:build/outputs/aar/ 下看到對應(yīng)的 aar 文件了:

圖片.png

注意:切換之后,重新編譯一下

圖片.png

3、Android Studio使用aar方式:

第一步:拷貝到:libs目錄

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

repositories { 
     flatDir { 
       dirs'libs' 
    } 
} 
 
dependencies { 
    implementation(name: 'lprogressview-release', ext: 'aar')
}

三、總結(jié)

1、如何選擇?
如果你只是一個簡單的類庫那么使用生成的.jar文件即可;如果你的是一個UI庫,包含一些自己寫的控件布局文件以及字體等資源文件那么就只能使用.aar文件。

2、因?yàn)槎藘?nèi)直連Jira提bug,包含UI內(nèi)容,且只是供Android使用的,同時Android Studio已經(jīng)被廣泛使用(Eclipse使用aar較麻煩,教程:https://www.cnblogs.com/shortboy/p/4424944.html),所以我最終選擇了使用.aar作為咱們最后的SDK。


參考:https://www.pianshen.com/article/5168274924/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容