Skip to content

0 Get Started

jwfing edited this page May 16, 2018 · 22 revisions

平台与 SDK 对应关系

LeanCloud Java SDK 主要包含以下几个 library,其层次结构以及平台对应关系如下:

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

  • storage-core:包含所有数据存储的功能,如
    • 结构化数据(AVObject)
    • 内建账户系统(AVUser)
    • 查询(AVQuery)
    • 文件存储(AVFile)
    • 社交关系(AVFriendship,当前版本暂不提供)
    • 朋友圈(AVStatus,当前版本暂不提供)
    • 短信(AVSMS)
    • 等等
  • realtime-sdk:部分依赖 storage-core library,实现了 LiveQuery 以及实时通信功能,如:
    • LiveQuery
    • AVIMClient
    • AVIMConversation 以及多种场景对话
    • AVIMMessage 以及多种子类化的多媒体消息
    • 等等

Android 特有的包

  • storage-android:是 storage-core 在 Android 平台的定制化实现,接口与 storage-core 完全相同。
  • push-android:是 realtime-sdk 在 Android 平台的定制化实现,并且增加 Android 推送相关接口。

模块依赖关系

Java SDK 一共包含如下几个模块:

目录 模块名 适用平台 依赖关系
./core storage-core,存储核心 library java 无,它是 LeanCloud 最核心的 library
./realtime realtime-sdk,LiveQuery 与实时通讯核心 library java storage-core
./leanengine-sdk leanengine-sdk,云引擎 library java storage-core
./android-sdk/storage-sdk storage-android,Android 存储 library Android storage-core
./android-sdk/push-sdk realtime-android,Android 推送、LiveQuery、实时通讯 library Android storage-android, realtime-core

获取 SDK

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

包依赖管理工具安装

Example for Maven:

<dependency>
    <groupId>cn.leancoud</groupId>
    <artifactId>storage-core</artifactId>
    <version>5.0.0</version>
</dependency>

and for Ivy:

<dependency org="cn.leancloud" name="storage-core" rev="5.0.0" />

and for SBT:

libraryDependencies += "cn.leancloud" %% "storage-core" % "5.0.0"

and for Gradle:

compile 'cn.leancloud:storage-android:5.0.0'

手动安装

从源码编译

To check out and build the LeanCloud Java SDK source, issue the following commands:

$ git clone [email protected]:leancloud/java-sdk-all.git
$ cd java-sdk-all/
$ mvn clean install

To build Android SDK source, issue the following commands:

$ cd java-sdk-all/
$ cd android-sdk/
$ ./gradlew clean build

初始化

假设已经设置好了 SDK 依赖关系,可以开始功能接入了,我们首先看一下如何进行 SDK 的初始化。

获取 appId 与 appKey

首先进入 控制台 > 设置 > 应用 Key 来获取 App ID 以及 App Key。

Java 平台初始化代码

在程序执行之初,执行如下代码即可完成初始化:

AVOSCloud.initialize("{your_appId}}","{your_appKey}");

将上述代码中的 App ID 以及 App Key 替换成从控制台复制粘贴的对应的数据即可。

Android 平台初始化

在 Application 类的 onCreate 函数中,加入如下代码:

public class MyLeanCloudApp extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        // 初始化参数依次为 this, AppId, AppKey
        AVOSCloud.initialize(this,"{your_appId}}","{your_appKey}");
    }
}

然后打开 AndroidManifest.xml 文件来配置 SDK 所需要的手机的访问权限以及声明刚才我们创建的 MyLeanCloudApp 类:

<!-- 基础模块(必须加入以下声明)START -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 基础模块 END -->

<application
  ...
  android:name=".MyLeanCloudApp" >

  <!-- 实时通信模块、推送(均需要加入以下声明) START -->
  <!-- 实时通信模块、推送都要使用 PushService -->
  <service android:name="com.avos.avoscloud.PushService"/>
  <receiver android:name="com.avos.avoscloud.AVBroadcastReceiver">
    <intent-filter>
      <action android:name="android.intent.action.BOOT_COMPLETED"/>
      <action android:name="android.intent.action.USER_PRESENT"/>
      <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
  </receiver>
  <!-- 实时通信模块、推送 END -->

  <!-- 反馈组件(需要加入以下声明)START -->
  <activity
     android:name="com.avos.avoscloud.feedback.ThreadActivity" >
  </activity>
  <!-- 反馈组件 END -->
</application>

开启调试日志

在应用开发阶段,你可以选择开启 SDK 的调试日志(debug log)来方便追踪问题。调试日志开启后,SDK 会把网络请求、错误消息等信息输出到 IDE 的日志窗口,或是浏览器 Console 或是 LeanCloud 控制台的 云引擎日志 中。

// 在 AVOSCloud.initialize 之前调用
AVOSCloud.setLogLevel(AVLogger.Level.DEBUG);// or AVOSCloud.setLogLevel(AVLogger.Level.VERBOSE);

指定服务节点

SDK 的初始化方法默认使用中国华北节点,如需切换到 其他可用节点,请参考如下用法:

// 在 AVOSCloud.initialize 之前调用
// 可选的节点有:
//    REGION.NorthChina - 华北节点,默认节点
//    REGION.EastChina  - 华东节点
//    REGION.NorthAmerica - 北美节点
AVOSCloud.setRegion(AVOSCloud.REGION.NorthChina);

Clone this wiki locally