金思宇,吳振宇,沈蘇彬
(1.南京郵電大學 物聯(lián)網(wǎng)學院,江蘇 南京 210003;2.南京郵電大學 計算機學院,江蘇 南京 210003)
一種基于Android平臺的云客戶端實現(xiàn)方案
金思宇1,吳振宇1,沈蘇彬2
(1.南京郵電大學 物聯(lián)網(wǎng)學院,江蘇 南京 210003;2.南京郵電大學 計算機學院,江蘇 南京 210003)
由于受到存儲資源和計算資源匱乏的影響,移動設備無法進行大文件的存儲操作和計算密集型任務的執(zhí)行操作,這種資源受限的問題一直是影響移動設備用戶體驗的關鍵問題之一。為此移動設備生產(chǎn)廠商長久以來試圖通過不斷改良硬件來解決這一問題。文中試圖通過利用云計算技術解決移動設備存儲和計算資源受限的問題。首先成功地設計并開發(fā)了支持OpenStack、AWS和阿里云進行云存儲操作的云客戶端原型,接著提出了一種移動應用計算減荷的解決方案。利用云存儲技術和本地文件瀏覽器將本地的大文件上傳到云端;通過攔截進程間通信,將耗時任務減荷到云端運行。通過實驗驗證了云客戶端原型可以成功地將移動設備上的大文件保存到云端,提高移動設備的運行效率。
云計算;云存儲;移動云;Android客戶端
以智能手機為代表的移動設備由于其安裝了豐富的應用得到了飛速的普及和發(fā)展。隨著各種各樣的移動應用的涌現(xiàn),用戶對移動設備的存儲和計算能力的要求越來越高。但移動設備硬件的發(fā)展速度常常無法滿足移動應用對于存儲和計算資源的要求,一些應用由于受到移動設備存儲空間小、處理能力低、內(nèi)存有限、網(wǎng)絡連接不穩(wěn)定和電池使用時間短等限制而無法在移動設備上運行[1]。
目前,移動設備的生產(chǎn)商力圖不斷通過改良移動設備的硬件來提高移動設備的運行效率和計算能力。這導致了兩方面的問題:由于尺寸限制,硬件層面的改良很難完全滿足應用的需要;一味增加硬件的性能,在運行對移動設備性能要求不高的應用時造成了資源浪費,增加了設備廠商的成本,最終導致移動設備用戶成本的增加。
近年來,云計算技術發(fā)展迅速,它使用戶可以在任何時間任何地點按需獲得所需資源。驅(qū)使云計算誕生和發(fā)展的因素有:網(wǎng)格計算的發(fā)展、數(shù)據(jù)存儲和傳輸中高新技術的出現(xiàn)、WEB2.0的出現(xiàn)。其中虛擬化技術的發(fā)展對云計算影響巨大[2]。
云計算具有虛擬化、分布式和動態(tài)可擴展性等特征。虛擬化指對云進行的管理、擴展、遷移和通過虛擬平臺進行的備份等操作都可以在虛擬層完成;分布式指的是計算所用的物理節(jié)點是分布式的;動態(tài)擴展指的是通過動態(tài)擴展虛擬化層達到承載應用的目的。虛擬化技術通過將物理資源適應邏輯進行統(tǒng)一表示,打破了原有物理資源的壁壘。
云存儲和計算減荷技術可以從軟件的角度解決移動設備資源受限的問題。云存儲將數(shù)以萬計的廉價存儲設備結合成一個龐大的存儲資源池,用戶可以按照自己的需求使用池中的存儲資源[3],它的三個特征是:分布于網(wǎng)絡(互聯(lián)網(wǎng)或局域網(wǎng))、易于擴展和易于管理[4]。計算減荷可以將資源敏感的計算任務從移動設備遷移到資源豐富的云端,增強移動應用的性能、減少電量消耗。
文中分別從存儲和計算的角度出發(fā),研究如何將云中的資源提供給移動設備使用。基于Android平臺創(chuàng)新性地設計并實現(xiàn)了一種支持三種主流云平臺的移動云客戶端,提出了一種適用于Android設備的進程間通信攔截方案,利用該方案設計開發(fā)了客戶端的云存儲功能和計算減荷功能。
1.1 移動云架構
移動云的定義是:一種云計算技術和移動設備的整合,旨在在存儲、計算、能源和情景感知方面使移動設備具有充足的資源[5]。
移動云計算是用云計算技術和移動計算技術共同發(fā)展而來,這個跨學科的技術也被稱為mobicloud computing[6]。
移動云計算具有兩種不同的架構:一是以基礎設施為基礎的,二是專用的云。在基于基礎設施的云計算架構中,硬件基礎設施仍然是固定的,并且向移動用戶提供服務。相對的,專用的云指的是一組移動設備組成的云平臺,其基于局域網(wǎng)或因特網(wǎng)向其他移動設備提供云服務[7]。文中討論的移動云是基于基礎設施的云。
移動設備可以通過兩種方式接入到云中,分別是通過移動網(wǎng)絡和熱點接入,如圖1所示。

