Android中aar和jar的区别

一·简介

Android中常见的第三方库包括:.so、.jar、*.aar 。一般来说·so是C或C++编写的内容打包成的库,所以我们暂不探究

二. jar

1.什么是jar?

JAR(Java Archive ,Java归档文件)是与平台无关的一种文件格式,它允许将许多文件组合成一个压缩文件。以.zip格式为基础,不仅用于压缩和发布,还用于部署和封装库,组件和插件程序,并且可以被像编译器和JVM这样的工具直接使用。

jar包只包含了class文件与清单文件,不包含资源文件(如图片等所有res中的文件)

打jar包时,项目里的res文件时用不了的,如果想用图片文件,可以将图片文件放进assets文件中打进jar包在进行调用,但是必须注意jar中assets文件夹里的文件不能和调用项目里的assets文件夹里的文件重名。

2.jar的优点?

优点:安全性,减少下载时间,传输平台扩展,包密封,包版本控制,可移植性。

3.打包jar包方法

4.使用jar方式

*·jar拷贝到对应module的libs目录中,在eclipse直接导入即可,AndroidStudio项目中要添加

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

三.aar

1.什么是aar?

Android库项目的二进制归档文件,包含所有资源,class以及res资源文件全部包含。
将aar解压(后缀改为.zip,在解压文件)打开后,可以看到每个aar解压后的内容可能不完全一样,但是都会包含AndroidManifest.xml,classes.jar,res,R.txt。

2.打aar包方法

3.AndroidStudio使用aar方式

将*.aar拷贝到目标mudule的libs目录下,然后在build.gradle中配置

 repositories { 
       flatDir { 
            dirs'libs' 
        } 
 } 
 dependencies { 
 implementation(name:'你拷贝的arr的名字', ext:'aar')
 }

四.总结

jar文件只包含class文件和清单文件,不包含资源文件(如图片等所有res下的资源文件)
aar包含class,清单文件,R文件及res下的所有资源文件

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前置:由于端内直连Jira提bug需要一个SDK,所以探索了下aar与jar的区别。 Android中常...
    viky_lyn阅读 81,961评论 5 42
  • 两者区别:*.jar:只包含了class文件与清单文件,不包含资源文件,如图片等所有res中的文件。*.aar:包...
    小小的coder阅读 252评论 0 0
  • 前言 前些日子,遇到了一个优化SDK的需求,本地测试优化都很顺利。可是发布到远程以后,通过远程导入jar后就出了问...
    小庄bb阅读 2,722评论 6 0
  • Android开发中总是会引入第三方的库或者资源,有时候是添加一个jar文件,有时候添加一个aar文件,那么这两种...
    红色海_阅读 688评论 0 0
  • 两者区别: *.jar:只包含了class文件与清单文件,不包含资源文件,如图片等所有res中的文件。 *.aar...
    後来的後来hugh阅读 2,401评论 0 1