Java Unified SDK 版本升级,老版本 Android SDK 和云引擎 SDK 将于 9 月底停止维护

我们在 2018 年 9 月推出了 Java Unified SDK,该 SDK 可以在 Java、Android 和 LeanCloud 云引擎三种环境下运行,支持数据存储、LiveQuery、即时通讯、云函数、推送和混合推送等全部核心功能,并且开放所有源代码(代码见这里)。本周我们对 Java Unified SDK 进行了小版升级,当前最新版本为 5.0.13 ,老版本 Android SDK 和云引擎 SDK 则将于 2019 年 9 月底完全停止维护。

由于不同平台的 SDK 版本众多,这里我们给大家梳理一下 Android/Java SDK 的版本分布以及将来的持续开发计划,帮助开发者快速升级或者选择到合适的 SDK 版本。

老 Android SDK

LeanCloud 服务上线之初,就推出了原生的 Android SDK,演变至今,因为功能的不同,老的 Android SDK 已经分为了多个 library:

  • 核心 SDK (cn.leancloud.android:avoscloud-sdk)
  • 推送和 RTM SDK (cn.leancloud.android:avoscloud-push)
  • 混合推送 SDK (cn.leancloud.android:avoscloud-mixpush)
  • FCM 推送 SDK (cn.leancloud.android:avoscloud-fcm)
  • 应用内搜索插件 (cn.leancloud.android:avoscloud-search)
  • 用户反馈插件 (cn.leancloud.android:avoscloud-feedback)

各个 library 依赖关系如下:

cn.leancloud.android:avoscloud-feedback/avoscloud-search
 +- cn.leancloud.android:avoscloud-sdk

cn.leancloud.android:avoscloud-fcm/avoscloud-mixpush
 +- cn.leancloud.android:avoscloud-push

cn.leancloud.android:avoscloud-push
 +- org.java-websocket:Java-WebSocket:1.3.9
 +- com.google.protobuf:protobuf-java:3.4.0
 +- cn.leancloud.android:avoscloud-sdk
    +- com.squareup.okhttp3:okhttp:3.8.1
    +- com.alibaba:fastjson:1.2.37

上面这些库都已经发布到了 Maven Central Repo,当前最新版本为 4.7.12,他们最终都会被新的 Java Unified SDK 所取代。

老版本云引擎 SDK

为了支持云引擎的功能,也因为 Android SDK 与 OS 绑定过于紧密,所以我们推出第一版云引擎 SDK 的时候,重新实现了 LeanCloud 核心 SDK 的功能,形成了云引擎运行环境使用的一套专用 SDK:leanengine-java-sdk( group: cn.leancloud, artifactId: leanengine ),最新版本为: 0.3.3 。leanengine-java-sdk 的主要依赖如下:

cn.leancloud:leanengine
 +- cn.leancloud:java-sdk (LeanCloud Java Runtime SDK)
 |  +- cn.leancloud:fastjson-leancloud (*)
 |  +- org.json:json
 |  +- cn.leancloud:okhttp-leancloud(*)
 |  |  - cn.leancloud:okio-leancloud(*)
 |  +- cn.leancloud:leancloud-common (LeanCloud 底层核心 SDK)
 |  +- cn.leancloud:android-stub (LeanCloud 模拟的 Android OS 接口层)
 |  +- org.apache.httpcomponents:httpcore
 |  - org.apache.httpcomponents:httpclient
 +- javax.servlet:javax.servlet-api

基于 Java 运行时的云引擎项目,都需要依赖 leanengine-java-sdk(详见模版项目:java-war-getting-started)。

云引擎 SDK 是完全独立的 codebase,并且还依赖于几个 LeanCloud 自己 fork 的、版本较老且已不再维护的基础 library:

  • cn.leancloud:fastjson-leancloud
  • cn.leancloud:okhttp-leancloud
  • cn.leancloud:okio-leancloud

与 Android SDK 一样,云引擎 SDK 也会被新的 Java Unified SDK 所取代。

Java Unified SDK

为了降低维护复杂度,统一 Android / Java SE 运行环境同样接口的行为,我们在 2018 年 9 月推出了 Java Unified SDK,希望用一套代码,来支持多个平台,降低内部维护难度的同时,也可以较好地保证不同平台上接口和功能的一致性。

新版 Unified SDK 发布之后,经过了多轮迭代,目前已经稳定并且被发布到了 Maven Central Repository

新的 RxJava 风格 API

老版本 SDK 所有的网络请求都是通过 Callback 方式实现的,在实现多轮前后衔接的业务逻辑时会导致代码嵌套层级过多,影响阅读,同时在 Java 开发环境下这种异步的方式也不太友好。为此,Java Unified SDK 的存储接口完全基于 RxJava 来构建(同时也兼容老的 Callback 方式),通过函数式编程风格的改变,给业务开发带来更多便利。

新 SDK 层次与依赖

Java Unified SDK 主要包含以下几个 library,其层次结构以及平台对应关系如下(完整列表见这里):

  • 基础包(可以在纯 Java 环境下调用)

    • storage-core:包含所有数据存储的功能
    • realtime-core:部分依赖 storage-core library,实现了 LiveQuery 以及即时通讯功能
  • 云引擎使用的包

    • engine-core:是 LeanCloud 云引擎项目需要依赖的包。
  • Android 特有的包

    • storage-android:是 storage-core 在 Android 平台的定制化实现,接口与 storage-core 完全相同。
    • realtime-android:是 realtime-core 在 Android 平台的定制化实现,并且增加 Android 推送相关接口。
    • mixpush-android:是 LeanCloud 混合推送的 library,支持华为、小米、魅族的官方推送。
    • leancloud-fcm:是 Firebase Cloud Messaging 的封装 library,供美国节点的 app 使用推送服务。

如何使用新 SDK

获取 SDK

获取 SDK 有多种方式,较为推荐的方式是通过包依赖管理工具下载最新版本。具体可参考文档:获取 SDK

Android 开发环境 Sample

云引擎 Sample

在公开的云引擎模版项目上,我们新建了一个分支,用来完成 Java Unified SDK 的集成,具体可以参考代码java-war-getting-started(v5.x分支)

评论

正在加载评论