android导入导出jar,aar,so以及远程库
(目前知道的方法就是这些,后面如果有更好的方法在来更新)
首先对远程库的导入导出
上传一个远程库,前提是会使用github远程仓库托管代码。然后就是上传代码,添加releases,然后发布到jitpack就OK了。
为什么发布jitpack?唯一的原因就是简单,方便而已。。。
最后在项目中添加依赖就可以使用了。
关于jar和aar:
获取jar和aar包的方法相同,首先你的项目中要有Library。
rebuild project一下项目就OK了,然后在工程目录下library-build-intermediates-bundles-debug下得到classes.jar就是需要的jar包。
目录下library-build-outputs-aar下的aar文件就是aar包。
使用jar的方法很简单,把jar包放在app下的libs目录中,然后右键Add As Library就OK。
导入aar包也简单,同样将aar包放入libs目录下,然后在app的build.gradle中(和android{}标签同级)添加如下代码:
repositories {
flatDir { dirs 'libs' }
}
然后添加依赖:(ss是你aar包的名称,不包括后缀)
implementation(name: 'ss', ext: 'aar')
OK。。
对于jar和aar包的导入也可以直接使用一句话全部导入
implementation fileTree(include: ['*.jar'], dir: 'libs')
jar包和aar包的主要区别:
jar: 只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。
aar: 包含jar包和资源文件,如图片等所有res中的文件
也就是说aar包含的东西更多,如果library中包含资源的数据就必须使用aar。
关于so库:
对于so库的导出,这里不在介绍,我那篇ndk的文章中提到了,这里说一下如何导入
首先在main目录下创建jniLibs目录,将.so文件放入其中。
然后在java目录下创建相应的目录,在此目录下创建相应的类,在类中创建相应方法
例如若c文件中的方法名为
Java_a_b_c_JniUtils_getStringFormC
那么需要创建的目录为a.b.c
需创建的类和方法为:
public class JniUtils {
static {
System.loadLibrary("password"); //静态库名称要和生成静态库时用的库名相同
}
public static native String getStringFormC();
}
由于必须知道方法名和库名,所以使用so库一定需要提供相应的文档和使用方法才行。