项目作者: BillZhaoZ

项目描述 :
云数据库---Bmob使用
高级语言: Java
项目地址: git://github.com/BillZhaoZ/BmobTestDemo.git
创建时间: 2017-09-19T09:47:01Z
项目社区:https://github.com/BillZhaoZ/BmobTestDemo

开源协议:

下载


BmobTestDemo

云数据库—-Bmob使用

Bmob后端云介绍:https://www.bmob.cn/

注册账号、创建应用
https://docs.bmob.cn/data/Android/a_faststart/doc/index.html

AS集成

  1. SDK导入
  2. AndroidStudio配置
  3. 鉴于目前Google官方推荐使用 Android Studio 进行Android项目开发,自 V3.4.2 开始,
  4. Bmob Android SDK 可以使用Gradle来进行包依赖管理,如果你使用Android Studio来进行基于BmobSDK的项目开发,有两种方式:
  5. 自动导入(推荐)

请按照如下两个步骤进行:
在 Project 的 build.gradle 文件中添加 Bmob的maven仓库地址,示例如下:(注意文字说明部分):

buildscript {
repositories {
jcenter()
}
dependencies {
classpath ‘com.android.tools.build:gradle:1.2.3’
}
}

allprojects {
repositories {
jcenter()
//Bmob的maven仓库地址—必填
maven { url “https://raw.github.com/bmob/bmob-android-sdk/master“ }
}
}
在app的build.gradle文件中添加compile依赖文件,示例如下:(注意文字说明部分):

apply plugin: ‘com.android.application’

android {
compileSdkVersion 22
buildToolsVersion ‘22.0.1’

  1. **兼容Android6.0系统所需,如果这句话报错,可在dependencies标签下使用compile 'cn.bmob.android:http-legacy:1.0'**
  2. useLibrary 'org.apache.http.legacy'
  3. ...

}
dependencies {
compile fileTree(dir: ‘libs’, include: [‘*.jar’])

  1. //以下SDK开发者请根据需要自行选择
  2. //bmob-sdk:Bmob的android sdk包,包含了Bmob的数据存储、文件等服务,以下是最新的bmob-sdk:
  3. //3.5.5:请务必查看下面注释[1]
  4. compile 'cn.bmob.android:bmob-sdk:3.5.5'
  5. //bmob-push:Bmob的推送包
  6. compile 'cn.bmob.android:bmob-push:0.8'
  7. //bmob-im:Bmob的即时通讯包,注意每个版本的im依赖特定版本的bmob-sdk,具体的依赖关系可查看下面注释[2]
  8. compile 'cn.bmob.android:bmob-im:2.0.5@aar'
  9. compile 'cn.bmob.android:bmob-sdk:3.4.7-aar'
  10. //bmob-sms :Bmob单独为短信服务提供的包
  11. compile 'cn.bmob.android:bmob-sms:1.0.1'
  12. //如果你想应用能够兼容Android6.0,请添加此依赖(org.apache.http.legacy.jar)
  13. compile 'cn.bmob.android:http-legacy:1.0'
  14. }
  15. 配置AndroidManifest.xml

在你的应用程序的AndroidManifest.xml文件中添加相应的权限:







<?xml version=”1.0” encoding=”utf-8”?>

  1. <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17"></uses-sdk>
  2. <uses-permission android:name="android.permission.INTERNET" ></uses-permission>
  3. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" ></uses-permission>
  4. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" ></uses-permission>
  5. <uses-permission android:name="android.permission.WAKE_LOCK" ></uses-permission>
  6. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" ></uses-permission>
  7. <uses-permission android:name="android.permission.READ_PHONE_STATE" ></uses-permission>
  8. <application
  9. android:allowBackup="true"
  10. android:icon="@drawable/ic_launcher"
  11. android:label="@string/app_name"
  12. android:theme="@style/AppTheme">
  13. <activity
  14. android:name="cn.bmob.example.MainActivity"
  15. android:screenOrientation="portrait"
  16. android:label="@string/app_name">
  17. <action android:name="android.intent.action.MAIN"></action>
  18. <category android:name="android.intent.category.LAUNCHER"></category>
  19. <activity
  20. android:name=".CreateActivity"
  21. android:screenOrientation="portrait">
  22. <activity
  23. android:name=".DeleteActivity"
  24. android:screenOrientation="portrait">
  25. <activity
  26. android:name=".UpdateActivity"
  27. android:screenOrientation="portrait">
  28. <activity
  29. android:name=".FindActivity"
  30. android:screenOrientation="portrait">
  31. </application>


初始化BmobSDK
在你应用程序启动的Activity的onCreate()方法中初始化Bmob功能。代码如下所示:

public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//提供以下两种方式进行初始化操作:

  1. //第一:默认初始化
  2. Bmob.initialize(this, "Your Application ID");
  3. // 注:自v3.5.2开始,数据sdk内部缝合了统计sdk,开发者无需额外集成,传渠道参数即可,不传默认没开启数据统计功能
  4. //Bmob.initialize(this, "Your Application ID","bmob");
  5. //第二:自v3.4.7版本开始,设置BmobConfig,允许设置请求超时时间、文件分片上传时每片的大小、文件的过期时间(单位为秒),
  6. //BmobConfig config =new BmobConfig.Builder(this)
  7. ////设置appkey
  8. //.setApplicationId("Your Application ID")
  9. ////请求超时时间(单位为秒):默认15s
  10. //.setConnectTimeout(30)
  11. ////文件分片上传时每片的大小(单位字节),默认512*1024
  12. //.setUploadBlockSize(1024*1024)
  13. ////文件的过期时间(单位为秒):默认1800s
  14. //.setFileExpiration(2500)
  15. //.build();
  16. //Bmob.initialize(config);
  17. }

}

