Android SDK 介绍及导入

Android SDK 介绍

露脸云 SDK 为用户开发 音视频通话、音视频直播和 IM 相关的应用提供的一套完善的开发框架。包括以下几个部分:

  • Message SDK 为 IM 消息协议实现,完成与服务器之间的信息交换。
  • Media SDK 处理音视频的采集、播放等相关的处理。
  • UI SDK 是一组 音视频通话、音视频直播和 IM 相关的 UI 控件,旨在帮助开发者快速集成露脸云 SDK。

开发者可以基于 UI SDK 或者露脸云 SDK 开发自己的应用,前者因为把音视频通话、音视频直播和 IM的相关功能做了封装,集成时开发者不需要太关心音视频相关的采集、播放、发送是怎么发送、怎么接收等逻辑。

Android SDK 包括:

基础功能

音视频通话

音视频通话 UI Coming soon

直播 UI Coming soon

消息收发

消息收发 UI Coming soon

GCM、华为、小米推送

服务端接口

Android SDK 导入

集成前准备

下载 SDK

露脸云官网下载露脸云 SDK。

SDK 文件介绍

从官网上下载下来的包,解压后内容如下:

其中
vcloud_opensdk-xx.aar 是核心sdk库,里面包含了露脸云客户端消息服务、音视频服务代码,以及sdk用到的第三方库。
uisdk 是一个Android Library工程,目录内是界面相关的sdk代码,以源码形式提供。

第三方库介绍

SDK 中用到的第三方库

core-sdk 用到的库

vcloud_opensdk-xx.aar 是一个封装好的android压缩包,里面包含了以下一些库:

  • fastjson-1.1.43.android.jar 用于json解析
  • HwPush_SDK_V2559.jar 用于华为消息推送
  • MiPush_SDK_Client_2_2_13_sdk.jar 用于小米消息推送
  • im_service.jar 用于露脸云的消息服务
  • japng-0.5.1.jar 用于解析apng
  • ormlite-android-4.48.jar 用于sqlite数据库
  • ormlite-core-4.48.jar 用于sqlite数据库

以上库列出来只是告知开发者,使用时只要包含cg_opensdk-xx.aar即可,不需要额外添加。

此外编译时还涉及到一些maven依赖:

  • 'com.android.support:support-v4:23.1.1'
  • 'com.android.support:recyclerview-v7:23.1.1'
  • 'com.google.android.gms:play-services-gcm:8.4.0' google推送
  • 'com.android.support:percent:23.0.1' 可以用百分比设置布局
  • 'com.facebook.fresco:fresco:0.9.0' fresco图片加载库
  • 'com.facebook.soloader:soloader:0.1.0' so加载器
  • 'org.greenrobot:eventbus:3.0.0' 消息分发与监听库
  • 'me.chatgame.mobilecg:tugcore:1.1.1' 网络下载库
  • 'com.davemorrissey.labs:subsampling-scale-image-view:3.5.0' 用于大图显示
  • 'com.readystatesoftware.systembartint:systembartint:1.0.3' 用于设置状态栏的颜色
  • 'com.squareup.retrofit2:retrofit:2.1.0' HTTP访问库

这些依赖是需要开发者添加的

uisdk 用到的库

编译时需要的依赖:

  • 'com.android.support:support-v4:23.1.1'
  • 'com.android.support:recyclerview-v7:23.1.1'
  • 'com.android.support:percent:23.0.1'
  • 'com.facebook.fresco:fresco:0.9.0'
  • 'com.facebook.soloader:soloader:0.1.0'
  • 'org.greenrobot:eventbus:3.0.0'
  • 'me.chatgame.mobilecg:tugcore:1.1.1'
  • 'com.davemorrissey.labs:subsampling-scale-image-view:3.5.0'
  • 'com.readystatesoftware.systembartint:systembartint:1.0.3'

这些依赖已经配置在uisdk工程的build.gradle中了。

配置工程

使用露脸云SDK,需要开发者用AndroidStudio来开发项目,通过gradle来配置和编译,以下的配置都是针对AndroidStudio的。

导入 SDK

1. 导入vcloud_opensdk-xx.aar

把vcloud_opensdk-xx.aar放在开发者AndroidStudio项目中主工程下面的libs目录。并且在主工程build.gradle中添加如下内容:

repositories {
    mavenCentral()
    jcenter()
    // 添加以下代码到主工程build.gradle中
    flatDir {
        dirs 'libs'
    }
}
dependencies {
    ...
 
    // 添加下面一行代码
    compile (name:'vcloud_opensdk-1.0', ext:'aar')
 
    ...
}

2. 导入uisdk到项目中

把uisdk整个目录到复制到开发者AndroidStudio项目的根目录下。在根目录下面的settings.gradle文件中把uisdk配置进去。

settings.gradle
include ':demo', ':uisdk' // 在开发者的settings.gradle中新增一个 ':uisdk'

在主工程中的build.gradle中添加如下依赖:

dependencies {
    ...
 
    // 添加下面一行代码
    compile project(':uisdk')
 
    ...
}

配置信息

1. retrolambda配置

由于sdk用到了lambda表达式,所以需要在开发者项目中配置retrolambda插件。
首先在项目根目录的build.gradle中添加以下代码:

build.gradle
buildscript {
    repositories {
        jcenter()
        mavenCentral()  // 需要添加
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.2' 
        classpath 'me.tatarka:gradle-retrolambda:3.2.3'  // 需要添加
        classpath 'me.tatarka.retrolambda.projectlombok:lombok.ast:0.2.3.a2'  // 需要添加
    }
 
    // Exclude the version that the android plugin depends on.
    configurations.classpath.exclude group: 'com.android.tools.external.lombok'  // 需要添加
}

然后在主工程的build.gradle中添加以下代码:

apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'  // 添加此行,应用retrolambda插件
 
...
 
// 添加以下代码
retrolambda {
    javaVersion JavaVersion.VERSION_1_7
}
 
...

2. Multi Dex配置

如果java方法数过多,则需要使用multidex。在主工程的build.gradle中添加以下代码来配置multidex:

android {
    ...
    defaultConfig {
        ...
        multiDexEnabled true
    }
    ...
}
 
dependencies {
    ...
    compile 'com.android.support:multidex:1.0.1'
    ...
}

此外开发者的自定义Application类,需要继承MultiDexApplication。

3. 编译依赖配置

在开发者主工程build.gradle中添加以下依赖,以保证编译顺利进行:

dependencies {
    compile 'com.android.support:support-v4:23.1.1'
    compile 'com.android.support:recyclerview-v7:23.1.1'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.google.android.gms:play-services-gcm:8.4.0'
    compile 'com.android.support:percent:23.0.1'
    compile 'com.facebook.fresco:fresco:0.9.0'
    compile 'com.facebook.soloader:soloader:0.1.0'
    compile 'org.greenrobot:eventbus:3.0.0'
    compile 'me.chatgame.mobilecg:tugcore:1.1.1'
    compile 'com.davemorrissey.labs:subsampling-scale-image-view:3.5.0'
    compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'
    compile 'com.squareup.retrofit2:retrofit:2.1.0'
}

4. 其它配置

由于权限、Activity、Service和Receiver等配置都已经集成在sdk中了,所以不需要开发者单独配置。