Bmob是国内主流的移动应用开发后端云,为开发者提供了快速、简单、稳定、低成本的后端服务支持。这篇文章将对Bmob的原理和详细介绍进行阐述。
一、Bmob的原理
Bmob的底层是基于Bmob RESTFul API构建的,原则上支持Http/Https协议。Bmob中有三个概念:应用、用户和对象。应用是Bmob中的一个数据隔离单元,每个Bmob开发者都有一个或多个应用。用户可以通过Bmob的用户管理模块进行注册、登录、密码重置等操作。对象是指Bmob系统中存储的数据对象,在存储过程中可以根据需要自定义数据类型。
Bmob使用的是REST风格的API接口,这是常用的Web API接口设计风格,它是一种极具扩展性和灵活性的设计风格,通过简单的协议,可以使不同的系统、编程语言之间进行通讯。在Android应用开发中,我们可以使用Bmob提供的SDK实现调用。
Bmob使用RESTFul API的方式来实现数据存储,开发者会使用基于Http的GET和POST请求进行数据的读取和写入。Bmob SDK会将这些Http请求封装,使得数据存储和获取变得更加容易。Bmob还提供了许多其它的服务,例如:推送、地理位置等等。
二、Bmob的详细介绍
Bmob提供了完整的文档和SDK支持,操作很容易在Android应用开发中使用。下面我们将介绍Bmob的一些常见功能。
1.注册Bmob
在使用Bmob之前,你需要在官网上面注册账号,创建应用。注册完毕后,Bmob会提供一个应用ID和应用密钥,这是你使用Bmob存储数据、认证用户等操作都需要的重要信息。
2.数据存储
在Bmob中,数据以BmobObject对象的形式存储。开发者可以通过BmobObject对象读取和写入数据。下面是一个简单的例子:
```java
public class Person extends BmobObject {
private String name;
private Integer age;
//省略get/set方法
}
```
我们通过继承BmobObject类,就可以定义我们的数据表,并且为它添加字段。我们可以通过在每个字段上添加Bmob注解来控制数据表中字段的名称。 Bmob还提供了许多查询、排序等操作,例如:whereEqualTo(等于)、whereGreaterThan(大于)等。
3.用户认证
在Bmob中,我们可以使用BmobUser类和它所提供的属性和方法管理和认证用户。BmobUser类是存储在Bmob服务器上的用户数据模型。
在正式使用BmobUser之前,我们需要了解一些基本概念。BmobUser的继承结构如下图所示:
![bmob_user_structure](https://bmob-doc-1252463788.cos.ap-guangzhou.myqcloud.com/doc/5442162eae1af22e7e31991632b0d498.png)
BmobUser提供了三种类型的用户:普通用户、开发者测试账号和管理员账号。普通用户和管理员账号可以通过注册、登录等方式进行认证。开发者测试账号是Bmob提供给开发者测试所有功能的账号。
4.文件存储
Bmob提供了文件存储服务,支持绝大多数的文件类型(例如:文本文件、音频、视频、图片等)。下面是一个简单的例子:
```java
BmobFile bmobFile = new BmobFile(new File("文件路径"));
bmobFile.upload(new UploadFileListener() {
@Override
public void done(BmobException e) {
if (e == null) {
//文件上传成功
} else {
//文件上传失败
}
}
});
```
在Bmob中,上传文件需要使用BmobFile对象并调用其upload方法。如果文件上传成功,则会返回文件的url地址。文件url地址可以存储在BmobObject对象中,便于造作。
5.推送服务
在Bmob中,Push Service可以对Android,IOS,以及本身的Web应用进行推送。推送的路由是采用订阅模式,在终端之间进行数据传递,可以支持广播、单点和一对一三种发送方式。
我们首先需要在应用管理页面打开推送服务,并且获取Bmob系统产生的APP_KEY、SECRET_KEY、MASTER_SECRET等参数。然后,我们需要在客户端集成Bmob Push SDK,然后在启动的时候调用初始化方法。在推送前还需要设定推送选项以及推送消息的内容。
这是一个简单的例子:
```java
BmobPushManager bmobPush = new BmobPushManager();
bmobPush.pushMessage("消息内容");
```
以上例中,我们通过BmobPushManager推送了一条简单的消息。
6.其他服务
除了上面介绍的功能以外,Bmob还提供了以下服务:
(1)即时通讯服务:Bmob提供了即时通讯服务,支持文本、语音、图片等多种消息类型。
(2)定位服务:Bmob支持获取用户的地理位置信息。
(3)短信服务:Bmob支持短信验证码、短信通知等服务。
(4)第三方登录:Bmob支持第三方登录,例如:微信、QQ等。
总之,Bmob是一款非常强大的移动应用开发后端云,提供了丰富的功能和完善的文档和SDK支持。它的底层是基于Bmob RESTFul API构建的,使得数据存储和获取变得更加容易,而Bmob的使用也是非常简单的,值得开发者进一步探索。