一、aar包和jar包
Android中常见的第三方库包括:.so、.jar、.aar,一般来说.so是C或C++语言的内容打包成的库。
-
jar包:只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。 -
aar包:Android库项目的二进制归档文件,包含所有资源,class以及res资源文件全部包含。将aar解压打开后,会包含AndroidManifest.xml,classes.jar,res,R.txt。
二、打aar包
两种打包场景: (1)Module中不含有其它aar (2)Module中嵌套第三方aar
1.Module中不含有其它aar
-
在Project中新建Module
-
进入到Module的build.gradle文件: (1)将 apply plugin: ‘com.android.application’ 修改为 apply plugin: ‘com.android.library’,该Module会变成了一个library (2)注释掉applicationId这一行。由于打包后该Module不再是一个独立的应用,而是一个其它项目的附属,所以不需要独立的applicationId
-
进入到Module的AnroidManifest.xml文件: (1)如果有自定义的Application类,把name属性和icon属性删掉。因为打包成aar并被其它项目引用后,该AnroidManifest.xml会和所在项目的AnroidManifest.xml合并,这时会产生冲突。
-
打包aar: 进入到Gradle界面,双击该选项就编译生成aar包了
2.Module中嵌套第三方aar
两种解决方案: 1.解压第三方aar包,手动把第三方aar包中的class以及res资源文件,复制到自己的需要打aar包的模块中。 2.使用第三方框架库:fat-aar-android(地址)
3.fat-aar-android的简单用法
先看项目的整体结构:sdk是需要打aar包的模块,其中包含了一个第三方的aar包
1.在项目的build.gradle文件中,添加以下代码: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V7OemYOW-1627103338638)(https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/6018b512fa9ea6e7dd1e45f4cf3bb0ee)]
2.在模块的build.gradle文件中,添加apply plugin: 'com.kezong.fat-aar' ,应用fat-aar。 由于是libs中的aar是嵌套的,所以需要用embedembed(name: 'kssdk-ad--3.3.11-publishRelease-e2b64a3ec', ext: 'aar')
3.引入fat-aar完成,直接打包aar。
|