Android集成Bmob后端云

简介: Android集成Bmob后端云

Bmob 后端云 全方位一体化的后端服务平台

无需再造应用后端服务 轻松拥有开发中需要的各种后端能力


功能比较多,常用的比如数据库、推送统计、IM即时通讯、短信等

本文主要介绍集成和云数据库的基本使用,文档写的很详细,而且还有demo和视频教程。


Bmob:http://www.bmob.cn/

文档:http://doc.bmob.cn/data/android/index.html


创建应用

注册就不用说了吧。。


注册之后选择创建应用

image.png



创建之后,点击你的应用

image.png



这个时候可以看到已经默认建了一个user表,但是没有数据,上面的菜单栏也可以直接进行增删改查操作

image.png



左边导航栏的最下面有个设置,点击可以查看application id,初始化会用到

image.png



集成

1.在 Project 的 build.gradle 文件中添加 Bmob的maven仓库地址,注释部分

allprojects {
    repositories {
        google()
        jcenter()
        //Bmob的maven仓库地址--必填
        maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" }
    }
}

2.在app的build.gradle文件中添加compile依赖文件,注释部分

apply plugin: 'com.android.application'


android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.yechaoa.mybmob"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    //兼容6.0
    useLibrary 'org.apache.http.legacy'
}
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    //以下SDK开发者请根据需要自行选择
    //bmob-sdk:Bmob的android sdk包,包含了Bmob的数据存储、文件等服务,以下是最新的bmob-sdk:
    //3.5.5:请务必查看下面注释[1]
    compile 'cn.bmob.android:bmob-sdk:3.5.5'
    //bmob-push:Bmob的推送包
    compile 'cn.bmob.android:bmob-push:0.8'
}

3.配置AndroidManifest.xml

<!--允许联网 -->
    <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" />
    <!--保持CPU 运转,屏幕和键盘灯有可能是关闭的,用于文件上传和下载 -->
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <!--获取sd卡写的权限,用于文件上传和下载-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!--允许读取手机状态 用于创建BmobInstallation-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

4.初始化BmobSDK

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

这里注意换成你的application id


package com.bmob.example;
import cn.bmob.v3.Bmob;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
         // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
         //提供以下两种方式进行初始化操作:
        //第一:默认初始化
        Bmob.initialize(this, "Your Application ID");
        // 注:自v3.5.2开始,数据sdk内部缝合了统计sdk,开发者无需额外集成,传渠道参数即可,不传默认没开启数据统计功能
        //Bmob.initialize(this, "Your Application ID","bmob");
        //第二:自v3.4.7版本开始,设置BmobConfig,允许设置请求超时时间、文件分片上传时每片的大小、文件的过期时间(单位为秒),
        //BmobConfig config =new BmobConfig.Builder(this)
        设置appkey
        //.setApplicationId("Your Application ID")
        请求超时时间(单位为秒):默认15s
        //.setConnectTimeout(30)
        文件分片上传时每片的大小(单位字节),默认512*1024
        //.setUploadBlockSize(1024*1024)
        文件的过期时间(单位为秒):默认1800s
        //.setFileExpiration(2500)
        //.build();
        //Bmob.initialize(config);
    }
}

ok,到这里集成工作就完成了。基本上不会遇到问题。


基本使用

1.添加一条数据

新建Person类,必须继承BmobObject对象,Person也是对应的数据库的表名,可以改,看下面注释。


package com.yechaoa.mybmob;
import cn.bmob.v3.BmobObject;
/**
 * Created by yechao on 2018/2/9.
 * Describe :
 */
public class Person extends BmobObject {
    private String name;
    private String address;
    //这时候表名就是T_a_b,而不是Person
    //当然了,除了在构造函数中直接调用setTableName方法之外,你还可以在GameScore的实例中动态调用setTableName方法。
    //需要注意的是查询的结果是JSONArray,需要自行解析JSONArray中的数据。
//    public Person() {
//        this.setTableName("T_a_b");
//    }
    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;
    }
}

调用save方法添加数据,添加成功之后会返回objectId,唯一标识,后续删改查都会用到


 

private void initSaveData() {
        Person p2 = new Person();
        p2.setName("yechaoa");
        p2.setAddress("上海浦东");
        p2.save(new SaveListener<String>() {
            @Override
            public void done(String objectId, BmobException e) {
                if (e == null) {
                    toast("添加数据成功,返回objectId为:" + objectId);
                    mTextView.setText("添加数据成功,返回objectId为:" + objectId);
                } else {
                    toast("创建数据失败:" + e.getMessage());
                    mTextView.setText("创建数据失败:" + e.getMessage());
                }
            }
        });
    }

