数据存储、即时通讯 Java SDK 配置
SDK 维护期说明
我们于 2018 年 9 月推出了新的 Java Unified SDK,兼容纯 Java、云引擎和 Android 等多个平台,老的 Android SDK(版本号低于 5.0.0
,groupId
为 cn.leancloud.android
的 libraries)已于 2019 年 9 月底停止维护。
Java Unified SDK 根据底层依赖的 JSON 解析库的不同,有两个不同分支:
两个版本的对外接口完全一致,但是考虑到平台兼容性和稳定性,我们推荐大家使用带 Gson 库的版本来进行开发。
从 2021 年 6 月开始,我们推出了 8.0 版本,与 7.x 版本相比,主要的变化是改变了公开类的前缀(AV
-> LC
),同时也删除了一些长期处于 deprecated
状态的接口,它将是我们今后会长期维护的版本。欢迎老 SDK 的用户尽快切换到新的 Java Unified SDK,具体迁移方法见 Java SDK 的 README。
请开发者注意,各个版本 SDK 的维护期如下:
- 6.0 以前版本已经停止维护。
- 原 7.x 版本从现在开始进入维护期(只改 bug,不增加新功能),并计划于 2022 年 6 月停止维护。
- 8.x 会是我们今后长期维护版本。
下面的流程都是基于 8.x 版本 Java Unified SDK 书写。
平台与 SDK 对应关系
Java SDK 主要包含以下几个 library,其层次结构以及平台对应关系如下:
基础包(可以在纯 Java 环境下调用)
- storage-core:包含所有数据存储的功能,如
- 结构化数据(LCObject)
- 内建账户系统(LCUser)
- 查询(LCQuery)
- 文件存储(LCFile)
- 社交关系(LCFriendship,当前版本暂不提供)
- 朋友圈(LCStatus,当前版本暂不提供)
- 短信(LCSMS)
- 等等
- realtime-core:部分依赖 storage-core library,实现了 LiveQuery 以及即时通讯功能,如:
- LiveQuery
- LCIMClient
- LCIMConversation 以及多种场景对话
- LCIMMessage 以及多种子类化的多媒体消息
- 等等
Android 特有的包
- storage-android:是 storage-core 在 Android 平台的定制化实现,接口与 storage-core 完全相同。
- realtime-android:是 realtime-core 在 Android 平台的定制化实现。
- leancloud-fcm:是 Firebase Cloud Messaging 的封装 library,供美国节点的 app 使用推送服务。
模块依赖关系
Java SDK 一共包含如下几个模块:
目录 | 模块名 | 适用平台 | 依赖关系 |
---|---|---|---|
./core | storage-core,存储核心 library | java | 无,它是 LeanCloud 最核心的 library |
./realtime | realtime-core,LiveQuery 与实时通讯核心 library | java | storage-core |
./android-sdk/storage-android | storage-android,Android 存储 library | Android | storage-core |
./android-sdk/realtime-android | realtime-android,LiveQuery、即时通讯 library | Android | storage-android, realtime-core |
获取 SDK
获取 SDK 有多种方式,较为推荐的方式是通过包依赖管理工具下载最新版本。
我们已经将所有的 library 发布到了 maven 中心仓库,开发者可以用以下任意包管理工具来安装 SDK。
使用存储功能
Maven:
<dependency>
<groupId>cn.leancloud</groupId>
<artifactId>storage-core</artifactId>
<version>8.0.1</version>
</dependency>
Ivy:
<dependency org="cn.leancloud" name="storage-core" rev="8.0.1" />
SBT:
libraryDependencies += "cn.leancloud" %% "storage-core" % "8.0.1"
Gradle:
implementation 'cn.leancloud:storage-core:8.0.1'
如果是 Android 项目,则换成以下这些包:
implementation 'cn.leancloud:storage-android:8.0.1'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'