前言:想要寫出一篇引人入勝的文章?我們特意為您整理了移動(dòng)互聯(lián)網(wǎng)運(yùn)用框架功能要點(diǎn)及設(shè)計(jì)思路范文,希望能給你帶來靈感和參考,敬請閱讀。
本文作者:黃佳星、王晶、沈奇威 單位:北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國家重點(diǎn)實(shí)驗(yàn)室、東信北郵信息技術(shù)有限公司
移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展是當(dāng)今科技領(lǐng)域不可忽視的潮流,移動(dòng)互聯(lián)網(wǎng)是移動(dòng)和互聯(lián)網(wǎng)融合的產(chǎn)物,繼承了移動(dòng)隨時(shí)、隨地、隨身和互聯(lián)網(wǎng)分享、開放、互動(dòng)的優(yōu)勢,是整合二者優(yōu)勢的“升級版本”[1]。從個(gè)人的通信行為規(guī)律來講,移動(dòng)通信和固定通信類似[2]。移動(dòng)互聯(lián)網(wǎng)給用戶帶來的全新的體驗(yàn),代表了移動(dòng)增值業(yè)務(wù)未來的發(fā)展方向[3]。智能終端應(yīng)用作為廣大用戶使用移動(dòng)互聯(lián)網(wǎng)的重要途徑,無論在推動(dòng)移動(dòng)互聯(lián)網(wǎng)技術(shù)創(chuàng)新上,還是在滿足廣大用戶的需求上,都扮演著越來越重要的角色。Android是當(dāng)前使用范圍最廣的智能終端平臺。由于Android平臺在智能終端平臺市場份額上的領(lǐng)先地位,基于Android的移動(dòng)互聯(lián)網(wǎng)應(yīng)用具有大量的需求。在Android平臺上更加高效率地開發(fā)應(yīng)用,并且保證良好的軟件結(jié)構(gòu),是所有Android研發(fā)企業(yè)和個(gè)人面臨的挑戰(zhàn)。如果能很好地解決這一問題,將能夠幫助個(gè)人開發(fā)者和企業(yè)更好地適應(yīng)移動(dòng)互聯(lián)網(wǎng)快速發(fā)展的節(jié)奏,創(chuàng)造更大的價(jià)值。
1Android應(yīng)用開發(fā)現(xiàn)狀和應(yīng)用框架需求分析
1.1發(fā)展現(xiàn)狀
當(dāng)前的應(yīng)用開發(fā)現(xiàn)狀:通常要從零開始,逐一開發(fā)應(yīng)用所涉及的各項(xiàng)功能,當(dāng)需要使用平臺基礎(chǔ)能力時(shí),例如網(wǎng)絡(luò)、存儲等基礎(chǔ)能力時(shí),必須針對功能的特性,定義并實(shí)現(xiàn)相應(yīng)的基礎(chǔ)能力,再進(jìn)一步完成功能的開發(fā)。這種開發(fā)模式存在的問題是開發(fā)時(shí)間成本高,軟件之間的代碼復(fù)用度低,軟件結(jié)構(gòu)不合理。應(yīng)用開發(fā)的基礎(chǔ)支持方面,個(gè)人或企業(yè)開發(fā)者隨著項(xiàng)目開發(fā)的積累,能夠提煉出可復(fù)用的功能模塊。然而作為應(yīng)用開發(fā)過程中的支撐,這些模塊通用性較差,完整性不足,不能夠從本質(zhì)上提高代碼的復(fù)用度,對于開發(fā)效率的提升也不夠明顯。
1.2需求分析
為了解決當(dāng)前應(yīng)用開發(fā)方式存在的問題,本文提出基于Android的移動(dòng)互聯(lián)網(wǎng)應(yīng)用框架方案。該框架的目標(biāo)是滿足移動(dòng)互聯(lián)網(wǎng)領(lǐng)域的快速發(fā)展的背景之下,個(gè)人和企業(yè)開發(fā)者高效率開發(fā)并保證項(xiàng)目質(zhì)量的期望。應(yīng)用框架的核心需求是對于網(wǎng)絡(luò)、存儲等基礎(chǔ)組件的定義與實(shí)現(xiàn)。在此基礎(chǔ)上,通過對于已實(shí)現(xiàn)基礎(chǔ)組件的組合,提供實(shí)用的服務(wù),并對應(yīng)用開發(fā)提供友好的調(diào)用接口。應(yīng)用框架的作用是減少應(yīng)用開發(fā)周期,節(jié)約人力、時(shí)間成本。開發(fā)團(tuán)隊(duì)在應(yīng)用框架的幫助下,可以從平臺數(shù)據(jù)存儲、網(wǎng)絡(luò)訪問和結(jié)果解析等基礎(chǔ)能力的實(shí)現(xiàn)細(xì)節(jié)中解放出來,專注于應(yīng)用功能的設(shè)計(jì)與實(shí)現(xiàn)。
2框架設(shè)計(jì)
2.1框架結(jié)構(gòu)圖
框架結(jié)構(gòu)如圖1所示。應(yīng)用框架位于安卓4層結(jié)構(gòu)中的應(yīng)用層與應(yīng)用框架層之間。分為基礎(chǔ)能力框架與UI框架兩個(gè)部分。
2.1.1基礎(chǔ)能力框架
基礎(chǔ)能力框架的作用是提供移動(dòng)互聯(lián)網(wǎng)應(yīng)用需要的基礎(chǔ)能力和服務(wù),包含底層的能力組件和上層的服務(wù)兩個(gè)部分。能力組件包含“數(shù)據(jù)存儲”、“網(wǎng)絡(luò)訪問與結(jié)果解析”、“日志”三大組件。“數(shù)據(jù)存儲”組件提供數(shù)據(jù)存儲方面的支持;“網(wǎng)絡(luò)訪問與結(jié)果解析”提供訪問互聯(lián)網(wǎng)并且解析響應(yīng)數(shù)據(jù)的能力;“日志”組件優(yōu)化調(diào)試過程的信息輸出與對運(yùn)行時(shí)的信息進(jìn)行記錄。通過對3項(xiàng)能力的整合,支持上層的服務(wù)。例如云端一鍵備份與數(shù)據(jù)還原服務(wù)、LBS服務(wù)等。
2.1.2UI框架
UI框架的作用是提升用戶交互編程的效率。包括基于Tab的UI模板和UI控件庫兩個(gè)部分?;赥ab的UI模板面向包含多個(gè)并列子功能的應(yīng)用;UI控件庫封裝和優(yōu)化了與用戶交互相關(guān)控件,使得這些控件更易于使用。
2.2框架各模塊功能具體分析
2.2.1數(shù)據(jù)存儲組件
Android手機(jī)應(yīng)用中數(shù)據(jù)存儲的3種主要方式是SQLite數(shù)據(jù)庫、Preference存儲、文件存儲。應(yīng)用框架通過對這3種方式的支持與優(yōu)化提高開發(fā)數(shù)據(jù)存儲相關(guān)功能時(shí)的效率和質(zhì)量。
2.2.1.1SQLite數(shù)據(jù)庫
Android中通過SQLite數(shù)據(jù)庫引擎來實(shí)現(xiàn)結(jié)構(gòu)化數(shù)據(jù)存儲[4]。Android在運(yùn)行時(shí)集成了SQLite,所以每個(gè)Android應(yīng)用程序都可以使用SQLite數(shù)據(jù)庫[5]。應(yīng)用框架通過以下方式提高SQLite數(shù)據(jù)庫相關(guān)開發(fā)的效率和質(zhì)量:對底層數(shù)據(jù)庫操作API進(jìn)行封裝,保證調(diào)用方法的統(tǒng)一性和通用性,又對數(shù)據(jù)庫操作的靈活性不造成太大的影響;通過SQL語句的優(yōu)化,實(shí)現(xiàn)高效率的數(shù)據(jù)庫操作;幫助了解數(shù)據(jù)庫基本原理的應(yīng)用開發(fā)者,不用過分關(guān)注數(shù)據(jù)操作的細(xì)節(jié),更好地通過SQLite實(shí)現(xiàn)結(jié)構(gòu)化數(shù)據(jù)存儲。
2.2.1.2Preference存儲
Preference提供了一種輕量級的數(shù)據(jù)存儲方法,應(yīng)用場合主要是數(shù)據(jù)比較少的配置信息。它以“鍵-值”對的方式將數(shù)據(jù)保存在一個(gè)XML配置文件中[4]。相對于數(shù)據(jù)庫存儲而言,Preference存儲在操作上更加簡潔,適用于小數(shù)據(jù)量、零散的、非結(jié)構(gòu)化的數(shù)據(jù)存儲。應(yīng)用框架通過對于這種存儲方式的封裝,做到統(tǒng)一管理、簡化開發(fā)過程中對于Preference存儲的使用。應(yīng)用框架簡化基于“鍵-值”對的數(shù)據(jù)存儲過程,并且提供便捷的同時(shí)存儲多組“鍵-值”對數(shù)據(jù)的方法。
2.2.1.3文件存儲
除了SQLite數(shù)據(jù)庫和Preference存儲這兩種方式存儲之外,文件存儲也是Android平臺重要的存儲方式。文件存儲方式適用于文本文件、PDF文件、音視頻文件和圖片等。Android提供了文件讀寫的方法。應(yīng)用框架對基于流的文件讀寫進(jìn)行封裝,對上層提供簡潔、具有通用性的文件讀寫接口。
2.2.2網(wǎng)絡(luò)訪問與結(jié)果解析組件
HTTP是應(yīng)用層協(xié)議,用于分布式協(xié)作超媒體信息系統(tǒng),是一個(gè)客戶端和服務(wù)器端請求和應(yīng)答的標(biāo)準(zhǔn)。超文本傳輸協(xié)議是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。所有的WWW文件都必須遵守這個(gè)標(biāo)準(zhǔn)[7]。HTTP被廣泛地運(yùn)用于移動(dòng)終端與服務(wù)器端的交互,它是一個(gè)基于“請求-響應(yīng)”模式的協(xié)議,一個(gè)客戶機(jī)與服務(wù)器建立連接后,發(fā)送一個(gè)請求給服務(wù)器。服務(wù)器接到請求后,給予相應(yīng)的響應(yīng)信息[8]。框架的“網(wǎng)絡(luò)訪問與結(jié)果解析”組件分為兩個(gè)部分:HTTP請求發(fā)起模塊,幫助開發(fā)者更加便捷地向服務(wù)器端發(fā)起請求,請求的方式包括GET和POST兩種模式。HTTP結(jié)果解析模塊,當(dāng)前最為流行的網(wǎng)絡(luò)數(shù)據(jù)傳輸格式是XML,而JSON格式是一種輕量級的數(shù)據(jù)交換格式[9],載荷高、易于通過編碼進(jìn)行解析的特點(diǎn)使其非常適合移動(dòng)互聯(lián)網(wǎng)領(lǐng)域的數(shù)據(jù)傳輸。應(yīng)用框架支持XML、JSON兩種數(shù)據(jù)格式的解析,并通過良好的設(shè)計(jì)做到解析方法的通用性。
2.2.3日志組件
在程序開發(fā)過程中,日志(Log)是廣泛使用的用來記錄程序執(zhí)行過程的機(jī)制,它既可以用于程序調(diào)試,也可以用于產(chǎn)品運(yùn)營中的事件記錄。在Android系統(tǒng)中,通過工具類android.util.Log提供了日志機(jī)制。應(yīng)用框架的日志組件主要涉及兩方面內(nèi)容:調(diào)試輔助以及運(yùn)行事件記錄。日志組件對工具類的API進(jìn)行封裝,統(tǒng)一管理應(yīng)用的調(diào)試信息輸出,使得開發(fā)者在應(yīng)用開發(fā)的調(diào)試過程中更簡單、便捷地使用日志。另一方面,日志組件需要結(jié)合文件或數(shù)據(jù)庫存儲組件,實(shí)現(xiàn)關(guān)鍵日志的存儲,完成重要運(yùn)行事件的記錄,以備分析。
2.2.4云端一鍵備份與還原服務(wù)
移動(dòng)互聯(lián)網(wǎng)應(yīng)用中,用戶在使用應(yīng)用的過程中會生成個(gè)人數(shù)據(jù)。為了使用戶能夠更好地享受應(yīng)用服務(wù),在應(yīng)用個(gè)人數(shù)據(jù)存儲上,需要解決以下問題:個(gè)人用戶多終端數(shù)據(jù)同步,即當(dāng)用戶更換手機(jī)或同時(shí)使用多臺智能終端時(shí),終端之間的數(shù)據(jù)遷移應(yīng)當(dāng)是簡單易行的。當(dāng)用戶手機(jī)丟失或因?yàn)閼?yīng)用重置,丟失本地?cái)?shù)據(jù)存儲時(shí),能夠恢復(fù)最新版本的數(shù)據(jù)。云端一鍵備份與還原服務(wù)是解決上述問題的有效途徑。該服務(wù)通過整合“數(shù)據(jù)存儲”、“網(wǎng)絡(luò)交互”、“日志”三大組件能力,提供了用戶數(shù)據(jù)的備份和還原能力。實(shí)現(xiàn)該服務(wù)的思路是采用配置的方式對需要備份數(shù)據(jù)進(jìn)行聲明,根據(jù)配置生成網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù),接收到數(shù)據(jù)后,經(jīng)過解析,提取數(shù)據(jù),存入數(shù)據(jù)庫。備份與還原在流程和原理上是一致的,流程圖如圖2所示。在使用該流程進(jìn)行數(shù)據(jù)維護(hù)時(shí),備份與還原的區(qū)別在于,備份時(shí)數(shù)據(jù)源是客戶端,還原時(shí)數(shù)據(jù)源是服務(wù)器端。
2.2.5UI框架
2.2.5.1基于Tab的UI模板
通過對當(dāng)前熱門應(yīng)用客戶端的觀察和分析,發(fā)現(xiàn)基于Tab的UI結(jié)構(gòu)是一種常見的UI結(jié)構(gòu)。當(dāng)應(yīng)用內(nèi)包含多個(gè)并列的子功能時(shí),基于Tab的UI結(jié)構(gòu)能夠很好解決手機(jī)終端有限屏幕上排列多項(xiàng)子功能的需求,并能夠快速地進(jìn)行切換。UI框架包含一個(gè)易用的、可擴(kuò)展的基于Tab的UI模板,對包含并列的子功能的應(yīng)用提供支持。
2.2.5.2UI控件庫
移動(dòng)互聯(lián)網(wǎng)應(yīng)用在完成與用戶的交互過程中,需要使用眾多能夠?qū)崟r(shí)顯示信息、允許用戶操控的UI控件。系統(tǒng)自帶控件在使用過程中,易用性不同,某些控件的調(diào)用方法較為繁瑣。UI控件庫的設(shè)計(jì)與實(shí)現(xiàn)目標(biāo)是讓用戶交互相關(guān)控件更易于使用,提高用戶交互方面的開發(fā)效率。
3結(jié)束語
基于Android的移動(dòng)互聯(lián)網(wǎng)應(yīng)用框架順應(yīng)了蓬勃發(fā)展的移動(dòng)互聯(lián)網(wǎng)需要高效開發(fā)應(yīng)用的趨勢,幫助企業(yè)和個(gè)人開發(fā)者減輕工作量,高效率地開發(fā)應(yīng)用,保證良好的軟件結(jié)構(gòu),并且提高了代碼的復(fù)用率。該應(yīng)用框架的設(shè)計(jì)與實(shí)現(xiàn)在移動(dòng)互聯(lián)網(wǎng)應(yīng)用開發(fā)方法的創(chuàng)新上具有重要的科研價(jià)值,在實(shí)際的產(chǎn)業(yè)開發(fā)過程中,具有廣闊的應(yīng)用前景。