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