本文介绍Android端AIMSDK的支持系统、集成方法和简单使用示例,通过本文您将了解如何进行SDK集成。

支持系统

支持Android 4.1及以上版本,minSDKVersion为16。

基于NDK18b编译。

集成方法

  1. 在AndroidManifest.xml文件中配置权限。
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  2. 在build.gradle文件中导入所需依赖。
    // 下载Android SDK,并解压到libs目录
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.aar'])
    }
  3. 加载动态库。
    static {
        // 1. 基座
        // 定制的sqlite3数据库
        System.loadLibrary("sqlite3");
        // 网络相关动态库
        System.loadLibrary("gaea");
        System.loadLibrary("openssl");
        // 基座动态库
        System.loadLibrary("dps");
        // 2. IM模块
        System.loadLibrary("aim");
    }
    说明 Java层调用AIM相关API前,需先确保System.LoadLibrary(aim)加载完毕。

    动态库会在JNI_OnLoad时进行JNI相关初始化,如在此之前调用Java接口,则可能导致crash。

  4. 混淆配置。

    在proguard-rules.pro文件中增加如下keep项。

    -keep class com.alibaba.dingpaas.** { *; }
    -keep class com.dingtalk.mars.** { *; }
    -keep class com.dingtalk.bifrost.** { *; }
    -keep class com.dingtalk.mobile.** { *; }
    -keep class org.android.spdy.** { *; }
    说明 DingPaaS及AIMSDK需要通过C++进行反向调用Java,上述Java package不能进行混淆。
  5. 开始初始化。更多操作,请参见初始化