黃翔+劉艷
摘 要 隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的發(fā)展,云計(jì)算技術(shù)得到迅速普及,廣泛應(yīng)用在生活的各個(gè)方面?;谠破脚_(tái)的移動(dòng)相冊(cè)是利用“Android+移動(dòng)云端(云服務(wù)器+云存儲(chǔ)+云關(guān)系數(shù)據(jù)庫(kù))”架構(gòu)開(kāi)發(fā),實(shí)現(xiàn)了多用戶大容量的移動(dòng)相片存儲(chǔ)管理。與以往的個(gè)人相冊(cè)相比,它克服了移動(dòng)設(shè)備內(nèi)存不足,數(shù)據(jù)易丟失的缺點(diǎn),具有一定的實(shí)用價(jià)值。
關(guān)鍵詞 移動(dòng);云計(jì)算;云平臺(tái)
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-7597(2014)17-0012-02
隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的發(fā)展,云計(jì)算技術(shù)得到迅速普及,廣泛應(yīng)用在生活的各個(gè)方面。與其他服務(wù)模式相比,云計(jì)算服務(wù)模式具有成本低、安全性高、資源利用率的特點(diǎn),受到眾多企業(yè)的青睞。而一些知名企業(yè)也相繼建立推出自己的云平臺(tái),來(lái)提供開(kāi)發(fā)、租用、托管網(wǎng)絡(luò)應(yīng)用程序的平臺(tái),例如阿里巴巴提供的阿里云、百度提供的百度云。而基于云平臺(tái)的移動(dòng)相冊(cè)是利用“Android+移動(dòng)云端”架構(gòu)開(kāi)發(fā),實(shí)現(xiàn)了多用戶大容量的移動(dòng)相片存儲(chǔ)管理。與以往的個(gè)人相冊(cè)相比,它克服了移動(dòng)設(shè)備內(nèi)存不足,數(shù)據(jù)易丟失的缺點(diǎn)。
1 系統(tǒng)總體分析與設(shè)計(jì)
基于云平臺(tái)的移動(dòng)相冊(cè)系統(tǒng)功能包括:用戶注冊(cè)登錄;拍照功能;上傳相片至云端功能;查看云端相冊(cè)列表和單張圖片;查看本地相冊(cè)。
本系統(tǒng)采用“Android+移動(dòng)云端”架構(gòu)開(kāi)發(fā)。Android端作為用戶使用的手持終端,完成用戶注冊(cè)、登錄、拍照上傳、查看云相冊(cè)和本地相冊(cè)功能;移動(dòng)云端則包括云服務(wù)器(Elastic Computer Service,ECS)、云存儲(chǔ)(Open Storage Service,OSS)、云關(guān)系數(shù)據(jù)庫(kù)(Relational Database Service,RDS)。其中云服務(wù)器ECS搭建APP服務(wù)器程序;云關(guān)系數(shù)據(jù)庫(kù)RDS,作為用戶數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù)環(huán)境;云存儲(chǔ)OSS,作為用戶相冊(cè)文件存儲(chǔ)的云端。
1)平臺(tái)選擇。系統(tǒng)選擇阿里巴巴提供的阿里云平臺(tái),它使用阿里巴巴的管理數(shù)據(jù)中心,提供云服務(wù)器的租用;云存儲(chǔ)及云盾等多種云服務(wù)。
2)系統(tǒng)工作流程分析。用戶在移動(dòng)設(shè)備端進(jìn)行用戶信息的輸入,然后發(fā)送HTTP請(qǐng)求給云端服務(wù)器上的tomcat服務(wù)器,服務(wù)器進(jìn)行響應(yīng)與RDS進(jìn)行連接,將用戶信息插入到UserInfo數(shù)據(jù)表中,返回HTTP,再次返回到移動(dòng)用戶端,用戶端提示注冊(cè)成功,進(jìn)入登錄界面,輸入用戶名和密碼,再次發(fā)送HTTP請(qǐng)求給tomcat服務(wù)器,服務(wù)器與RDS連接,查詢是否有該用戶存在,并返回HTTP請(qǐng)求結(jié)果,而后再回到移動(dòng)應(yīng)用程序端解碼登錄成功或是失敗。登錄成功則進(jìn)入主界面完成拍照、查看本地相冊(cè)、搜索本地相冊(cè)、退出功能,拍照完成后還可選擇將相片上傳到云存儲(chǔ)ECS中。
2 系統(tǒng)實(shí)現(xiàn)
2.1 云服務(wù)器
1)購(gòu)買(mǎi)服務(wù)器,安裝web環(huán)境。先購(gòu)買(mǎi)ECS,獲得root賬號(hào)和密碼,然后在dos下輸入mstcs命令遠(yuǎn)程登錄云服務(wù)器,安裝好web服務(wù)器tomcat6,并測(cè)試web服務(wù)器是否安裝成功。
2)web源碼開(kāi)發(fā)并打包。服務(wù)器端采用MyEclipse工具開(kāi)發(fā),并在本地進(jìn)行測(cè)試,并將工程打包成war包。
3)部署并啟動(dòng)服務(wù)。將war包部署到ECS上的tomcat服務(wù)器下,并啟動(dòng)tomcat服務(wù)。
2.2 云數(shù)據(jù)庫(kù)
本系統(tǒng)使用RDS中提供的MySQL服務(wù),主要實(shí)現(xiàn)用戶信息的存儲(chǔ),先購(gòu)買(mǎi)RDS后,創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例,管理實(shí)例,在該實(shí)例下創(chuàng)建賬號(hào)和數(shù)據(jù)庫(kù)cloudphotodb,同時(shí)借用MySQL的界面工具navicat8來(lái)創(chuàng)建和設(shè)計(jì)數(shù)據(jù)表。根據(jù)系統(tǒng)功能需求,cloudphotodb數(shù)據(jù)庫(kù)包含用戶表UserInfo表,如表1所示。
表1 UserInfo表
字段名 字段說(shuō)明 字段類(lèi)型 是否允許為空 備注
ID 序列號(hào) int 主鍵,自動(dòng)增長(zhǎng)列
usename 用戶名 varchar 否
usepwd 密碼 varchar 否
ossfolder 存儲(chǔ)文件夾 varchar 否
2.3 云存儲(chǔ)
用戶的個(gè)人相冊(cè)是存儲(chǔ)在云存儲(chǔ)中的,因此用戶可享用海量、安全、低成本的相片存儲(chǔ)服務(wù),可以在任何時(shí)間、任何地點(diǎn)上傳和下載相片。操作方法同樣需要先購(gòu)買(mǎi)后開(kāi)通OSS,獲取KEY和密鑰,即可進(jìn)入相冊(cè)管理,方便進(jìn)行系統(tǒng)測(cè)試,檢驗(yàn)圖片是否上傳成功。
2.4 移動(dòng)端
1)用戶注冊(cè)登錄。用戶注冊(cè)則是在移動(dòng)設(shè)備端進(jìn)行用戶信息的輸入,然后發(fā)送HTTP請(qǐng)求連同用戶名和密碼等傳輸給云端服務(wù)器上的tomcat服務(wù)器,服務(wù)器進(jìn)行響應(yīng)與RDS進(jìn)行連接,將用戶信息插入到UserInfo數(shù)據(jù)表中,返回HTTP,再次返回到移動(dòng)用戶端,用戶端提示注冊(cè)成功,進(jìn)入登錄界面。用戶登錄過(guò)程與注冊(cè)過(guò)程相似,這里借助獲得HttpRequestUtil的doPostRequest()方法來(lái)獲得響應(yīng)信息。
2)拍照。在系統(tǒng)中,拍照功能通過(guò)意圖機(jī)制來(lái)實(shí)現(xiàn),即使用android. Provider.MediaStore類(lèi)定義的意圖ACTION_IMAGE_CAPTURE。創(chuàng)建ACTION_IMAGE_CAPTURE實(shí)例,然后通過(guò)startActivityForResult()方法啟動(dòng)該實(shí)例,并通過(guò)onActivityResult()回調(diào)方法獲取返回的圖像,用戶選擇是否上傳。
3)圖片上傳。用戶決定上傳照片至云端,必須考慮相片的大小,啟動(dòng)移動(dòng)設(shè)備拍照功能獲得的Bitmap圖形通常比較大,直接上傳,速度慢,且易中斷導(dǎo)致上傳失敗,因此上傳前必須將圖片進(jìn)行壓縮處理。這里直接以同等比例縮放寬和高再進(jìn)行圖片的上傳。
圖片上傳需要將圖形轉(zhuǎn)化為圖片流格式最終以字符串流存儲(chǔ)在字符串?dāng)?shù)組中,然后創(chuàng)建HttpClient對(duì)象,發(fā)送Post請(qǐng)求,并設(shè)置相關(guān)的參數(shù)完成圖片的上傳。
4)圖片搜索。圖片搜索主要通過(guò)圖片的文件名進(jìn)行模糊匹配,這里通過(guò)監(jiān)聽(tīng)搜索框的字符輸入,實(shí)時(shí)搜索圖片,具體實(shí)現(xiàn)是先獲得搜索框ID,然后添加輸入監(jiān)聽(tīng),通過(guò)afterTextChanged()方法開(kāi)啟新線程,再通過(guò)handlerMessage()方法加載數(shù)據(jù)并刷新界面,核心代碼如下:
for (HashMap
if (item.get(“photoName”).toString().contains(search_text)) {
SearchList.search_list.add(item);}}
3 總結(jié)
基于云平臺(tái)的移動(dòng)相冊(cè)是利用“Android+移動(dòng)云端”架構(gòu)開(kāi)發(fā),實(shí)現(xiàn)了多用戶大容量的移動(dòng)相片存儲(chǔ)管理。將OSS、ECS和RDS三者有效的結(jié)合起來(lái),有效的解決了移動(dòng)設(shè)備內(nèi)存不足,數(shù)據(jù)易丟失的問(wèn)題,但該系統(tǒng)還存在很多不足,今后將從相片的分享功能,云端相冊(cè)管理,優(yōu)化分頁(yè)、內(nèi)存管理等方面進(jìn)一步完善系統(tǒng)功能。
參考文獻(xiàn)
[1]王培海.基于android的移動(dòng)云存儲(chǔ)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2011(15).
[2]陳志偉,李天福.基于Android平臺(tái)的云相冊(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2013(10).
摘 要 隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的發(fā)展,云計(jì)算技術(shù)得到迅速普及,廣泛應(yīng)用在生活的各個(gè)方面?;谠破脚_(tái)的移動(dòng)相冊(cè)是利用“Android+移動(dòng)云端(云服務(wù)器+云存儲(chǔ)+云關(guān)系數(shù)據(jù)庫(kù))”架構(gòu)開(kāi)發(fā),實(shí)現(xiàn)了多用戶大容量的移動(dòng)相片存儲(chǔ)管理。與以往的個(gè)人相冊(cè)相比,它克服了移動(dòng)設(shè)備內(nèi)存不足,數(shù)據(jù)易丟失的缺點(diǎn),具有一定的實(shí)用價(jià)值。
關(guān)鍵詞 移動(dòng);云計(jì)算;云平臺(tái)
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-7597(2014)17-0012-02
隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的發(fā)展,云計(jì)算技術(shù)得到迅速普及,廣泛應(yīng)用在生活的各個(gè)方面。與其他服務(wù)模式相比,云計(jì)算服務(wù)模式具有成本低、安全性高、資源利用率的特點(diǎn),受到眾多企業(yè)的青睞。而一些知名企業(yè)也相繼建立推出自己的云平臺(tái),來(lái)提供開(kāi)發(fā)、租用、托管網(wǎng)絡(luò)應(yīng)用程序的平臺(tái),例如阿里巴巴提供的阿里云、百度提供的百度云。而基于云平臺(tái)的移動(dòng)相冊(cè)是利用“Android+移動(dòng)云端”架構(gòu)開(kāi)發(fā),實(shí)現(xiàn)了多用戶大容量的移動(dòng)相片存儲(chǔ)管理。與以往的個(gè)人相冊(cè)相比,它克服了移動(dòng)設(shè)備內(nèi)存不足,數(shù)據(jù)易丟失的缺點(diǎn)。
1 系統(tǒng)總體分析與設(shè)計(jì)
基于云平臺(tái)的移動(dòng)相冊(cè)系統(tǒng)功能包括:用戶注冊(cè)登錄;拍照功能;上傳相片至云端功能;查看云端相冊(cè)列表和單張圖片;查看本地相冊(cè)。
本系統(tǒng)采用“Android+移動(dòng)云端”架構(gòu)開(kāi)發(fā)。Android端作為用戶使用的手持終端,完成用戶注冊(cè)、登錄、拍照上傳、查看云相冊(cè)和本地相冊(cè)功能;移動(dòng)云端則包括云服務(wù)器(Elastic Computer Service,ECS)、云存儲(chǔ)(Open Storage Service,OSS)、云關(guān)系數(shù)據(jù)庫(kù)(Relational Database Service,RDS)。其中云服務(wù)器ECS搭建APP服務(wù)器程序;云關(guān)系數(shù)據(jù)庫(kù)RDS,作為用戶數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù)環(huán)境;云存儲(chǔ)OSS,作為用戶相冊(cè)文件存儲(chǔ)的云端。
1)平臺(tái)選擇。系統(tǒng)選擇阿里巴巴提供的阿里云平臺(tái),它使用阿里巴巴的管理數(shù)據(jù)中心,提供云服務(wù)器的租用;云存儲(chǔ)及云盾等多種云服務(wù)。
2)系統(tǒng)工作流程分析。用戶在移動(dòng)設(shè)備端進(jìn)行用戶信息的輸入,然后發(fā)送HTTP請(qǐng)求給云端服務(wù)器上的tomcat服務(wù)器,服務(wù)器進(jìn)行響應(yīng)與RDS進(jìn)行連接,將用戶信息插入到UserInfo數(shù)據(jù)表中,返回HTTP,再次返回到移動(dòng)用戶端,用戶端提示注冊(cè)成功,進(jìn)入登錄界面,輸入用戶名和密碼,再次發(fā)送HTTP請(qǐng)求給tomcat服務(wù)器,服務(wù)器與RDS連接,查詢是否有該用戶存在,并返回HTTP請(qǐng)求結(jié)果,而后再回到移動(dòng)應(yīng)用程序端解碼登錄成功或是失敗。登錄成功則進(jìn)入主界面完成拍照、查看本地相冊(cè)、搜索本地相冊(cè)、退出功能,拍照完成后還可選擇將相片上傳到云存儲(chǔ)ECS中。
2 系統(tǒng)實(shí)現(xiàn)
2.1 云服務(wù)器
1)購(gòu)買(mǎi)服務(wù)器,安裝web環(huán)境。先購(gòu)買(mǎi)ECS,獲得root賬號(hào)和密碼,然后在dos下輸入mstcs命令遠(yuǎn)程登錄云服務(wù)器,安裝好web服務(wù)器tomcat6,并測(cè)試web服務(wù)器是否安裝成功。
2)web源碼開(kāi)發(fā)并打包。服務(wù)器端采用MyEclipse工具開(kāi)發(fā),并在本地進(jìn)行測(cè)試,并將工程打包成war包。
3)部署并啟動(dòng)服務(wù)。將war包部署到ECS上的tomcat服務(wù)器下,并啟動(dòng)tomcat服務(wù)。
2.2 云數(shù)據(jù)庫(kù)
本系統(tǒng)使用RDS中提供的MySQL服務(wù),主要實(shí)現(xiàn)用戶信息的存儲(chǔ),先購(gòu)買(mǎi)RDS后,創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例,管理實(shí)例,在該實(shí)例下創(chuàng)建賬號(hào)和數(shù)據(jù)庫(kù)cloudphotodb,同時(shí)借用MySQL的界面工具navicat8來(lái)創(chuàng)建和設(shè)計(jì)數(shù)據(jù)表。根據(jù)系統(tǒng)功能需求,cloudphotodb數(shù)據(jù)庫(kù)包含用戶表UserInfo表,如表1所示。
表1 UserInfo表
字段名 字段說(shuō)明 字段類(lèi)型 是否允許為空 備注
ID 序列號(hào) int 主鍵,自動(dòng)增長(zhǎng)列
usename 用戶名 varchar 否
usepwd 密碼 varchar 否
ossfolder 存儲(chǔ)文件夾 varchar 否
2.3 云存儲(chǔ)
用戶的個(gè)人相冊(cè)是存儲(chǔ)在云存儲(chǔ)中的,因此用戶可享用海量、安全、低成本的相片存儲(chǔ)服務(wù),可以在任何時(shí)間、任何地點(diǎn)上傳和下載相片。操作方法同樣需要先購(gòu)買(mǎi)后開(kāi)通OSS,獲取KEY和密鑰,即可進(jìn)入相冊(cè)管理,方便進(jìn)行系統(tǒng)測(cè)試,檢驗(yàn)圖片是否上傳成功。
2.4 移動(dòng)端
1)用戶注冊(cè)登錄。用戶注冊(cè)則是在移動(dòng)設(shè)備端進(jìn)行用戶信息的輸入,然后發(fā)送HTTP請(qǐng)求連同用戶名和密碼等傳輸給云端服務(wù)器上的tomcat服務(wù)器,服務(wù)器進(jìn)行響應(yīng)與RDS進(jìn)行連接,將用戶信息插入到UserInfo數(shù)據(jù)表中,返回HTTP,再次返回到移動(dòng)用戶端,用戶端提示注冊(cè)成功,進(jìn)入登錄界面。用戶登錄過(guò)程與注冊(cè)過(guò)程相似,這里借助獲得HttpRequestUtil的doPostRequest()方法來(lái)獲得響應(yīng)信息。
2)拍照。在系統(tǒng)中,拍照功能通過(guò)意圖機(jī)制來(lái)實(shí)現(xiàn),即使用android. Provider.MediaStore類(lèi)定義的意圖ACTION_IMAGE_CAPTURE。創(chuàng)建ACTION_IMAGE_CAPTURE實(shí)例,然后通過(guò)startActivityForResult()方法啟動(dòng)該實(shí)例,并通過(guò)onActivityResult()回調(diào)方法獲取返回的圖像,用戶選擇是否上傳。
3)圖片上傳。用戶決定上傳照片至云端,必須考慮相片的大小,啟動(dòng)移動(dòng)設(shè)備拍照功能獲得的Bitmap圖形通常比較大,直接上傳,速度慢,且易中斷導(dǎo)致上傳失敗,因此上傳前必須將圖片進(jìn)行壓縮處理。這里直接以同等比例縮放寬和高再進(jìn)行圖片的上傳。
圖片上傳需要將圖形轉(zhuǎn)化為圖片流格式最終以字符串流存儲(chǔ)在字符串?dāng)?shù)組中,然后創(chuàng)建HttpClient對(duì)象,發(fā)送Post請(qǐng)求,并設(shè)置相關(guān)的參數(shù)完成圖片的上傳。
4)圖片搜索。圖片搜索主要通過(guò)圖片的文件名進(jìn)行模糊匹配,這里通過(guò)監(jiān)聽(tīng)搜索框的字符輸入,實(shí)時(shí)搜索圖片,具體實(shí)現(xiàn)是先獲得搜索框ID,然后添加輸入監(jiān)聽(tīng),通過(guò)afterTextChanged()方法開(kāi)啟新線程,再通過(guò)handlerMessage()方法加載數(shù)據(jù)并刷新界面,核心代碼如下:
for (HashMap
if (item.get(“photoName”).toString().contains(search_text)) {
SearchList.search_list.add(item);}}
3 總結(jié)
基于云平臺(tái)的移動(dòng)相冊(cè)是利用“Android+移動(dòng)云端”架構(gòu)開(kāi)發(fā),實(shí)現(xiàn)了多用戶大容量的移動(dòng)相片存儲(chǔ)管理。將OSS、ECS和RDS三者有效的結(jié)合起來(lái),有效的解決了移動(dòng)設(shè)備內(nèi)存不足,數(shù)據(jù)易丟失的問(wèn)題,但該系統(tǒng)還存在很多不足,今后將從相片的分享功能,云端相冊(cè)管理,優(yōu)化分頁(yè)、內(nèi)存管理等方面進(jìn)一步完善系統(tǒng)功能。
參考文獻(xiàn)
[1]王培海.基于android的移動(dòng)云存儲(chǔ)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2011(15).
[2]陳志偉,李天福.基于Android平臺(tái)的云相冊(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2013(10).
摘 要 隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的發(fā)展,云計(jì)算技術(shù)得到迅速普及,廣泛應(yīng)用在生活的各個(gè)方面?;谠破脚_(tái)的移動(dòng)相冊(cè)是利用“Android+移動(dòng)云端(云服務(wù)器+云存儲(chǔ)+云關(guān)系數(shù)據(jù)庫(kù))”架構(gòu)開(kāi)發(fā),實(shí)現(xiàn)了多用戶大容量的移動(dòng)相片存儲(chǔ)管理。與以往的個(gè)人相冊(cè)相比,它克服了移動(dòng)設(shè)備內(nèi)存不足,數(shù)據(jù)易丟失的缺點(diǎn),具有一定的實(shí)用價(jià)值。
關(guān)鍵詞 移動(dòng);云計(jì)算;云平臺(tái)
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-7597(2014)17-0012-02
隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的發(fā)展,云計(jì)算技術(shù)得到迅速普及,廣泛應(yīng)用在生活的各個(gè)方面。與其他服務(wù)模式相比,云計(jì)算服務(wù)模式具有成本低、安全性高、資源利用率的特點(diǎn),受到眾多企業(yè)的青睞。而一些知名企業(yè)也相繼建立推出自己的云平臺(tái),來(lái)提供開(kāi)發(fā)、租用、托管網(wǎng)絡(luò)應(yīng)用程序的平臺(tái),例如阿里巴巴提供的阿里云、百度提供的百度云。而基于云平臺(tái)的移動(dòng)相冊(cè)是利用“Android+移動(dòng)云端”架構(gòu)開(kāi)發(fā),實(shí)現(xiàn)了多用戶大容量的移動(dòng)相片存儲(chǔ)管理。與以往的個(gè)人相冊(cè)相比,它克服了移動(dòng)設(shè)備內(nèi)存不足,數(shù)據(jù)易丟失的缺點(diǎn)。
1 系統(tǒng)總體分析與設(shè)計(jì)
基于云平臺(tái)的移動(dòng)相冊(cè)系統(tǒng)功能包括:用戶注冊(cè)登錄;拍照功能;上傳相片至云端功能;查看云端相冊(cè)列表和單張圖片;查看本地相冊(cè)。
本系統(tǒng)采用“Android+移動(dòng)云端”架構(gòu)開(kāi)發(fā)。Android端作為用戶使用的手持終端,完成用戶注冊(cè)、登錄、拍照上傳、查看云相冊(cè)和本地相冊(cè)功能;移動(dòng)云端則包括云服務(wù)器(Elastic Computer Service,ECS)、云存儲(chǔ)(Open Storage Service,OSS)、云關(guān)系數(shù)據(jù)庫(kù)(Relational Database Service,RDS)。其中云服務(wù)器ECS搭建APP服務(wù)器程序;云關(guān)系數(shù)據(jù)庫(kù)RDS,作為用戶數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù)環(huán)境;云存儲(chǔ)OSS,作為用戶相冊(cè)文件存儲(chǔ)的云端。
1)平臺(tái)選擇。系統(tǒng)選擇阿里巴巴提供的阿里云平臺(tái),它使用阿里巴巴的管理數(shù)據(jù)中心,提供云服務(wù)器的租用;云存儲(chǔ)及云盾等多種云服務(wù)。
2)系統(tǒng)工作流程分析。用戶在移動(dòng)設(shè)備端進(jìn)行用戶信息的輸入,然后發(fā)送HTTP請(qǐng)求給云端服務(wù)器上的tomcat服務(wù)器,服務(wù)器進(jìn)行響應(yīng)與RDS進(jìn)行連接,將用戶信息插入到UserInfo數(shù)據(jù)表中,返回HTTP,再次返回到移動(dòng)用戶端,用戶端提示注冊(cè)成功,進(jìn)入登錄界面,輸入用戶名和密碼,再次發(fā)送HTTP請(qǐng)求給tomcat服務(wù)器,服務(wù)器與RDS連接,查詢是否有該用戶存在,并返回HTTP請(qǐng)求結(jié)果,而后再回到移動(dòng)應(yīng)用程序端解碼登錄成功或是失敗。登錄成功則進(jìn)入主界面完成拍照、查看本地相冊(cè)、搜索本地相冊(cè)、退出功能,拍照完成后還可選擇將相片上傳到云存儲(chǔ)ECS中。
2 系統(tǒng)實(shí)現(xiàn)
2.1 云服務(wù)器
1)購(gòu)買(mǎi)服務(wù)器,安裝web環(huán)境。先購(gòu)買(mǎi)ECS,獲得root賬號(hào)和密碼,然后在dos下輸入mstcs命令遠(yuǎn)程登錄云服務(wù)器,安裝好web服務(wù)器tomcat6,并測(cè)試web服務(wù)器是否安裝成功。
2)web源碼開(kāi)發(fā)并打包。服務(wù)器端采用MyEclipse工具開(kāi)發(fā),并在本地進(jìn)行測(cè)試,并將工程打包成war包。
3)部署并啟動(dòng)服務(wù)。將war包部署到ECS上的tomcat服務(wù)器下,并啟動(dòng)tomcat服務(wù)。
2.2 云數(shù)據(jù)庫(kù)
本系統(tǒng)使用RDS中提供的MySQL服務(wù),主要實(shí)現(xiàn)用戶信息的存儲(chǔ),先購(gòu)買(mǎi)RDS后,創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例,管理實(shí)例,在該實(shí)例下創(chuàng)建賬號(hào)和數(shù)據(jù)庫(kù)cloudphotodb,同時(shí)借用MySQL的界面工具navicat8來(lái)創(chuàng)建和設(shè)計(jì)數(shù)據(jù)表。根據(jù)系統(tǒng)功能需求,cloudphotodb數(shù)據(jù)庫(kù)包含用戶表UserInfo表,如表1所示。
表1 UserInfo表
字段名 字段說(shuō)明 字段類(lèi)型 是否允許為空 備注
ID 序列號(hào) int 主鍵,自動(dòng)增長(zhǎng)列
usename 用戶名 varchar 否
usepwd 密碼 varchar 否
ossfolder 存儲(chǔ)文件夾 varchar 否
2.3 云存儲(chǔ)
用戶的個(gè)人相冊(cè)是存儲(chǔ)在云存儲(chǔ)中的,因此用戶可享用海量、安全、低成本的相片存儲(chǔ)服務(wù),可以在任何時(shí)間、任何地點(diǎn)上傳和下載相片。操作方法同樣需要先購(gòu)買(mǎi)后開(kāi)通OSS,獲取KEY和密鑰,即可進(jìn)入相冊(cè)管理,方便進(jìn)行系統(tǒng)測(cè)試,檢驗(yàn)圖片是否上傳成功。
2.4 移動(dòng)端
1)用戶注冊(cè)登錄。用戶注冊(cè)則是在移動(dòng)設(shè)備端進(jìn)行用戶信息的輸入,然后發(fā)送HTTP請(qǐng)求連同用戶名和密碼等傳輸給云端服務(wù)器上的tomcat服務(wù)器,服務(wù)器進(jìn)行響應(yīng)與RDS進(jìn)行連接,將用戶信息插入到UserInfo數(shù)據(jù)表中,返回HTTP,再次返回到移動(dòng)用戶端,用戶端提示注冊(cè)成功,進(jìn)入登錄界面。用戶登錄過(guò)程與注冊(cè)過(guò)程相似,這里借助獲得HttpRequestUtil的doPostRequest()方法來(lái)獲得響應(yīng)信息。
2)拍照。在系統(tǒng)中,拍照功能通過(guò)意圖機(jī)制來(lái)實(shí)現(xiàn),即使用android. Provider.MediaStore類(lèi)定義的意圖ACTION_IMAGE_CAPTURE。創(chuàng)建ACTION_IMAGE_CAPTURE實(shí)例,然后通過(guò)startActivityForResult()方法啟動(dòng)該實(shí)例,并通過(guò)onActivityResult()回調(diào)方法獲取返回的圖像,用戶選擇是否上傳。
3)圖片上傳。用戶決定上傳照片至云端,必須考慮相片的大小,啟動(dòng)移動(dòng)設(shè)備拍照功能獲得的Bitmap圖形通常比較大,直接上傳,速度慢,且易中斷導(dǎo)致上傳失敗,因此上傳前必須將圖片進(jìn)行壓縮處理。這里直接以同等比例縮放寬和高再進(jìn)行圖片的上傳。
圖片上傳需要將圖形轉(zhuǎn)化為圖片流格式最終以字符串流存儲(chǔ)在字符串?dāng)?shù)組中,然后創(chuàng)建HttpClient對(duì)象,發(fā)送Post請(qǐng)求,并設(shè)置相關(guān)的參數(shù)完成圖片的上傳。
4)圖片搜索。圖片搜索主要通過(guò)圖片的文件名進(jìn)行模糊匹配,這里通過(guò)監(jiān)聽(tīng)搜索框的字符輸入,實(shí)時(shí)搜索圖片,具體實(shí)現(xiàn)是先獲得搜索框ID,然后添加輸入監(jiān)聽(tīng),通過(guò)afterTextChanged()方法開(kāi)啟新線程,再通過(guò)handlerMessage()方法加載數(shù)據(jù)并刷新界面,核心代碼如下:
for (HashMap
if (item.get(“photoName”).toString().contains(search_text)) {
SearchList.search_list.add(item);}}
3 總結(jié)
基于云平臺(tái)的移動(dòng)相冊(cè)是利用“Android+移動(dòng)云端”架構(gòu)開(kāi)發(fā),實(shí)現(xiàn)了多用戶大容量的移動(dòng)相片存儲(chǔ)管理。將OSS、ECS和RDS三者有效的結(jié)合起來(lái),有效的解決了移動(dòng)設(shè)備內(nèi)存不足,數(shù)據(jù)易丟失的問(wèn)題,但該系統(tǒng)還存在很多不足,今后將從相片的分享功能,云端相冊(cè)管理,優(yōu)化分頁(yè)、內(nèi)存管理等方面進(jìn)一步完善系統(tǒng)功能。
參考文獻(xiàn)
[1]王培海.基于android的移動(dòng)云存儲(chǔ)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2011(15).
[2]陳志偉,李天福.基于Android平臺(tái)的云相冊(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2013(10).