在前面聊過一些使用baas實現(xiàn)一些功能的內(nèi)容牺陶,今天簡單聊一下基礎的東西吧
沒有服務端的app就是個空殼昧甘,但對個人開發(fā)者而言坑傅,服務端的搭建和部署一直是個問題,目前的方法通常就是借助后端云服務
一疮方、移動后端服務介紹
移動后端即服務--Backend as a Service也叫Baas控嗜。
簡而言之,Baas就是幫我們把服務器端的東西全部打包了骡显,做移動端的人不用再考慮如何寫服務器端疆栏、如何設計數(shù)據(jù)庫、搭建服務器等蟆盐,它把這一切都放在了云端。
Baas的概念最早來源于國外的一些網(wǎng)站遭殉,比較老牌的有StackMob和Parse石挂。后來Amazon、Kinvey等都先后加入了Bass的舞臺险污。
國內(nèi)的Baas平臺痹愚,除了最早期的Bmob以外富岳,還有原子云、AVOS Cloud拯腮、百度frontia窖式、華為PowerApp等。
通常Baas平臺會為開發(fā)者提供一系列的云端服務动壤,一般包括數(shù)據(jù)儲存萝喘、消息推送、文件服務琼懊、API分析阁簸、應用統(tǒng)計、移動官網(wǎng)等哼丈。不同的Baas提供商提供的服務各有不同启妹,也各有側(cè)重點。本文以Bmob為例醉旦,講解如何利用Baas在云端搭建移動平臺的服務器端饶米。
二、使用Bmob創(chuàng)建移動后端服務
準備工作
注冊并登錄進入bmob后臺后车胡,點擊后臺界面左上角“創(chuàng)建應用”檬输,在彈出框輸入你應用的名稱,然后確認吨拍,你就擁有了一個等待開發(fā)的應用褪猛。
在跳轉(zhuǎn)頁面,進入設置/應用密鑰羹饰,點擊復制伊滋,即可得到Application ID
接下來,進入正題啦~
第一步:下載SDK队秩,Bmob官網(wǎng)地址:www.bmob.cn
第二步:創(chuàng)建應用笑旺,將下載的SDK解壓,把解壓后的文件夾中所有的jar包都拷入項目的libs文件夾下馍资;
第三步:在項目的AndroidMainfest.xml文件中添加相應的權限:
<!--允許聯(lián)網(wǎng) -->
<uses-permission android:name="android.permission.INTERNET" />
<!--獲取GSM(2g)筒主、WCDMA(聯(lián)通3g)等網(wǎng)絡狀態(tài)的信息 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--獲取wifi網(wǎng)絡狀態(tài)的信息 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--保持CPU 運轉(zhuǎn),屏幕和鍵盤燈有可能是關閉的,用于文件上傳和下載 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!--獲取sd卡寫的權限鸟蟹,用于文件上傳和下載-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--允許讀取手機狀態(tài) 用于創(chuàng)建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)
////文件分片上傳時每片的大刑僭稀(單位字節(jié)),默認512*1024
//.setUploadBlockSize(1024*1024)
////文件的過期時間(單位為秒):默認1800s
//.setFileExpiration(2500)
//.build();
//Bmob.initialize(config);
}
}
關于應用的ID熊经,我們在前面已經(jīng)獲取了
上述四步完成之后泽艘,整個Bmob項目的準備工作也就完成了欲险。
三、數(shù)據(jù)服務
-
添加一行數(shù)據(jù)
首先創(chuàng)建一個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;
}
}
添加數(shù)據(jù)
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("添加數(shù)據(jù)成功天试,返回objectId為:"+objectId);
}else{
toast("創(chuàng)建數(shù)據(jù)失敗:" + e.getMessage());
}
}
});
如果toast出添加數(shù)據(jù)成功的消息然低,你會在Bmob對應Application Id的數(shù)據(jù)表中看到有一行新增的數(shù)據(jù)喜每,如下圖所示:
- 獲取一行數(shù)據(jù)
//查找Person表里面id為6b6c11c537的數(shù)據(jù)
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());
}
}
});
- 修改一行數(shù)據(jù)
//更新Person表里面id為6b6c11c537的數(shù)據(jù)脚翘,address內(nèi)容更新為“北京朝陽”
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());
}
}
});
- 刪除一行數(shù)據(jù)
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());
}
}
});
四来农、其他服務
其他的還有一些服務鞋真,短信、即時通信沃于、推送涩咖、支付、云端代碼繁莹、容器服務等檩互,前面文章聊過支付的一些內(nèi)容,有時間再繼續(xù)更新