开发者在拿到短视频Android的SDK的时候会有些觉得不太一样,为什么SDK提供的是AAR文件和几个so文件呢?我们常见的SDK不是都是jar包吗?文本试图将AAR是什么,如何导入出现的问题进行一个归纳总结,希望开发者读完能够解决这种类型的问题.
1.什么是AAR文件?如何导入AAR文件?
1.1 什么是AAR文件?
开发者在开发的时候大家都遵循组件化的思路写代码,比如我们在写一个圆形的自定义组件的时候,这个组件是一个独立的组件,但是他可能不仅仅包含Java代码,还有很多资源甚至是底层so文件,为了解决Android开发中组件引用的问题,引入aar格式。也是简单的zip格式。
定义:The ‘aar’ bundle is the binary distribution of an Android Library Project.
Zip包中的内容可能包含有:
/AndroidManifest.xml
/classes.jar
/res/
/R.txt
/assets/
/libs/*.jar
/jni//*.so
/proguard.txt
1.2 如何导入AAR文件?
aar可通过以下三种方式引入到项目中:
- 公共Maven仓库
- 私有Maven仓库
- 本地aar文件
其中第一和第二点因为是需要发布Maven,这里不做讲解,仅仅讲解如何导入本地AAR文件:
1.将AAR文件拷贝到Application Module/libs目录下,如没有libs目录,创建就好。注意要在Application Module根目录下,不是Project根目录下。
2.在Application Module/build.gradle中添加
//repositories flatDir用来声明文件目录做为依赖库’libs’路径是build.gradle的相对路径,目录名称可以任意,也可以同时声明多个dirs。
repositories {
flatDir {
dirs 'libs'
}
}
3.在Application Module/build.gradle中添加依赖
dependencies {
//name指定你自己的AAR名称即可.
compile(name:'AliyunSdk-RCE.aar', ext:'aar')
}
注意:除了这种模式导入本地之外事实上还有其他的模式就是新建module选择以AAR导入,这样选择AAR文件即可.
2. so文件如何导入?
因为短视频、播放器、直播都是需要C,C++开发的,所以需要提供动态库so文件, 短视频SDK现在so文件因为希望用户能够灵活的配置所以直接放出来让开发者自己自由配置.那么如何配置so文件呢?开发者常常出现的so文件找不到的原因又是为什么呢?
2.1 引入so文件
目前引入so文件有两种方式都是需要依赖gradle的编译.注意位置和名称
方法一:
将so文件拷贝到Application Module/src/main/jniLibs/armeabi-v7a目录下(目录如果没有新建即可,名字必须要对应)
方法二:
1.将so文件拷贝到Application Module/libs/armeabi-v7a目录下
2.在Application Module/build.gradle中添加
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
2.2 解决找不到so文件的错误
见【视频云端SDK】关于安卓指令集的兼容,Library xxx.so not found
本文为【问答合集】阿里视频云常见技术问题汇总——内含技术文档40+ 持续更新中 系列文章之一,如果本文还不能解决你的问题可以在汇总合集中查看,有任何问题也欢迎回复,谢谢.