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

 Android中常見的第三方庫包括:*.so、*.jar、*.aar,通常來講.so是C或C++語言的內容打包成的庫,因爲本項目是java語言,因此此處不探究so。html

1、jarjava

       一、說明安全

 只包含了class文件與清單文件 ,不包含資源文件,如圖片等全部res中的文件。eclipse

             JAR(Java Archive,Java 歸檔文件)是與平臺無關的文件格式,它容許將許多文件組合成一個壓縮文件。佈局

 Jar的優勢:安全性、減小下載時間、傳輸平臺擴展、包密封、包版本控制、可移植性。字體

            打jar包時,項目裏的res文件是用不了的,若想用圖片文件,能夠將圖片文件放進assets文件裏面打進jar包再進行調用,但必須注意jar裏面assets文件夾裏面的文件不能和調用項目裏面assets文件夾裏面的文件重名。gradle

      二、打jar包方法:ui

            網上方法不少也很詳細,再也不贅述,給個連接:http://blog.csdn.net/u013895206/article/details/52692415.net

 三、使用jar方式: 版本控制

            *.jar:拷貝到:libs目錄,eclipse直接導入便可,AndroidStudio項目中添加:

                 dependencies { 

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

                 } 

             從新編譯一次項目既可完成加載。

2、aar

       一、說明

             Android庫項目的二進制歸檔文件,包含全部資源,class以及res資源文件所有包含。

             將aar解壓(後綴改成.zip,再解壓文件)打開後,能夠看到每一個aar解壓後的內容可能不徹底同樣,可是都會包含AndroidManifest.xml,classes.jar,res,R.txt。

       二、打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 文件了:

        三、Android Studio使用aar方式:

              第一步:拷貝到:libs目錄 

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

                     repositories { 

                         flatDir { 

                             dirs'libs' 

                         } 

                     } 

                     dependencies { 

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

                     }

3、總結

      一、如何選擇?

            若是你只是一個簡單的類庫那麼使用生成的*.jar文件便可;若是你的是一個UI庫,包含一些本身寫的控件佈局文件以及字體等資源文件那麼就只能使用*.aar文件。

二、由於端內直連Jira提bug,包含UI內容,且只是供Android使用的,同時Android Studio已經被普遍使用(Eclipse使用aar較麻煩,教程:https://www.cnblogs.com/shortboy/p/4424944.html),因此我最終選擇了使用.aar做爲我們最後的SDK。

相關文章
相關標籤/搜索