在前面聊过一些使用baas实现一些功能的内容,今天简单聊一下基础的东西吧
没有服务端的app就是个空壳,但对个人开发者而言,服务端的搭建和部署一直是个问题,目前的方法通常就是借助后端云服务
一、移动后端服务介绍
移动后端即服务--Backend as a Service也叫Baas。
简而言之,Baas就是帮我们把服务器端的东西全部打包了,做移动端的人不用再考虑如何写服务器端、如何设计数据库、搭建服务器等,它把这一切都放在了云端。
Baas的概念最早来源于国外的一些网站,比较老牌的有StackMob和Parse。后来Amazon、Kinvey等都先后加入了Bass的舞台。
国内的Baas平台,除了最早期的Bmob以外,还有原子云、AVOS Cloud、百度frontia、华为PowerApp等。
通常Baas平台会为开发者提供一系列的云端服务,一般包括数据储存、消息推送、文件服务、API分析、应用统计、移动官网等。不同的Baas提供商提供的服务各有不同,也各有侧重点。本文以Bmob为例,讲解如何利用Baas在云端搭建移动平台的服务器端。
二、使用Bmob创建移动后端服务
准备工作
注册并登录进入bmob后台后,点击后台界面左上角“创建应用”,在弹出框输入你应用的名称,然后确认,你就拥有了一个等待开发的应用。
在跳转页面,进入设置/应用密钥,点击复制,即可得到Application ID
密钥.png
接下来,进入正题啦~
第一步:下载SDK,Bmob官网地址:www.bmob.cn
Bmob官网.png
sdk下载.png
第二步:创建应用,将下载的SDK解压,把解压后的文件夹中所有的jar包都拷入项目的libs文件夹下;
第三步:在项目的AndroidMainfest.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" />
<?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-sdk android:minSdkVersion="8" android:targetSdkVersion="17"/> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme"> <activity android:name="cn.bmob.example.MainActivity" android:screenOrientation="portrait" android:label="@string/app_name"> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> <activity android:name=".CreateActivity" android:screenOrientation="portrait"> <activity android:name=".DeleteActivity" android:screenOrientation="portrait"> <activity android:name=".UpdateActivity" android:screenOrientation="portrait"> <activity android:name=".FindActivity" android:screenOrientation="portrait"> </application></manifest>
第四步:初始化BmobSDK
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.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); } }
关于应用的ID,我们在前面已经获取了
上述四步完成之后,整个Bmob项目的准备工作也就完成了。
三、数据服务
添加一行数据
首先创建一个JavaBean,这个类需要继承BmobObject
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的数据表中看到有一行新增的数据,如下图所示:
newdata.png
获取一行数据
//查找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()); } } });
四、其他服务
其他的还有一些服务,短信、即时通信、推送、支付、云端代码、容器服务等,前面文章聊过支付的一些内容,有时间再继续更新
作者:大王12
链接:https://www.jianshu.com/p/e37ef3a83975