创建应用

登录账号进入bmob后台后,点击后台界面左上角“创建应用”,在弹出框输入你应用的名称,然后确认,你就拥有了一个等待开发的应用。

获取应用密钥

选择你要开发的应用,进入该应用

在跳转页面,进入设置/应用密钥,点击复制,即可得到Application ID

下载导入SDK包

打开 Android Studio 应用 Gradle Scripts 下的 build.gradle(Module :你的应用名称) 文件,在 dependencies 节点中,新增如下的 依赖包 信息:

dependencies {
    implementation 'io.github.bmob:android-sdk:4.0.7'
    implementation 'io.reactivex.rxjava3:rxjava:3.1.9'
    implementation 'io.reactivex.rxjava3:rxandroid:3.0.2'
    implementation 'com.squareup.okhttp3:okhttp:4.8.1'
    implementation 'com.squareup.okio:okio:2.2.2'
    implementation 'com.google.code.gson:gson:2.8.5'
}

然后点击这个文件右上角的Sync Now按钮,如下图所示:

这时候,Gradle会自动下载Bmob SDK和需要的包,在Android Studio开发工具的右下角可以看到下载安装的进度(正常网络情况下,这个过程需要三分钟左右)。

创建Application子类

新建一个继承自Application的子类BmobApp。代码如下:

public class BmobApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Bmob.initialize(this, "你的application id");
    }
}

配置AndroidManifest.xml

在你的应用程序的AndroidManifest.xml文件中添加如下的应用类名权限ContentProvider信息:

<?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="cn.bmob.example"
        android:versionCode="1"
        android:versionName="1.0">

    <!--允许联网 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!--获取GSM(2g)、WCDMA(联通3g)等网络状态的信息  -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!--获取wifi网络状态的信息 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!--获取sd卡写的权限,用于文件上传和下载-->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!--允许读取手机状态 用于创建BmobInstallation-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

    <application
        android:name=".BmobApp"
        ....其他信息>
        <activity
            ...其他信息
        </activity>

        <!--添加ContentProvider信息 -->
        <provider
            android:name="cn.bmob.v3.util.BmobContentProvider"
            android:authorities="你的应用包名.BmobContentProvider">
        </provider>
    </application>
</manifest>

添加一行数据

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

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

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
}

添加数据

Person p2 = new Person();
p2.setName("lucky");
p2.setAddress("北京海淀");
p2.save(new SaveListener<String>() {
    @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<Person> bmobQuery = new BmobQuery<Person>();
bmobQuery.getObject("6b6c11c537", new QueryListener<Person>() {
    @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() {

    @Override
    public void done(BmobException e) {
        if(e==null){
            //toast("更新成功:"+p2.getUpdatedAt());
        }else{
            //toast("更新失败:" + e.getMessage());
        }
    }

});

删除一行数据

Person p2 = new Person();
p2.setObjectId("6b6c11c537");
p2.delete(new UpdateListener() {

    @Override
    public void done(BmobException e) {
        if(e==null){
            //toast("删除成功:"+p2.getUpdatedAt());
        }else{
            //toast("删除失败:" + e.getMessage());
        }
    }

});

更新日志

v4.0.7 2024-11-12

Features

  • 修正了存在构造函数抛出异常的bug。

v4.0.6 2024-10-23

Features

  • 调整重置域名方法,对不合规的域名形式进行了修正。
  • 对写了构造函数的继承自BmobObject的类进行了处理,SDK会直接抛出异常。

v4.0.5 2024-10-16

Features

  • 新增调试模式,调试模式下,SDK会打印请求的json结构。

v4.0.4 2024-09-26

Features

  • 自动更新组件新增BmobUpdateAgent.setUpdateDownloadListener方法,点击下载安装后返回成功或者失败的回调结果。

常见的9015错误如何解决

点击查看9015问题如何解决

源码下载

快速入门相关源码下载

为方便大家更好的理解Bmob SDK能够做的事情,我们还特意为大家提供了一些源码,大家可以下载之后,嵌入Bmob的AppKey,再打包运行。

图文社区案例源码:https://github.com/bmob/Wonderful 这个案例是猿圈媛圈开发团队提供的。

短信注册登录案例源码:https://github.com/bmob/bmob_android_demo_sms

校园小菜案例源码:https://github.com/bmob/Shop 这个案例是湖工大的朋友提供的。