jar文件和aar文件的區別

1.   *.jar,JAR 文件就是 Java Archive File,顧名思意,它的應用是與 Java 息息相關的,是 Java 的一種文檔格式。只包含了class文件與清單文件 ,不包含資源文件,如圖片等全部res中的文件。找一個jar文件,而後修改後綴名爲‘zip’或者‘rar’格式,而後解壓該文件,打開解壓後的文件夾,截圖以下所示:

 

 

 

點擊‘com‘文件夾就會看到裏面所有是‘.class’文件。java

PS: JAR 文件格式以流行的 ZIP 文件格式爲基礎。與 ZIP 文件不一樣的是,JAR 文件不只用於壓縮和發佈,並且還用於部署和封裝庫、組件和插件程序,並可被像編譯器和 JVM 這樣的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用來指示工具如何處理特定的 JAR。JAR(Java Archive,Java 歸檔文件)是與平臺無關的文件格式,它容許將許多文件組合成一個壓縮文件。爲 J2EE 應用程序建立的 JAR 文件是 EAR 文件(企業 JAR 文件)。JAR 文件格式提供了許多優點和功能,其中不少是傳統的壓縮格式如 ZIP 或者 TAR 所沒有提供的。它們包括: 安全性、減小下載時間、傳輸平臺擴展、包密封、包版本控制、可移植性
android

2. *.aar,AAR(Android Archive)包是一個Android庫項目的二進制歸檔文件。咱們隨便找一個aar文件,而後修改後綴名爲‘zip’或者‘rar’格式,而後解壓該文件,打開解壓後的文件夾,截圖以下所示:(每一個aar解壓後的內容可能不徹底同樣,可是都會包含
AndroidManifest.xml,classes.jar,res,R.txt)

 *.aar文件中包含全部資源,class以及res資源文件。git

 

2、生成aar文件和jar文件。安全

1.生成jar文件。網絡

在Android Studio中,在某一個Module的Gradle腳本開頭聲明app

[plain] view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. apply plugin: 'com.android.library'  
接着編譯該Module,編譯完成以後會在Module的build-->intermediates-->bundles-->debug(release)-->classes.jar,以下圖所示:

 


 

2.生成aar文件。eclipse

在Android Studio中,在某一個Module的Gradle腳本開頭聲明maven

[plain] view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. apply plugin: 'com.android.library'  
接着編譯該Module,編譯完成以後會在Module的build-->outputs-->aar-->xxxxx.aar ,以下圖所示:

 

 

 

 

3、使用。工具

1. *.jar文件使用。佈局

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

[plain] view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. dependencies {    
  2.     compile fileTree(include: ['*.jar'], dir: 'libs')    
  3. }    
從新編譯便可完成。

2.  *.aar文件使用。

*.aar文件使用有兩種方式,一種是使用在線的(網上的),一種是添加本地的*.aar文件。網絡加載,只要你知道*.aar文件在maven中的路徑便可,此處不演示了。下面主要看看在Android Studio中如何加載本地的*.aar文件。

(1).把aar文件放在一個文件目錄內,好比就放在libs目錄內;

(2).在app的build.gradle文件添加以下內容;

[plain] view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. repositories {  
  2.     flatDir {  
  3.         dirs 'libs'   
  4.     }  
  5. }  

(3).以後只須要添加一句gradle依賴便方便的引用了該aar文件;

[plain] view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. dependencies {  
  2.    ...  
  3.     compile(name:'test', ext:'aar')  
  4.    ...  
  5. }  
至此,在Android Studio中加載本地的*.aar文件就結束,是否是很簡單呢!須要補充一點,若是*.aar文件中引用了其餘Maven 倉庫的包,那麼須要在gradle中添加依賴,不然在運行的時候,可能會報「Caused by: Java.lang.ClassNotFoundException」!

可能有的朋友還有疑問,「如何在Eclipse中使用aar文件「」,這裏就不講解了,建議儘快更換爲Android Studio吧!

4、小結。

在什麼狀況下使用*.jar文件?在什麼狀況下使用*.aar文件呢?

若是你只是一個簡單的類庫那麼使用生成的*.jar文件便可;

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

   
相關文章
相關標籤/搜索