摘 要: 詳細(xì)介紹了Bmob云平臺(tái)的功能:數(shù)據(jù)服務(wù)、文件服務(wù)、用戶管理、消息推送,以及這些功能在Android App中的應(yīng)用。利用Android App“游戳”來(lái)具體說(shuō)明Bmob云平臺(tái)在App的開(kāi)發(fā)過(guò)程中對(duì)于解決所涉及到的數(shù)據(jù)、文件及用戶管理問(wèn)題所起的作用,并且對(duì)于云平臺(tái)今后的發(fā)展做了展望。
關(guān)鍵詞: Bmob;云平臺(tái);Android
0 引言
隨著Android系統(tǒng)在手機(jī)和平板市場(chǎng)的普及[1-3]以及Android App越來(lái)越多地出現(xiàn),Android App也吸引了很多開(kāi)發(fā)者的加入。傳統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)、用戶管理、消息推送等功能都需要數(shù)據(jù)庫(kù)以及服務(wù)器的支持,個(gè)人開(kāi)發(fā)者要是想在App中加入這些功能,就必須學(xué)習(xí)Java、xml語(yǔ)言之外的其他語(yǔ)言,例如.net、php、spq,增加了開(kāi)發(fā)App的難度,并且搭建服務(wù)器也額外增加了開(kāi)發(fā)成本。Bmob云平臺(tái)簡(jiǎn)化了這一過(guò)程,使開(kāi)發(fā)者能夠?qū)⒏嗟木ν断蜍浖δ艿母纳坪徒缑娴拿阑O(shè)計(jì),使應(yīng)用的開(kāi)發(fā)變得更加簡(jiǎn)單。
1 Bmob云平臺(tái)的介紹
Bmob云平臺(tái)能為移動(dòng)應(yīng)用提供一個(gè)完整的后端解決方案,利用官方提供的SDK,在App中進(jìn)行調(diào)用,便可以很方便地進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的存儲(chǔ)和下載。目前Bmob提供的能夠使得Android App開(kāi)發(fā)更加便捷的服務(wù)主要有以下幾種。
1.1數(shù)據(jù)服務(wù)
Bmob提供了網(wǎng)頁(yè)后臺(tái)可以進(jìn)行數(shù)據(jù)表的添加、刪除等操作,不僅可以手動(dòng)輸入添加數(shù)據(jù),還可以直接上傳csv格式的文件,對(duì)手動(dòng)添加大量數(shù)據(jù)特別有利。Bmob支持String、Number、Boolean、Date、Array等常用的數(shù)據(jù)類型,能夠滿足大多數(shù)應(yīng)用的要求。
1.2 文件服務(wù)
Bmob可以方便地上傳和下載文件,并且存儲(chǔ)空間沒(méi)有限制。下載圖片類型的文件時(shí),可以選擇下載縮略圖還是原圖,在一定程度上可以縮短頁(yè)面的加載時(shí)間。
1.3 消息推送
消息推送[4]在Android開(kāi)發(fā)中算是一個(gè)難度比較大的部分,在Bmob中,只需要在網(wǎng)頁(yè)中填寫一些時(shí)間信息和推送內(nèi)容信息就可以讓Bmob來(lái)實(shí)現(xiàn)消息推送了,并且可以指定發(fā)送的用戶對(duì)象。
2 Bmob云平臺(tái)在“游戳”開(kāi)發(fā)中的運(yùn)用
“游戳”是一個(gè)旅游社交類的Android App。用戶可以注冊(cè)一個(gè)賬號(hào),查看某市的旅游景點(diǎn)和美食,可以在這些地點(diǎn)打卡標(biāo)記自己已經(jīng)去過(guò),并分享圖片和感想,同時(shí)可以看到其他用戶的打卡信息,瀏覽別人的圖片和感想。特別地,在自己的個(gè)人頁(yè)面中,還可以通過(guò)地圖的方式直觀地查看自己去過(guò)的地方。在“游戳”這個(gè)App中,所有的信息,包括用戶的個(gè)人信息、打卡信息、景點(diǎn)信息,都存儲(chǔ)在Bmob云平臺(tái)中,這樣不僅使得本地客戶端占用SD卡的空間很小,還讓景點(diǎn)的信息更新更加便捷,直接在Bmob的管理平臺(tái)中操作即可。“游戳”使用的是Bmob提供的Android SDK 3.16版本。開(kāi)發(fā)者需要在Bmob網(wǎng)站中注冊(cè)一個(gè)賬戶,創(chuàng)建一個(gè)應(yīng)用,即可取得一個(gè)APPID,把這個(gè)APPID填入java代碼中的合適位置,就可以使具體的App和Bmob后臺(tái)與這個(gè)App存儲(chǔ)的數(shù)據(jù)對(duì)應(yīng)起來(lái)。密鑰方式和Google Map API的認(rèn)證方式有些類似。圖1為“游戳”的主界面。
2.1 用戶信息管理
“游戳”要求用戶注冊(cè)后才能使用,圖2是用戶的注冊(cè)和登錄界面。用戶在注冊(cè)后,其用戶名、密碼和郵箱會(huì)保存在Bmob云平臺(tái)對(duì)應(yīng)的用戶表中。當(dāng)然,即使是開(kāi)發(fā)者,在Bmob后臺(tái)中也看不到用戶輸入的密碼信息,這樣也保護(hù)了用戶的賬戶安全。用戶注冊(cè)后,就可以使用剛剛注冊(cè)的用戶名和密碼登錄App了。登錄以后,還可以利用側(cè)邊欄中的“個(gè)人信息”按鈕進(jìn)行密碼、郵箱、頭像、性別等信息的完善和修改。在Java端,只需要幾句代碼就可以完成注冊(cè)、登錄、修改信息的功能。
2.2 景點(diǎn)信息管理
“游戳”收錄了臺(tái)北市的景點(diǎn)和美食信息。這些信息保存在Bmob云平臺(tái)中的地點(diǎn)信息的數(shù)據(jù)表中,并且在地圖上分別用紅色標(biāo)記和藍(lán)色標(biāo)記來(lái)區(qū)分景點(diǎn)和美食。景點(diǎn)的信息包括景點(diǎn)名稱、地址、電話、圖片、簡(jiǎn)介和有幾人次在這個(gè)地方打卡。地點(diǎn)的信息可以通過(guò)cvs格式的文件直接導(dǎo)入到數(shù)據(jù)庫(kù)中。圖3是地點(diǎn)以標(biāo)記的形式呈現(xiàn)在地圖上(此處為了方便觀察,只呈現(xiàn)了部分地點(diǎn)的標(biāo)記),以及地點(diǎn)的詳細(xì)信息。這樣,一旦某個(gè)景點(diǎn)信息有變動(dòng),或者需要增加、刪除某些地點(diǎn),只需要在Bmob后臺(tái)的地點(diǎn)數(shù)據(jù)庫(kù)中進(jìn)行操作,而不需要發(fā)布App的新版本。
2.3 用戶動(dòng)態(tài)管理
用戶可以通過(guò)“蓋戳”頁(yè)面(如圖4左半)進(jìn)行蓋戳打卡,表明自己來(lái)過(guò)這一地點(diǎn)??梢栽谖淖挚蛑休斎胍恍┳约合胝f(shuō)的話,還可以拍照或者從相冊(cè)中選取圖片上傳。用戶發(fā)布過(guò)自己的信息后,可以在首頁(yè)所有人的動(dòng)態(tài)中看到自己發(fā)布的動(dòng)態(tài),當(dāng)然在這里還能看到其他所有用戶的動(dòng)態(tài),也可以在自己的個(gè)人頁(yè)面中看到自己發(fā)布的內(nèi)容,也能夠隨時(shí)刪除自己發(fā)布的內(nèi)容。另外,還可以通過(guò)地圖的方式查看自己去過(guò)哪些地方,直觀且簡(jiǎn)潔。發(fā)布內(nèi)容是將地點(diǎn)信息、文字內(nèi)容和圖片內(nèi)容保存到Bmob后臺(tái)中關(guān)于打卡動(dòng)態(tài)的數(shù)據(jù)表中,需要顯示個(gè)人去過(guò)哪些地方的時(shí)候,是將以上數(shù)據(jù)表中關(guān)于這個(gè)賬戶的打卡信息提取出來(lái),再放到地圖中去。圖4右半是所有人動(dòng)態(tài)中某個(gè)動(dòng)態(tài)的詳情。
2.4 其他運(yùn)用
“游戳”還可以推薦新的地點(diǎn)信息,方便在用戶發(fā)現(xiàn)一個(gè)App中沒(méi)有收錄的景點(diǎn)或者美食時(shí)讓開(kāi)發(fā)者推薦,這一功能是在Bmob端建立一個(gè)新的數(shù)據(jù)表,保存推薦地點(diǎn)的名稱、經(jīng)緯度和描述,開(kāi)發(fā)者在Bmob自己的應(yīng)用中就可以查看這個(gè)表。Bmob還提供應(yīng)用官網(wǎng)服務(wù),即這個(gè)App可以有一個(gè)專屬網(wǎng)址,這樣一來(lái),可以讓App有一個(gè)更好的展示平臺(tái),也讓用戶能方便、快捷地下載應(yīng)用。
3 Bmob云平臺(tái)與傳統(tǒng)服務(wù)器的比較
Bmob云平臺(tái)是一個(gè)新推出的移動(dòng)應(yīng)用云存儲(chǔ)平臺(tái),對(duì)于開(kāi)發(fā)者在開(kāi)發(fā)應(yīng)用時(shí)來(lái)說(shuō)它與傳統(tǒng)的搭建服務(wù)器來(lái)完成網(wǎng)絡(luò)任務(wù)的方式有著很大的區(qū)別。傳統(tǒng)搭建服務(wù)器的方式在硬件上能夠自己掌握服務(wù)器的情況、配備,不論是自己搭建還是租用別人的都需要一定的費(fèi)用,在軟件中也需要學(xué)習(xí)服務(wù)器的相關(guān)語(yǔ)言和搭建,會(huì)花費(fèi)更多的學(xué)習(xí)時(shí)間。Bmob云平臺(tái)則是利用已經(jīng)搭建好的服務(wù)器,硬件方面不需要開(kāi)發(fā)者再做投入,軟件方面則是在源代碼中加入對(duì)SDK的調(diào)用。對(duì)于對(duì)服務(wù)器的穩(wěn)定性和數(shù)據(jù)的安全性要求非常高的專業(yè)的Android App開(kāi)發(fā)團(tuán)隊(duì)來(lái)說(shuō),還是選擇自己搭建服務(wù)器比較放心[5-7],而對(duì)于一些個(gè)人開(kāi)發(fā)者或者小型的開(kāi)發(fā)團(tuán)隊(duì)來(lái)說(shuō),使用簡(jiǎn)單、投入少的Bmob云平臺(tái)就是很好的選擇了。
4 對(duì)于云平臺(tái)網(wǎng)絡(luò)服務(wù)的展望
在電子、軟件領(lǐng)域,有很多技術(shù)對(duì)于入門者或者非專業(yè)人員來(lái)說(shuō)都有著很簡(jiǎn)單的處理方法。例如單片機(jī),現(xiàn)在不需要每個(gè)開(kāi)發(fā)者都懂得芯片的工作原理,只需要調(diào)用芯片對(duì)應(yīng)的庫(kù)文件就可以進(jìn)行開(kāi)發(fā),也不需要懂得模擬電路、LCD、串口等外圍電路的連接,只需要使用開(kāi)發(fā)板就可以對(duì)外設(shè)進(jìn)行控制。例如Windows中的軟件開(kāi)發(fā),開(kāi)發(fā)者也不需要了解對(duì)話框、按鈕等的設(shè)計(jì),直接可以通過(guò)VB中的模塊拖拉來(lái)完成。所以,在電子科技領(lǐng)域,高端的技術(shù)應(yīng)該是逐漸被簡(jiǎn)單化、平民化,讓更多的人了解和使用。以此類推,對(duì)于Android App個(gè)人開(kāi)發(fā)者來(lái)說(shuō),能夠掌握從實(shí)際功能開(kāi)發(fā)、后端數(shù)據(jù)處理到前端用戶體驗(yàn)設(shè)計(jì)的所有知識(shí)是最好的。但是大多數(shù)的個(gè)人開(kāi)發(fā)者不具備所有的能力,所以有Android Inventor的出現(xiàn)讓不會(huì)Java的開(kāi)發(fā)者能夠開(kāi)發(fā)Android App的功能,有DroidDraw的出現(xiàn)幫助開(kāi)發(fā)者進(jìn)行界面的設(shè)計(jì),Bmob云平臺(tái)的出現(xiàn)自然也解決了后端設(shè)計(jì)這一大難題。Bmob也利用了網(wǎng)絡(luò)服務(wù)器+數(shù)據(jù)庫(kù)這一平臺(tái)集成了更多的功能,例如聊天組件、賬號(hào)關(guān)聯(lián)服務(wù),這些服務(wù)是將這個(gè)云平臺(tái)和App的具體功能結(jié)合起來(lái),變成SDK供用戶下載使用。相信Bmob以后還會(huì)出現(xiàn)更多基于云平臺(tái)的SDK。2011年12月1日,在北京大學(xué)舉行了“基于云平臺(tái)的戰(zhàn)略新興產(chǎn)業(yè)發(fā)展研討會(huì)”[8],可見(jiàn),我國(guó)已經(jīng)對(duì)云平臺(tái)的發(fā)展有了很大的關(guān)注,所以,有理由相信,類似于Bmob云平臺(tái)這樣的能完成后端設(shè)計(jì)的各種云平臺(tái)將會(huì)越來(lái)越多,在業(yè)內(nèi)形成良好的競(jìng)爭(zhēng),幫助開(kāi)發(fā)者們使Android的開(kāi)發(fā)變得更加容易。當(dāng)然,云平臺(tái)還面臨著數(shù)據(jù)安全、隱私保護(hù)等許多問(wèn)題[9],這些問(wèn)題也是開(kāi)發(fā)者在使用過(guò)程中必須考慮的。
參考文獻(xiàn)
[1] 韓基龍.試談Android移動(dòng)云應(yīng)用的優(yōu)勢(shì)和發(fā)展趨勢(shì)[J]. 電腦編程技巧與維護(hù),2014(6):58-59.
[2] 劉昌平,范明玨,王光衛(wèi),等.Android手機(jī)的輕量級(jí)訪問(wèn)控制[J].計(jì)算機(jī)應(yīng)用研究,2010,27(7):2611-2613,2618.
[3] 蔣邵林,王金雙,張濤,等.Android安全研究綜述[J].計(jì)算機(jī)應(yīng)用與軟件,2012,29(10):205-210.
[4] 倪紅軍.基于Android平臺(tái)的消息推送研究與實(shí)現(xiàn)[J].實(shí)驗(yàn)室研究與探索,2014,33(5):96-100.
[5] CHAUDHUR A. Language based security on Android [C].Proceedings of the ACM SIGPLAN Fourth Workshop on Programming Languages and Analysis for Security, New York, 2009:1-7.
[6] ZHANG Y, REN S, CHEN S, et al. DifferCloudStor: Differentiated quality of service for cloud storage[J]. Magnetics, IEEE Transactions on, 2013,49(6):2451-2458.
[7] 王曉萍,孟坤.基于可信第三方實(shí)現(xiàn)多云平臺(tái)的交互和選擇[J].計(jì)算機(jī)與現(xiàn)代化,2014,221(1):104-108.
[8] 曾宇,潘陳辰.基于云平臺(tái)的戰(zhàn)略新興產(chǎn)業(yè)發(fā)展研討會(huì)綜述[J].經(jīng)濟(jì)學(xué)動(dòng)態(tài),2011(12):143-144.
[9] 張建勛,古志民,鄭超.云計(jì)算研究進(jìn)展綜述[J].計(jì)算機(jī)應(yīng)用研究,2010,27(2):429-433.