刷新控制台可以看到,多了一个Person表,且有一条数据,就是刚才插入的。

image.png



2.查询多条数据

private void queryList() {
        BmobQuery<Person> query = new BmobQuery<Person>();
        //查询name叫“yechaoa”的数据
        query.addWhereEqualTo("name", "yechaoa");
        //返回50条数据,如果不加上这条语句,默认返回10条数据
        query.setLimit(50);
        //执行查询方法
        query.findObjects(new FindListener<Person>() {
            @Override
            public void done(List<Person> object, BmobException e) {
                if (e == null) {
                    toast("查询成功:共" + object.size() + "条数据。");
                    mTextView.setText("查询成功:共" + object.size() + "条数据。");
                    for (Person person : object) {
                        //获得name的信息
                        person.getName();
                        //获得数据的objectId信息
                        person.getObjectId();
                        //获得createdAt数据创建时间(注意是:createdAt,不是createAt)
                        person.getCreatedAt();
                    }
                } else {
                    toast("失败:" + e.getMessage() + "," + e.getErrorCode());
                    mTextView.setText("失败:" + e.getMessage() + "," + e.getErrorCode());
                }
            }
        });
    }

有查询条件、分页,也有联表查、模糊查找等等,尽在官方文档。


目录
相关文章
|
3月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
233 1
|
19天前
|
Java 程序员 API
Android|集成 slf4j + logback 作为日志框架
做个简单改造,统一 Android APP 和 Java 后端项目打印日志的体验。
73 1
|
2月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
150 0
|
3月前
|
开发者 存储 API
Xamarin 云服务集成竟然如此强大,简化后端开发不再是梦,数据存储、用户认证、推送通知全搞定!
【8月更文挑战第31天】Xamarin 是一款强大的跨平台移动应用开发工具,通过与云服务集成,显著简化了后端开发。开发者无需自行搭建服务器,即可利用云服务提供的数据存储、用户认证、推送通知等功能,大幅减少数据库设计、服务器配置及 API 开发的时间成本。借助 Azure Mobile Apps 等云服务,Xamarin 可轻松实现数据存取操作,同时增强应用安全性与用户参与度,使开发者更专注于业务逻辑和用户体验,提升开发效率并降低成本。这种方式在快速发展的移动应用领域极具价值。
56 0
|
3月前
|
开发者 算法 虚拟化
惊爆!Uno Platform 调试与性能分析终极攻略,从工具运用到代码优化,带你攻克开发难题成就完美应用
【8月更文挑战第31天】在 Uno Platform 中,调试可通过 Visual Studio 设置断点和逐步执行代码实现,同时浏览器开发者工具有助于 Web 版本调试。性能分析则利用 Visual Studio 的性能分析器检查 CPU 和内存使用情况,还可通过记录时间戳进行简单分析。优化性能涉及代码逻辑优化、资源管理和用户界面简化,综合利用平台提供的工具和技术,确保应用高效稳定运行。
83 0
|
3月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
全面解析TensorFlow Lite:从模型转换到Android应用集成,教你如何在移动设备上轻松部署轻量级机器学习模型,实现高效本地推理
【8月更文挑战第31天】本文通过技术综述介绍了如何使用TensorFlow Lite将机器学习模型部署至移动设备。从创建、训练模型开始,详细演示了模型向TensorFlow Lite格式的转换过程,并指导如何在Android应用中集成该模型以实现预测功能,突显了TensorFlow Lite在资源受限环境中的优势及灵活性。
211 0
|
3月前
|
消息中间件 NoSQL 调度
Django后端架构开发:Django 与 Celery 的深度集成
Django后端架构开发:Django 与 Celery 的深度集成
165 0
|
5月前
|
存储 NoSQL Java
大事件后端项目34_登录优化----redis_SpringBoot集成redis
大事件后端项目34_登录优化----redis_SpringBoot集成redis
大事件后端项目34_登录优化----redis_SpringBoot集成redis
|
5月前
|
对象存储
大事件后端项目32--------文件上传_阿里云OSS_程序集成
大事件后端项目32--------文件上传_阿里云OSS_程序集成
|
5月前
|
存储 Java 数据库
如何在Spring Boot中集成Firebase实现移动应用后端
如何在Spring Boot中集成Firebase实现移动应用后端

热门文章

最新文章