前置:由于端內(nèi)直連Jira提bug需要一個SDK,所以探索了下aar與jar的區(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 {?
????? ? ? ? ? ? ? ? ?compile fileTree(include: ['*.jar'], dir:'libs')?
? ? ? ? ? ? ? ? ?}?
? ? ? ? ? ? ?重新編譯一次項(xiàng)目既可完成加載。
二、aar
? ? ? ?1、說明
? ? ? ? ? ? ?Android庫項(xiàng)目的二進(jìn)制歸檔文件,包含所有資源,class以及res資源文件全部包含。
? ? ? ? ? ? ?將aar解壓(后綴改為.zip,再解壓文件)打開后,可以看到每個aar解壓后的內(nèi)容可能不完全一樣,但是都會包含AndroidManifest.xml,classes.jar,res,R.txt。
? ? ? ?2、打aar包方法:
? ? ? ? ? ? ?先把想要打包成sdk的項(xiàng)目做成Android libraries B,不要建成Android project ;
? ? ? ? ? ? ?然后建立一個新的Android project A 去調(diào)用寫好的libraries B;
? ? ? ? ? ? ? 運(yùn)行后,studio就自動把我們的librarys B自動打包成aar包了,這就是我們想要的sdk了(路徑:module 下,build/outputs/aar/)
? ? ? ? ? ? ? 如果運(yùn)行后,沒在目錄下看到 aar,可以按照下圖方式執(zhí)行,執(zhí)行成功后,就可以在左側(cè)的:build/outputs/aar/ 下看到對應(yīng)的 aar 文件了:
? ? ? ? 3、Android Studio使用aar方式:
? ? ? ? ? ? ? 第一步:拷貝到:libs目錄?
? ? ? ? ? ? ? 第二步:build.gradle 配置文件中更改為?
? ? ? ? ? ? ? ? ? ? ?repositories {?
????? ? ? ? ? ? ? ? ? ? ?flatDir {?
???????? ? ? ? ? ? ? ? ? ? ??dirs'libs'?
????? ? ? ? ? ? ? ? ? ? ?}?
? ? ? ? ? ? ? ? ? ? ?}?
? ? ? ? ? ? ? ? ? ? ?dependencies {?
????? ? ? ? ? ? ? ? ? ? ?compile(name:'genius', 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。