圖1 移動云架構
與3G移動網(wǎng)絡相比,WiFi具有更低的延遲和能耗[7],所以在接入網(wǎng)絡方式上用戶應首選WiFi。文中對移動網(wǎng)絡環(huán)境下的上傳下載操作進行了相應優(yōu)化。
1.2 主流云平臺介紹
OpenStack為公有云和私有云提供了可擴展的彈性云平臺,可以實現(xiàn)簡單、大規(guī)模可擴展的云。圖2展示了OpenStack的基本架構。

圖2 OpenStack架構圖
其中,Nova作為云平臺的控制器,具有Nova-API,負責根據(jù)用戶的請求部署資源;Queue,是通過RabbitMQ實現(xiàn)的消息隊列,用于實現(xiàn)遠程程序請求;Nova計算模塊,負責開始或終止計算節(jié)點上的虛擬機實例;Nova網(wǎng)絡模塊,負責為虛擬機實例管理IP地址以及建立虛擬局域網(wǎng);Nova中卷管理模塊負責關鍵虛擬機的卷的創(chuàng)建和掛載等操作;Nova調(diào)度模塊,負責根據(jù)可用的計算節(jié)點調(diào)度計算資源;Nova數(shù)據(jù)庫[8]。Swift對象存儲系統(tǒng)非常易于擴展,其包含一個代理服務器、一個對象服務器、一個賬戶服務器、一個容器服務器。Glance是鏡像存儲組件,用于在虛擬機的鏡像中創(chuàng)建用于查找和檢索的系統(tǒng)。Dashboard實現(xiàn)一個基于Web的用戶接口。
亞馬遜AWS最早通過網(wǎng)頁的形式為用戶提供IT資源服務,可以說是云計算的鼻祖。阿里獨立開發(fā)的飛天平臺是阿里云服務的基礎,其可以有效地管理數(shù)據(jù)中心中的服務器集群,很好地做到了隱藏層硬件實現(xiàn)的細節(jié),使用戶便于使用存儲、計算資源。
1.3 Android系統(tǒng)架構
Android平臺基于Linux內(nèi)核,其將應用、應用系統(tǒng)內(nèi)核和中間件進行了分層。其基本架構見圖3。

