接入 Android

本文介绍如何快速将数据同步组件接入到 Android 客户端。

说明

自 2020 年 6 月 28 日起,mPaaS 停止维护 10.1.32 基线。请使用 10.1.6810.1.60 系列基线。可以参考 mPaaS 10.1.68 升级指南mPaaS 10.1.60 升级指南 进行基线版本升级。

目前,数据同步组件支持 原生 AAR 接入 组件化接入 两种接入方式。

接入过程分为两步:

  1. 添加 SDK

  2. 使用 SDK

前置条件

您已接入工程到 mPaaS。

添加 SDK

原生 AAR 方式

参考 AAR 组件管理,通过 组件管理(AAR) 在工程中安装 同步服务(SYNC)组件。

组件化方式

在 Portal 和 Bundle 工程中通过 组件管理 安装 同步服务(SYNC) 组件。

更多信息,请参考 管理组件依赖 > 增删组件依赖

使用 SDK

在 10.1.32 及以上版本基线中,mPaaS 中间层的 MPSync 类封装了数据同步组件所有 API,通过调用 MPSync 对象即可实现数据同步的所有功能。

您可以通过下表快速了解数据同步的相关 API。更多关于 API 的详细信息,参见 Android 接口说明

接口

接口说明

setup(Application application)

用于初始化数据同步依赖的基础服务。必须在 initialize 方法调用前调用。仅限 10.1.60 及以上版本基线。

initialize(Context context)

用于初始化接口和数据同步服务。

appToForeground()

用于让客户端 SDK 感知到当前 App 已经启动,使其建立与服务器的网络连接。每次 App 回前台时调用。

appToBackground()

用于让客户端 SDK 感知到当前 App 已经回到后台,使其断开与服务器的网络连接。每次 App 压后台时调用。

updateUserInfo(String sessionId)

用于登录信息 userId/sessionId 有变化时调用。至少调用一次。

clearUserInfo()

用于用户登出。

registerBiz(String bizType, ISyncCallback syncCallback)

用于注册一个接收业务数据的 callback。在获取到同步推送的数据后,客户端 SDK 会回调 syncCallback 实现类。

unregisterBiz(String bizType)

用于反注册指定同步配置。在获取到同步推送的数据后,客户端 SDK 则不会回调 syncCallback 实现类。

reportMsgReceived(SyncMessage syncMessag)

用于在 syncCallback 实现类中收到数据后,调用该接口通知数据同步服务端接收同步数据成功。在没有收到 reportMsgReceived 前,数据同步会重试投递,重试 6 次之后数据会被永久删除。

isConnected()

用于检查当前数据同步服务是否正常。

代码示例

该示例通过在 10.1.32 基线版本 SDK 进行开发。在示例应用中设置了一个按钮,通过点按按钮动作获取设备 ID,再根据设备 ID,在控制台采用指定设备推送的方式向设备推送同步数据。在示例中,同步标识为bizType

说明

该示例仅用于演示调用数据同步 API 的方法,并不能作为数据同步的最佳实践。您可以在 获取代码示例 页面中下载数据同步组件的最佳实践代码。

    public void button1Clicked(View view)
    {
        //使用 getUtdid 方法获取设备 ID。
        String utdid =UTDevice.getUtdid(MainActivity.this);
        //在 Logcat 打印数据同步数据。
        Log.e("=========",utdid);
        //初始化接口和数据同步服务。
        MPSync.initialize(MainActivity.this);
        //注册接收业务数据的 callback。在获取到同步推送的数据后,回调 syncCallback。
        MPSync.registerBiz("bizType",new SyncCallBackImpl());
        //建立与服务器的网络连接。
        MPSync.appToForeground();

    }

    public class SyncCallBackImpl implements ISyncCallback
    {
        @Override
        public void onReceiveMessage(SyncMessage syncMessage) {
            //在 Logcat 打印数据同步数据。
            Log.e("=========",syncMessage.msgData);
            //通知数据同步服务端接收同步数据成功。
            MPSync.reportMsgReceived(syncMessage);
        }
    }

后续操作

接入服务端