不需要搭后臺(tái),通過Bmob輕松制作一個(gè)Android APP
來源:原創(chuàng) 時(shí)間:2017-11-03 瀏覽:0 次怎么輕松建立一個(gè)效勞器端,制造一款歸于自己的app呢?今日我們來一同學(xué)習(xí)一下!首要我們先來看看它------Bmob。
Bmob 是一個(gè)能夠開發(fā)云存儲(chǔ)的移動(dòng)運(yùn)用軟件,給運(yùn)用軟件快速增加一個(gè)安全靈敏的后臺(tái)辦理體系,便利閱讀終端保存的各種信息。針對(duì)移動(dòng)運(yùn)用開發(fā)的特性,Bmob還供給了主動(dòng)推送效勞,能夠讓移動(dòng)開發(fā)者將信息從效勞器直接推送到運(yùn)用程序中,然后完結(jié)軟件的主動(dòng)更新、信息告訴等效勞。
關(guān)于許多Android/iOS個(gè)人移動(dòng)開發(fā)者來說,開發(fā)一個(gè)具有網(wǎng)絡(luò)功用的運(yùn)用不是一件簡略的事,不只需求購買/租借效勞器,還有必要把握一門比如Java/.net/php這類的效勞器開發(fā)言語,每開發(fā)一款移動(dòng)運(yùn)用程序,就有必要開發(fā)保護(hù)對(duì)應(yīng)的效勞器程序。這一切關(guān)于移動(dòng)開發(fā)者來說,都是一個(gè)冗長的噩夢(mèng)。
怎么讓移動(dòng)開發(fā)者從繁瑣的機(jī)械勞作中擺脫出來,將更多精力投入到移動(dòng)運(yùn)用程序的構(gòu)思研制,然后不斷提高產(chǎn)品質(zhì)量呢?Bmob移動(dòng)運(yùn)用云存儲(chǔ)途徑的誕生就很好地處理了以上難題。
在Bmob途徑上,只需注冊(cè)一個(gè)帳號(hào),成功后懇求創(chuàng)立恣意多個(gè)數(shù)據(jù)庫,取得對(duì)應(yīng)的Key,下載對(duì)應(yīng)版別的SDK并將其嵌入到移動(dòng)運(yùn)用中,便能夠調(diào)用存取API,進(jìn)行數(shù)據(jù)的恣意操作。有了Bmob,您在5分鐘內(nèi)就能夠?qū)W會(huì)怎么開發(fā)一個(gè)云存儲(chǔ)的移動(dòng)運(yùn)用軟件,給運(yùn)用軟件快速增加一個(gè)安全靈敏的后臺(tái)辦理體系,便利您閱讀終端保存的各種信息。
是不是很心動(dòng)啊,廢話不多說,我們直接開端吧!
創(chuàng)立運(yùn)用
首要你需求注冊(cè)一個(gè)Bmob賬號(hào),注冊(cè)成功之后頁面是這樣的:
你的應(yīng)該是空白的,點(diǎn)擊創(chuàng)立運(yùn)用:
按操作進(jìn)行即可,這兒我們挑選開發(fā)版免費(fèi)的。當(dāng)你創(chuàng)立完運(yùn)用,點(diǎn)擊所創(chuàng)立的運(yùn)用:
你的應(yīng)該只要一個(gè)數(shù)據(jù)表_User,我這兒現(xiàn)已創(chuàng)立了兩個(gè)數(shù)據(jù)表,我們先翻開設(shè)置看一個(gè)非常重要的東西:
這個(gè)ID必定要留意,很重要,我們持續(xù)。頁面右下角有一個(gè)文檔,我們點(diǎn)開找到Android開發(fā)文檔:
你能夠快速閱讀一下這兒的快速入門,接下來我們開端導(dǎo)入sdk,首要闡明一點(diǎn)我們運(yùn)用Android Studio來完結(jié)開發(fā)作業(yè),在快速入門中你會(huì)看到導(dǎo)入sdk的辦法,我們優(yōu)先挑選主動(dòng)導(dǎo)入。
主動(dòng)導(dǎo)入
在 Project 的 build.gradle 文件中增加 Bomb 的 maven 庫房地址:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
}
}
allprojects {
repositories {
jcenter()
//Bmob的maven庫房地址--必填
maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" }
}
}
依照文檔闡明來即可。接著裝備AndroidManifest.xml,最終一步比較重要的是就是初始化BmobSDK了。
初始化BombSDK
在你的運(yùn)用程序發(fā)動(dòng)的 Activity 的 onCreate辦法中初始化BombSDK:
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);
//供給以下兩種辦法進(jìn)行初始化操作:
//榜首:默許初始化
Bmob.initialize(this, "Your Application ID");
// 注:自v3.5.2開端,數(shù)據(jù)sdk內(nèi)部縫合了計(jì)算sdk,開發(fā)者無需額定集成,傳途徑參數(shù)即可,不傳默許沒敞開數(shù)據(jù)計(jì)算功用
//Bmob.initialize(this, "Your Application ID","bmob");
//第二:自v3.4.7版別開端,設(shè)置BmobConfig,答應(yīng)設(shè)置懇求超時(shí)時(shí)刻、文件分片上傳時(shí)每片的巨細(xì)、文件的過期時(shí)刻(單位為秒),
//BmobConfig config =new BmobConfig.Builder(this)
////設(shè)置appkey
//.setApplicationId("Your Application ID")
////懇求超時(shí)時(shí)刻(單位為秒):默許15s
//.setConnectTimeout(30)
////文件分片上傳時(shí)每片的巨細(xì)(單位字節(jié)),默許512*1024
//.setUploadBlockSize(1024*1024)
////文件的過期時(shí)刻(單位為秒):默許1800s
//.setFileExpiration(2500)
//.build();
//Bmob.initialize(config);
}
}
當(dāng)你初始化完結(jié)而且上述過程都無誤的情況下你就能運(yùn)用bmob啦,我們來驗(yàn)證一下:
當(dāng)你隨便在一個(gè)java類文件中寫上bmob的時(shí)分就會(huì)呈現(xiàn)許多bmob的相關(guān)辦法了,至此裝備bmob現(xiàn)已悉數(shù)完結(jié),接下來開端運(yùn)用bmob吧!
創(chuàng)立數(shù)據(jù)表
我覺得bmob的一個(gè)中心就是數(shù)據(jù)的運(yùn)用,就是上傳數(shù)據(jù),讀取數(shù)據(jù),也注重說一下這點(diǎn),首要我們創(chuàng)立一個(gè)自己需求的數(shù)據(jù)表:
public class FoundData extends BmobObject {
private String title;
private String describe;
private String phone;
public void setPhone(String phone) {
this.phone = phone;
}
public void setDescribe(String describe) {
this.describe = describe;
}
public void setTitle(String title) {
this.title = title;
}
public String getPhone() {
return phone;
}
public String getDescribe() {
return describe;
}
public String getTitle() {
return title;
}
}
這兒我依據(jù)項(xiàng)目需求創(chuàng)立了一個(gè)FoundData數(shù)據(jù)表,我們創(chuàng)立數(shù)據(jù)表的時(shí)分記住要承繼自Bmobject這個(gè)類,然后界說相關(guān)特點(diǎn),增加set與get辦法,在我們的項(xiàng)目中成功創(chuàng)立數(shù)據(jù)表之后我們需求在bmob后端操控太增加數(shù)據(jù)表與之構(gòu)成對(duì)應(yīng):
挑選增加表:
這兒挑選自界說,要留意這兒的稱號(hào)有必要與你在項(xiàng)目里創(chuàng)立的數(shù)據(jù)表稱號(hào)如出一轍,增加表完結(jié)之后翻開這個(gè)表:
由于你是剛創(chuàng)立的所以你的里邊只要objectid String這一樣,你需求手動(dòng)增加,我們挑選增加列:
留意列的稱號(hào)也有必要與你項(xiàng)目中創(chuàng)立的變量稱號(hào)共同,包含數(shù)據(jù)類型:
完結(jié)上述操作我們就成功創(chuàng)立一個(gè)數(shù)據(jù)表了,接下來我們要點(diǎn)說一下對(duì)數(shù)據(jù)的讀取,首要我們需求在數(shù)據(jù)表中增加相關(guān)數(shù)據(jù),像這樣:
記住增加數(shù)據(jù)的時(shí)分是增加行。然后我們翻開開發(fā)文檔:
點(diǎn)開開發(fā)文檔:
這是關(guān)于bmob關(guān)于android開發(fā)的一系列操作,我們需求找到查詢數(shù)據(jù)的辦法:
找到查詢指定列
這兒給我們供給一個(gè)查詢指定列的辦法,我們看在項(xiàng)目中的具體運(yùn)用:
//獲取數(shù)據(jù)
public void getData(){
//獲取數(shù)據(jù)
BmobQuerybmobQuery = new BmobQuery();
//不指定查找具體的哪一項(xiàng)則為查找悉數(shù)數(shù)據(jù)
// bmobQuery.addQueryKeys("title");
bmobQuery.findObjects(new FindListener() {
@Override
public void done(Listlist, BmobException e) {
}
});
}
我們需求留意,bmob供給的是查詢指定列的辦法,就是它能夠得到一列的數(shù)據(jù),可是我們知道我們的數(shù)據(jù)并不是只要一列數(shù)據(jù),如果我們想查詢一切數(shù)據(jù)該怎么辦呢?很簡略我們將查詢指定列的那段代碼去掉就能夠查詢悉數(shù)數(shù)據(jù)了,留意看我代碼的注釋。
我一向覺得關(guān)于查詢得到的數(shù)據(jù)的處理是一個(gè)難點(diǎn),當(dāng)你做好了app的界面,再加入網(wǎng)絡(luò)功用能夠讀取后臺(tái)數(shù)據(jù),根本上一個(gè)簡略的app就成了,接下來我們就說說怎么處理得到的數(shù)據(jù):
//獲取數(shù)據(jù)
public void getData(){
//獲取數(shù)據(jù)
BmobQuerybmobQuery = new BmobQuery();
//不指定查找具體的哪一項(xiàng)則為查找悉數(shù)數(shù)據(jù)
// bmobQuery.addQueryKeys("title");
bmobQuery.findObjects(new FindListener() {
@Override
public void done(Listlist, BmobException e) {
Toast.makeText(getContext(),"改寫成功"+list.size(),Toast.LENGTH_SHORT).show();
/**
* 1.list為得到的數(shù)據(jù)源
* 2.得到的數(shù)據(jù)有三項(xiàng)
* 2.1 title
* 2.2 phone
* 2.3 describe
*/
//處理list中的數(shù)據(jù),for循環(huán)遍歷
for(FoundData data : list){
mHashMap = new HashMap<>();
mHashMap.put("title",data.getTitle());
mHashMap.put("phone",data.getPhone());
mHashMap.put("describe",data.getDescribe());
}
List