JobPlus知识库 IT 软件开发 文章
使用云端服务 - 构建强有力的APP后端

一,移动后端服务介绍移动后端即服务 -  Back as a Service也叫Baas。

简而言之,Baas就是帮我们把服务器端的东西全部打包了,做移动端的人不用再考虑如何写服务器端,如何设计数据库,搭建服务器等,它把这一切都放在了云端。Baas
的概念最早来源于国外的一些网站,比较老牌的有StackMob和解析。后来亚马逊,Kinvey等都先后加入了低音的舞台。

国内的Baas平台,除了最早期的Bmob以外,还有原子云,AVOS Cloud,百度frontia,华为PowerApp等。

通常巴斯平台会为开发者提供一系列的云端服务,包括一般数据储存,消息推送,文件服务,API分析,应用统计,移动官网等。不同的巴斯提供商提供的服务各有不同,也各有侧重点。本文以Bmob为例,讲解如何利用巴斯在云端搭建移动平台的服务器端。

二,使用Bmob创建移动后端服务准备工作

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



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


密钥巴纽

接下来,进入正题啦〜第一步:下载SDK,Bmob官网地址:www.bmob.cn


Bmob官网巴纽


SDK下载巴纽

第二步:创建应用,将下载的SDK解压,把解压后的文件夹中所有的JAR包都拷入项目的库文件夹下;第三步:在项目的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>第四步:初始化BmobSDKpackage 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对应应用程序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());      }  } });四,其他服务

    其他的还有一些服务,短信,即时通信,推送,支付,云端代码,容器服务等,前面文章聊过支付的一些内容,有时间再继续更新


如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

¥ 打赏支持
337人赞 举报
分享到
用户评价(0)

暂无评价,你也可以发布评价哦:)

扫码APP

扫描使用APP

扫码使用

扫描使用小程序