圖3 Android系統(tǒng)架構
Linux內(nèi)核層:主要負責保障系統(tǒng)運行的安全性、穩(wěn)定性,管理基本的內(nèi)存使用,管理程序的進程、網(wǎng)絡堆棧和處理驅(qū)動模塊。Android系統(tǒng)的Linux內(nèi)核層放棄了使用虛擬內(nèi)存文件,提高了文件系統(tǒng)的工作效率[9]。
Android運行時及其他庫層:Android平臺上每個應用都有自己專有的Dalvik虛擬機實例。經(jīng)過優(yōu)化使每個虛擬機占用很小的內(nèi)存。
應用框架層:使開發(fā)人員有權限訪問框架中所有API。
應用程序?qū)樱杭聪到y(tǒng)自帶的用于實現(xiàn)一些重要基礎功能的應用,開發(fā)新應用時可以很方便地與這些核心應用交互[10]。
將文中設計的移動云客戶端功能視圖劃分為如下模塊:用戶認證、云存儲、信息管理、計算減荷和其他功能。
2.1 用戶認證模塊
用戶認證模塊主要負責獲取用戶輸入的賬號密碼和與云端認證模塊交互,判斷認證結果后返回給客戶端。其首先檢驗賬號密碼的合法性并判斷移動設備目前的聯(lián)網(wǎng)狀態(tài),接著和云平臺交互進行用戶認證操作,最后用戶認證模塊對認證結果進行判斷,如果認證成功則向客戶端返回成功認證的消息,若認證不成功則判斷失敗原因,如用戶賬號密碼錯誤或是網(wǎng)絡因素,返回相應的失敗原因給客戶端。
2.2 云存儲模塊
云存儲模塊主要負責根據(jù)用戶選擇的本地或云端文件完成對應的上傳或下載操作。由于在移動網(wǎng)絡下進行云存儲操作相比WiFi環(huán)境具有低帶寬、高時延的缺陷,所以針對移動網(wǎng)絡進行了優(yōu)化設計。
數(shù)據(jù)上傳模塊中,首先實現(xiàn)對本地設備文件進行瀏覽的功能。其次,允許用戶選擇需要上傳的文件,并選擇是執(zhí)行直接上傳操作還是壓縮上傳操作。針對移動網(wǎng)絡環(huán)境,文中優(yōu)化了上傳機制,在該環(huán)境下會優(yōu)先推薦用戶使用壓縮上傳功能,將待上傳文件壓縮成ZIP格式再進行上傳。數(shù)據(jù)上傳模塊支持用戶多選在不同路徑下的文件,在一次上傳操作中打包將這些文件上傳云端。
數(shù)據(jù)下載模塊,首先會遍歷云端已有的文件和文件存儲結構,接著將遍歷結果保存在客戶端的數(shù)據(jù)庫中。和數(shù)據(jù)上傳模塊一樣,數(shù)據(jù)下載模塊也考慮移動網(wǎng)絡環(huán)境下的優(yōu)化。通過實驗發(fā)現(xiàn),在用戶進行了上傳操作之后云端存儲的文件才有可能發(fā)生變化。所以數(shù)據(jù)下載模塊在客戶端軟件關閉后初次啟動或發(fā)生了上傳操作的情況下,才會查詢云端文件存儲結構。查詢結果會保存在數(shù)據(jù)庫中,方便用戶下次下載操作時使用。
2.3 信息管理
信息管理模塊主要負責收集云端和本地設備的運行信息和資源信息,并展示給用戶。
云資源信息管理模塊主要負責與云平臺的管理軟件通信,收集存儲和計算資源的使用情況,并在移動設備上向用戶展示。本地設備信息管理模塊主要負責收集移動設備當前的存儲、內(nèi)存、電量和CPU使用率情況,并用圖表向用戶展示。用戶在使用客戶端時,可以通過這些信息決定是否需使用云存儲服務或?qū)⒂嬎銣p荷到云端。
2.4 計算減荷
計算減荷模塊主要負責將本地移動設備中計算密集型任務卸載到云端運行。目前計算減荷的解決方案可以分為兩種:一種是在移動應用開發(fā)時使用可以進行計算減荷的框架和模式,這種框架需要對Android系統(tǒng)或應用本身進行修改,如文獻[11-12];另一種是在不改變移動應用本身和Android系統(tǒng)本身的前提下,通過在移動設備上的客戶端軟件,監(jiān)測移動應用的行為,當其需要執(zhí)行計算密集型任務時,將該任務卸載到云端。
文中設計的移動客戶端軟件更加傾向于第二種計算減荷解決方案。因為移動設備的流行很大程度上是由于其具有豐富多樣的移動應用,要求每一個移動應用的開發(fā)者都遵循一個統(tǒng)一的框架開發(fā),來開發(fā)支持計算減荷的應用,在生產(chǎn)環(huán)境下的成本是巨大的。
文中的計算減荷模塊是一種基于Android系統(tǒng)組件接口的計算減荷方式,客戶端將監(jiān)聽Android系統(tǒng)中Activity組件對Service組件的調(diào)用并利用動態(tài)代理攔截Binder請求,根據(jù)移動設備目前的運行情況或提示用戶決定是否需要卸載計算任務到云端。
2.5 其他功能
其他功能主要包括用戶反饋模塊和關于程序模塊。客戶端程序在運行時產(chǎn)生的日志文件都會被重定向到設備本地文件中,用反饋模塊將運行日志和客戶反饋信息一同發(fā)送給開發(fā)者。關于程序模塊主要負責顯示客戶端的開發(fā)者信息和版本號。
3.1 UML建模
從實現(xiàn)視圖劃分,云客戶端具有UI、云端交互、信息采集、數(shù)據(jù)展示和輔助功能模塊。文中實現(xiàn)的云客戶端基于Android系統(tǒng)使用Java語言開發(fā)。根據(jù)面向?qū)ο蟮乃枷耄瑢﹂_發(fā)中需要的對象進行抽象得到客戶端中主要的類結構關系,如圖4所示。這里簡要列出了主要的類和這些類中主要的方法,省略了一些非主要功能函數(shù)和類。

