定义:
SDK(Software Development Kit)
常见的第三方库包括:*.so、*.jar、*.aar
- jar文件:Java 提供的SDK 文件类型,里面包含的是纯Java编译过后的代码
- so文件:一般是 C和 C++打包的成库的文件。
- aar文件:aar 名字来源于 Android Archive,见名知义,是一个 Android 库项目的二进制归档文件。aar 库文件里面,包含了 jar 和 so,还有资源res等文件,结构等同一个app。
一、jar
1、说明
只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。
JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。
2、Jar的优点:
安全性、减少下载时间、传输平台扩展、包密封、包版本控制、可移植性。
打jar包时,项目里的res文件是用不了的,若想用图片文件,可以将图片文件放进assets文件里面打进jar包再进行调用,但必须注意jar里面assets文件夹里面的文件不能和调用项目里面assets文件夹里面的文件重名。
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 文件了:
build.gradle(:leonlib)中配置代码混淆,若不配置,别人就可以看到aar中的源码
buildTypes{
release{
minifyEnabled true//代码混淆
progruardFiles getDefaultProguardFile('proguard-android-optimize.txt'),'proguard-rules.pro'
}
}
3、Android Studio使用aar方式:
第一步:拷贝到:libs目录
第二步:build.gradle 配置文件中更改为
repositories {
flatDir {
dirs'libs'
}
}
dependencies {
compile(name:'genius', ext:'aar')
//implementation(fileTree("libs")) 方法2
}
参考文献:
Android中的SDK以及利用Android Studio生成aar_android studio aar-优快云博客