添加一行数据
首先创建JavaBean(对应为Bmob后台的数据表,更详细的解释请查看Android开发文档)

public class Person extends BmobObject {
private String name;
private String address;

  1. public String getName() {
  2. return name;
  3. }
  4. public void setName(String name) {
  5. this.name = name;
  6. }
  7. public String getAddress() {
  8. return address;
  9. }
  10. public void setAddress(String address) {
  11. this.address = address;
  12. }

}
添加数据

Person p2 = new Person();
p2.setName(“lucky”);
p2.setAddress(“北京海淀”);
p2.save(new SaveListener() {
@Override
public void done(String objectId,BmobException e) {
if(e==null){
toast(“添加数据成功,返回objectId为:”+objectId);
}else{
toast(“创建数据失败:” + e.getMessage());
}
}
});
如果toast出添加数据成功的消息,你会在Bmob对应Application Id的数据表中看到有一行新增的数据,如下图所示:

获取一行数据
//查找Person表里面id为6b6c11c537的数据
BmobQuery bmobQuery = new BmobQuery();
bmobQuery.getObject(“6b6c11c537”, new >QueryListener() {
@Override
public void done(Person object,BmobException e) {
if(e==null){
toast(“查询成功”);
}else{
toast(“查询失败:” + e.getMessage());
}
}
});
修改一行数据
//更新Person表里面id为6b6c11c537的数据,address内容更新为“北京朝阳”
Person p2 = new Person();
p2.setAddress(“北京朝阳”);
p2.update(“6b6c11c537”, new UpdateListener() {

  1. @Override
  2. public void done(BmobException e) {
  3. if(e==null){
  4. toast("更新成功:"+p2.getUpdatedAt());
  5. }else{
  6. toast("更新失败:" + e.getMessage());
  7. }
  8. }

});
删除一行数据
Person p2 = new Person();
p2.setObjectId(“6b6c11c537”);
p2.delete(new UpdateListener() {

  1. @Override
  2. public void done(BmobException e) {
  3. if(e==null){
  4. toast("删除成功:"+p2.getUpdatedAt());
  5. }else{
  6. toast("删除失败:" + e.getMessage());
  7. }
  8. }

});