圖4 云客戶端類圖
為了支持三種不同的云平臺而開發(fā)三套不同的上傳下載和登錄邏輯會造成大量的代碼冗余問題,不利于維護并且導致程序臃腫。文中通過對客戶端軟件的基本操作進行抽象,提取出三個對應的接口,分別是CloudStorage、Offload和InfoInquiry,分別表示云存儲、計算減荷和信息查詢模塊。程序的實現(xiàn)中,通過實現(xiàn)相應的接口,自定義的類可以提供相應操作所需方法,如CloudStorage接口由UploadFiles和DownloadFiles兩個類實現(xiàn),這兩個類執(zhí)行上傳和下載邏輯。這種設計體現(xiàn)了經(jīng)典的開閉原則,主UI類中使用setter方法將用戶的數(shù)據(jù)傳遞給相應的類,每個類在完成數(shù)據(jù)處理之后,提供相應的getter方法或Android的消息傳遞機制將結果返回給主UI類。
3.2 云平臺接口分析
OpenStack是當今最流行的開源云平臺,而AWS和阿里云分別是國內(nèi)外最流行的公有云平臺。為了增加客戶端的實用性和通用性,文中設計兼容了這三種最主流的云平臺,也是文中的創(chuàng)新點之一。針對OpenStack、AWS和阿里云三種不同的平臺,以實現(xiàn)云存儲功能為目的,對三種云提供的接口進行了研究。在接口的支持方面,接口最為完善和強大的是AWS平臺,其支持Android、iOS、Java、Python、PHP等幾乎所有常用的語言和平臺。其次是OpenStack平臺,與AWS相比OpenStack只是缺少了對于iOS操作系統(tǒng)的支持,但是值得一提的是OpenStack官方指定的Java SDK為Apache Jclouds,也正是文中客戶端選用的Java SDK。Apache Jclouds是Apache基金會推出的一個開源項目,旨在支持所有主流的云平臺。通過使用Jclouds SDK可以和30種不同的云平臺進行交互,包括Amazon、Azure、OpenStack和Google等。目前,其對各種云平臺的計算服務和存儲服務提供了成熟的支持,其提供的計算服務接口可以允許用戶一次性開啟多臺虛擬機,并在其中安裝制定的軟件;存儲服務可以簡化用戶對存儲容器的管理,為用戶提供一個存儲容器的直觀的視圖。
相比于上述兩個云平臺,阿里云提供的接口十分有限,在文中進行開發(fā)和實驗時其僅支持Java、Python、.NET和PHP四種接口。
在接口的使用效率方面,做的最好的依然是AWS,利用其為Android提供的SDK,用戶可以通過多種方式進行身份認證,并且認證成功后AWS將返回一個用于緩存認證結果的對象,使用該對象可以創(chuàng)建對應于該賬戶的證書緩存,再使用傳輸管理器對象提供的上傳和下載方法即可實現(xiàn)數(shù)據(jù)的上傳下載。利用Apache提供的Jclouds SDK與OpenStack的Swift組件交互實現(xiàn)云存儲功能也十分簡單。首先傳入Swift組件的地址或URL和認證所需要的用戶名密碼獲取Swift API對象,接著調(diào)用上傳、下載或創(chuàng)建容器方法并傳入創(chuàng)建好的用戶選項對象即可完成相應操作。
由于Android應用使用Java語言進行開發(fā),所以基于阿里云的云存儲開發(fā)文中選擇其提供的Java SDK。但在實驗中發(fā)現(xiàn),其在Android設備上運行時會報無相應方法錯誤。進一步實驗發(fā)現(xiàn),這一問題是由于新建阿里云OSSClient內(nèi)部通過SDK中的ThreadSafeClientConnManager構造,該方法其實生成一個httpClient對象,為此阿里云SDK和Android平臺都集成了Apache的HttpClient類庫,導致阿里云封裝的代碼中調(diào)用的方法在Android上運行時無法找到。最后,使用了一個第三方的SDK與阿里云進行交互,同時,阿里已經(jīng)陸續(xù)增加了其云存儲SDK,將逐步支持更多的平臺。
3.3 主要功能實現(xiàn)
云存儲模塊分為數(shù)據(jù)上傳和數(shù)據(jù)下載兩個功能。在實現(xiàn)數(shù)據(jù)上傳功能的過程中,文中首先實現(xiàn)了一個基于Android移動設備文件瀏覽器,可以向用戶展示本地所有文件的絕對路徑和文件名。在用戶選擇了相應的文件后,該文件的絕對路徑和文件名將被傳遞到上傳模塊中,上傳模塊判斷用戶是否選擇壓縮操作,并生成相應的壓縮文件對象,接著從用戶認證模塊獲取已經(jīng)通過認證的云平臺傳輸管理器對象,調(diào)用其提供的上傳方法進行文件上傳操作。
文件下載功能,首先需要通過信息查詢模塊,查詢云端目前保存的文件以及保存文件的存儲結構。為了節(jié)省移動設備的資源,查詢操作只有在客戶端運行后首次進行下載操作或進行了上傳操作之后才會運行,并且客戶端會將最新的查詢結果保存在本地SQLite數(shù)據(jù)庫中作為緩存。這里使用SQLite這一Android提供的輕量級數(shù)據(jù)庫,相比于傳統(tǒng)的SQL數(shù)據(jù)庫,SQLite更加輕量更加適合嵌入式設備,在運行時僅僅需要百kb級的內(nèi)存[13]。并且Android為其提供了SQLite Helper類,不僅可以使用傳統(tǒng)的SQL語句,而且可以使用面向?qū)ο蟮姆椒▽ζ溥M行操作。用戶通過查看數(shù)據(jù)庫獲得云中文件存儲結構信息并選擇下載。
信息查詢模塊通過和云平臺的管理模塊進行通信,獲得云中目前的存儲和計算資源使用情況;通過與Android交互,查詢移動設備的內(nèi)存、存儲、CPU和電量信息,并將這些信息匯總到圖表中展示給用戶。
傳統(tǒng)的計算減荷解決方案通過接收應用發(fā)送的Intent請求或監(jiān)聽Activity和Service之間的調(diào)用實現(xiàn)。這種解決方案的前提是移動設備上所有的應用都會發(fā)送標準的Intent請求并且移動云客戶端可以準確攔截所有的Intent請求。通過實驗發(fā)現(xiàn),由于Android系統(tǒng)本身的碎片化現(xiàn)象和Android應用的多樣化,不同品牌的設備和不同開發(fā)者開發(fā)的應用,對同一個Intent請求做出的響應是不同的,并且開發(fā)者并不會遵從同樣的開發(fā)原則。使用一個客戶端接收所有應用發(fā)送Intent請求可行性較低,這并不是一種通用的解決方案。文中提出通過攔截并監(jiān)聽計算密集型任務的Binder調(diào)用進行計算減荷。Binder是Andorid的IPC機制,由用戶層的libbinder.so和binder驅(qū)動實現(xiàn)。
常見IPC攔截解決方案是在主調(diào)組件中注入并加載用于攔截的模塊,在主調(diào)組件GOT表中確定被調(diào)組件地址,重定向到新的地址[14]。由于Android和Linux的內(nèi)存布局不同,所以常見的方法在Android平臺上無法實現(xiàn)。為此,文中通過實驗提出如下適合Android的攔截方式:
首先,運行注入程序,通過ptrace停止并附加系統(tǒng)服務;注入內(nèi)核代碼加載共享庫接觸附加服務,調(diào)用共享庫中函數(shù);該函數(shù)將自己的地址和被替換的按時地址暴露到Android Property;注入程序通過Android Property獲得新函數(shù)和替換函數(shù)的地址并再次附加系統(tǒng)服務,定位got文件中原始函數(shù)的地址并將其替換成新地址;最后附加系統(tǒng)服務并重新運行。
通過上述步驟將活動對服務的調(diào)用請求由客戶端發(fā)送到云端。云端運行的虛擬在接收到調(diào)用后會啟動其本地的服務,執(zhí)行該計算任務,執(zhí)行完畢后將執(zhí)行結果返回給客戶端,再由客戶端返回到作為服務調(diào)用方的活動組件中。
文中涉及的客戶端測試環(huán)境如下:
(1)移動設備:Android 4.3系統(tǒng),高通驍龍800四核處理器,運行內(nèi)存3 GB,電池3 200 mAh,外部存儲32 G。
(2)云平臺:OpenStack G版部署Intel core i3,內(nèi)存8 G,磁盤500 GB的物理機上,AWS和阿里云均使用其官方提供的平臺。
在移動設備上運行文中設計的客戶端軟件,其主界面如圖5所示。在列表試圖中包括了用戶認證、云資源管理、數(shù)據(jù)上傳和下載、運行狀態(tài)等8個不同的按鈕。

