Android中常見的第三方庫(so、jar、aar)區別及打包
Android中常見的第三方庫包括: .so、 .jar、*.aar,一般來說.so是C或C++語言的內容打包成的庫,由於本專案是java語言,所以此處不探究so。
一、jar
1、說明
只包含了class檔案與清單檔案 ,不包含資原始檔,如圖片等所有res中的檔案。
JAR(Java Archive,Java 歸檔檔案)是與平臺無關的檔案格式,它允許將許多檔案組合成一個壓縮檔案。
Jar的優點:安全性、減少下載時間、傳輸平臺擴充套件、包密封、包版本控制、可移植性。
打jar包時,專案裡的res檔案是用不了的,若想用圖片檔案,可以將圖片檔案放進assets檔案裡面打進jar包再進行呼叫,但必須注意jar裡面assets資料夾裡面的檔案不能和呼叫專案裡面assets資料夾裡面的檔案重名。
2、打jar包方法:
網上方法很多也很詳細,不再贅述,給個連結: http://blog.csdn.net/u013895206/article/details/52692415
3、使用jar方式:
*.jar:拷貝到:libs目錄,eclipse直接匯入即可,AndroidStudio專案中新增: dependencies { compile fileTree(include: ['*.jar'], dir:'libs') } 重新編譯一次專案既可完成載入。
二、aar
1、說明
Android庫專案的二進位制歸檔檔案,包含所有資源,class以及res資原始檔全部包含。
將aar解壓(字尾改為.zip,再解壓檔案)開啟後,可以看到每個aar解壓後的內容可能不完全一樣,但是都會包含AndroidManifest.xml,classes.jar,res,R.txt。
2、打aar包方法:
先把想要打包成sdk的專案做成Android libraries B,不要建成Android project ;
然後建立一個新的Android project A 去呼叫寫好的libraries B;
執行後,studio就自動把我們的librarys B自動打包成aar包了,這就是我們想要的sdk了(路徑:module 下,build/outputs/aar/)
如果執行後,沒在目錄下看到 aar,可以按照下圖方式執行,執行成功後,就可以在左側的:build/outputs/aar/ 下看到對應的 aar 檔案了:

3、Android Studio使用aar方式:
第一步:拷貝到:libs目錄
第二步:build.gradle 配置檔案中更改為
repositories { flatDir { dirs'libs' } } dependencies { compile(name:'genius', ext:'aar') }
三、總結
1、如何選擇?
如果你只是一個簡單的類庫那麼使用生成的 .jar檔案即可;如果你的是一個UI庫,包含一些自己寫的控制元件佈局檔案以及字型等資原始檔那麼就只能使用 .aar檔案。
2、因為端內直連Jira提bug,包含UI內容,且只是供Android使用的,同時Android Studio已經被廣泛使用(Eclipse使用aar較麻煩,教程: https://www.cnblogs.com/shortboy/p/4424944.html ),所以我最終選擇了使用.aar作為咱們最後的SDK。
關於Android打包的問題,涉及到大量的概念和知識點,如果沒有系統的學習,很容易會雜糅概念而辨識不清,在面試與實際工作中都會遇到困難。如果你從事Android開發, 具備1年以上工作經驗,希望深入淺出瞭解Android個方面等技術要點 ,渴望實現技術和職業成長上的雙重突破,那麼以下福利就很適合你:
福利1 免費直播課程
《騰訊課堂Android高階開發工程師系列直播》
適聽人群:Android初、中、高階開發工程師
3.13-3.18 連續7天每晚8點準時直播,持續進行
▼
3月13日:Android應用最廣知識-註解與代理的故事
3月14日:架構師必備之Android AOP教程
3月15日:Java虛擬機器原理大揭祕
3月16日:hook原始碼實現阿里無閃爍換膚
3月17日:實現安全可靠的Android網路連線
3月18日:設計模式應該如何運用到Android專案開發中
福利2 Android開發資料包
該資料包中主要包括「Java語言進階與Android相關技術核」、「2)App開發框架知識體系(app亦物件)」、「360° Android app全方位效能調優」、「Android前沿技術」、「NDK 模組開發」等內容, 全方位擴充你的知識體系。

進階視訊

技術大綱導圖