1. 程式人生 > >Android中常見的第三方庫(so、jar、aar)區別及打包

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。