圖5 客戶端主界面
為了驗證客戶端設計的正確性,在移動和熱點接入環(huán)境下,在實驗移動設備上運行客戶端原型。首先在移動設備上完成用戶認證操作,獲取云端資源的使用權,接著選取本地測試文件testCloudStorage分別上傳文件到OpenStack、AWS和阿里云,然后選擇云中保存的測試文件下載到本地的操作也可以正確完成。
通過實驗發(fā)現(xiàn),三種不同的云平臺可以提供可伸縮的對象存儲服務,從存儲效率上,由于AWS的云服務器位于境外,所以通信速率要低于另外兩個云平臺。由于三種云提供的都是基于對象存儲服務,所以都需要在全局唯一的bucket中對數(shù)據(jù)對象進行存儲。
文中對Andriod系統(tǒng)架構和云計算技術進行了闡述,研究在Android移動設備上使用云存儲服務和云計算減荷服務的方法,通過開發(fā)移動云客戶端,實現(xiàn)了在移動設備上使用OpenStack、AWS和阿里云三種不同的云平臺提供的存儲資源,并提出了一種移動設備計算減荷的解決方案。通過對開發(fā)的客戶端原型進行測試,結果表明該設計方案合理可行,開發(fā)的客戶端能夠為移動用戶提供高效率的云存儲服務。接下來的研究和開發(fā)將針對計算減荷這一課題展開,通過實驗開發(fā)具有移動設備計算減荷功能的客戶端原型。
[1] Vallina-Rodriguez N,Crowcroft J.Energy management techniques in modern mobile handsets[J].IEEE Communications Surveys & Tutorials,2013,15(1):179-198.
[2] Zhang S,Zhang S,Chen X,et al.Cloud computing research and development trend[C]//Second international conference on future networks.[s.l.]:IEEE,2010:93-97.
[3] Amazon simple storage service[EB/OL].2011-12-08.http://aws.amazon.com/s3/.
[4] 武永衛(wèi),黃小猛.云存儲[J].中國計算機學會通訊,2009,5(6):44-52.
[5] Othman M,Madani S A,Khan S U.A survey of mobile cloud computing application models[J].IEEE Communications Surveys & Tutorials,2014,16(1):393-413.
[6] Huerta-Canepa G,Lee D.A virtual cloud computing provider for mobile devices[C]//Proceedings of 1st ACM Workshop on mobile cloud computing & services: social networks and beyond.[s.l.]:ACM,2010:6.
[7] 吳吉義,平玲娣,潘雪增,等.云計算:從概念到平臺[J].電信科學,2009(12):23-30.
[8] Rimal B P,Choi E,Lumb I.A taxonomy and survey of cloud computing systems[C]//Fifth international joint conference on INC,IMS and IDC.[s.l.]:IEEE,2009:44-51.
[9] Meier R. Professional Android 4 application development[M].[s.l.]:John Wiley & Sons,2012.
[10] 韓 超.Android系統(tǒng)原理及開發(fā)要點詳解[M].北京:電子工業(yè)出版社,2010.
[11] Ghorpade S,Chavan N,Gokhale A,et al.A framework for executing android applications on the cloud[C]//International conference on advances in computing,communications and informatics.[s.l.]:IEEE,2013:230-235.
[12] Kovachev D,Yu T,Klamma R.Adaptive computation offloading from mobile devices into the cloud[C]//IEEE 10th international symposium on parallel and distributed processing with applications.[s.l.]:IEEE,2012:784-791.
[13] 郭 霖.第一行代碼—Android[M].北京:人民郵電出版社,2014.
[14] Chen E Y,Itoh M.Virtual smartphone over IP[C]//IEEE international symposium on world of wireless mobile and multimedia networks.[s.l.]:IEEE,2010:1-6.
A Cloud Client Implementation Scheme Based on Android Platform
JIN Si-yu1,WU Zhen-yu1,SHEN Su-bin2
(1.School of IoT,Nanjing University of Posts and Telecommunications,Nanjing 210003,China;2.School of Computer,Nanjing University of Posts and Telecommunications,Nanjing 210003,China)
Because mobile applications which need lots of storage space or computing power can not be efficiently executed,resource-constrained problem is always faced by mobile devices,and it affects the user experience.For this mobile device manufacturers have tried to improve the hardware continuously to solve this problem.It tries to use the cloud computing to solve this problem in this paper.By storing big files and offloading computationally intensive tasks to the cloud,it can improve the performance of mobile device.Moreover,a prototype of cloud client is designed which can supports three different cloud services,such as OpenStack,AWS and Aliyun.The cloud storages and file explorers are used to store big files in the cloud,using IPC interception to offload computationally intensive tasks to cloud.By the experiment,it concludes that cloud client can store big files to cloud and improve the performance of mobile device.
cloud computing;cloud storage;mobile cloud;Android client
2016-01-15
2016-04-20
時間:2016-10-24
國家自然科學基金資助項目(61502246);江蘇省未來網(wǎng)絡前瞻性研究資助項目(BY2013095-1-08);南京郵電大學自然科學基金(NY211115)
金思宇(1991-),男,碩士研究生,研究方向為云計算與云存儲;吳振宇,講師,研究方向為不確定性人工智能、數(shù)據(jù)挖掘;沈蘇彬,博士生導師,研究方向為計算網(wǎng)絡、下一代電信網(wǎng)及網(wǎng)絡安全。
http://www.cnki.net/kcms/detail/61.1450.TP.20161024.1105.020.html
TP301
A
1673-629X(2016)11-0019-06
10.3969/j.issn.1673-629X.2016.11.005