Android中常见的第三方库(so、jar、aar)区别及打包

3,473 阅读4分钟

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。

关于Android打包的问题,涉及到大量的概念和知识点,如果没有系统的学习,很容易会杂糅概念而辨识不清,在面试与实际工作中都会遇到困难。如果你从事Android开发,具备1年以上工作经验,希望深入浅出了解Android个方面等技术要点,渴望实现技术和职业成长上的双重突破,那么以下福利就很适合你:

福利1 免费直播课程

《腾讯课堂Android高级开发工程师系列直播》

适听人群:Android初、中、高级开发工程师

3.13-3.18 连续7天每晚8点准时直播,持续进行

3月13日:Android应用最广知识-注解与代理的故事

3月14日:架构师必备之Android AOP教程

3月15日:Java虚拟机原理大揭秘

3月16日:hook源码实现阿里无闪烁换肤

3月17日:实现安全可靠的Android网络连接

3月18日:设计模式应该如何运用到Android项目开发中

福利2 Android开发资料包

该资料包中主要包括「Java语言进阶与Android相关技术核」、「2)App开发框架知识体系(app亦对象)」、「360° Android app全方位性能调优」、「Android前沿技术」、「NDK 模块开发」等内容,全方位扩充你的知识体系。

进阶视频 技术大纲导图 想要参与Android进阶免费系列直播课

以及获取Android开发工程师资料包的同学, 加入我们:936903570

免费课程,名额有限,先到先得~~