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文件。

   
相关文章
相关标签/搜索