基于Android平臺的軟件開發(fā)若干關(guān)鍵技術(shù)分析
摘 要:
摘 要:隨著軟件開發(fā)技術(shù)與網(wǎng)絡(luò)通信技術(shù)的發(fā)展,計算機(jī)智能技術(shù)在智能手機(jī)越來越多,而且越來越廣泛。而軟件技術(shù)的開發(fā)正是Android手機(jī)獲得用戶的關(guān)鍵,也是Android技術(shù)廣泛應(yīng)用的基礎(chǔ)。通過對相關(guān)關(guān)鍵技術(shù)的研究,分析了Android系統(tǒng)的關(guān)鍵功能實現(xiàn)的技術(shù)與方法。
關(guān)鍵詞:
關(guān)鍵詞:Android平臺 軟件開發(fā) 關(guān)鍵技術(shù)
對于Android平臺的技術(shù)開發(fā)來說,都是基于Android Framework上層開發(fā)來實現(xiàn)的,在進(jìn)行程序開發(fā)時采用的編程語言為Java,因此,對Android應(yīng)用平臺開發(fā)開發(fā)的關(guān)鍵技術(shù)進(jìn)行分析是非常必要的。
1 應(yīng)用系統(tǒng)“記一筆”的關(guān)鍵技術(shù)
在Android應(yīng)用程序中,“記一筆”的“圖表”模塊是常用的技術(shù),它采用了條形圖和餅狀圖方式將系統(tǒng)的數(shù)據(jù)直接呈現(xiàn)給用戶,由于Android系統(tǒng)沒有相應(yīng)的圖表控件,就需要進(jìn)行自定義控件的方式進(jìn)行實現(xiàn),給用戶提供完美的體驗。
1.1 自定義控件開發(fā)技術(shù)
實現(xiàn)自定義的View技術(shù),在實質(zhì)上就是采用繼承View或者View Group及它們的子類的方法,在具體的設(shè)計過程中,是繼承View、ViewGroup,還是采用layout控件,這需要根據(jù)自定義控件的粒度情況而定,在定義視圖時往往需要采用onMeasure、onLayout、onDraw等控件來實現(xiàn)。
在控件實現(xiàn)的過程中,Measure()的遞歸過程是一個常用的過程,它的技術(shù)實現(xiàn)過程中是:measure()→onMeasiire()→child.measure(),實施的是一個逐漸調(diào)用的過程,并通過數(shù)據(jù)的承載,實現(xiàn)了整個measure樹結(jié)構(gòu)的遞歸調(diào)用。Layout過程的調(diào)用,需要根據(jù)各個子視圖的大小和布局參數(shù)來進(jìn)行數(shù)據(jù)的調(diào)用,在調(diào)用的過程中,需要按照樹結(jié)構(gòu)中的各個節(jié)點(diǎn)要求,將視圖放到合適的位置上,通常的Layout的調(diào)用過程中如下:layout()→onLayout()→child.layout()。這樣通過Draw()過程,對調(diào)用過程的背景View進(jìn)行繪制,并調(diào)用canvas.saveLayer控件,對Layer圖層的畫布進(jìn)行保存,實現(xiàn)數(shù)據(jù)的調(diào)用,這一調(diào)用過程為:draw()→dispatch Draw()→child.draw→dispatch Draw(),通過調(diào)用進(jìn)而實現(xiàn)了Android的圖表的調(diào)用過程。
1.2 Android中的數(shù)據(jù)存儲技術(shù)
數(shù)據(jù)存儲技術(shù)在Android系統(tǒng)中,是十分常見的數(shù)據(jù)處理與調(diào)用的過程,Android系統(tǒng)的數(shù)據(jù)存儲技術(shù)有:Shared Preference、內(nèi)部存儲(手機(jī)內(nèi)存)、外部數(shù)據(jù)存儲(內(nèi)存卡)、SQLite數(shù)據(jù)庫存儲、網(wǎng)絡(luò)存儲等數(shù)據(jù)存儲方式。在Android系統(tǒng)開發(fā)的過程中,最常用的數(shù)據(jù)存儲方式應(yīng)該是SQLite數(shù)據(jù)庫,使用比較方便,而且數(shù)據(jù)的創(chuàng)建也比較簡單,應(yīng)用中創(chuàng)建的SQLite數(shù)據(jù)庫比較容易實現(xiàn)數(shù)據(jù)庫的獨(dú)享,當(dāng)然,在數(shù)據(jù)庫開發(fā)的過程中,如果想允許其他應(yīng)用數(shù)據(jù)庫控制與訪問,則可以把它封裝到一個Content Provider中,實現(xiàn)數(shù)據(jù)處理的共享。
2 應(yīng)用系統(tǒng)“足跡”的技術(shù)
“足跡”是Android平臺上的一個LBS軟件,是實現(xiàn)Android手機(jī)智能化的重要途徑,它用于自動記錄用戶的出行足跡,對用戶的“足跡”數(shù)據(jù)能夠自動的記錄,這樣用戶就能夠很好的實現(xiàn)自己數(shù)據(jù)的分享。在Android系統(tǒng)中,“搜搜”“拍拍”“足跡管理”“我的資料”與“設(shè)置”是足跡要實現(xiàn)的主要技術(shù)。
2.1 多線程技術(shù)
多線程技術(shù)是Android系統(tǒng)常用的關(guān)鍵技術(shù)之一,在系統(tǒng)開發(fā)的過程中,Android官方推薦的一種方式是異步任務(wù)AsyncTask多線程技術(shù),這也是最常用的方式和關(guān)鍵的技術(shù),它封裝了工作線程與UI線程的交互細(xì)節(jié),實現(xiàn)了數(shù)據(jù)的自動化處理過程,它會自動把耗時的操作放在工作線程中執(zhí)行,提高Android系統(tǒng)處理數(shù)據(jù)的效益,然后將執(zhí)行結(jié)果傳給UI線程來更新UI的數(shù)據(jù),實現(xiàn)對Android數(shù)據(jù)的記錄。在多線程技術(shù)開發(fā)中,異步任務(wù)需要繼承AsyncTask抽象類,為Android系統(tǒng)的開發(fā)提供封裝了線程管理和與主線程交互的細(xì)節(jié),這樣就不需要對數(shù)據(jù)進(jìn)行特殊的處理,在AsyncTask的抽象類中,為Android系統(tǒng)提供了onPreExecute, onPostExecute, onProgressUpdate等幾種數(shù)據(jù)調(diào)用的方法,能夠?qū)崿F(xiàn)數(shù)據(jù)在多線程之間的復(fù)雜交互,,而不是簡單的對工作線程給UI線程的消息進(jìn)行更新。
2.2 地圖開發(fā)技術(shù)
地圖開發(fā)技術(shù)是保證Android系統(tǒng)進(jìn)行“足跡”確定的關(guān)鍵技術(shù),在Android的平臺中,系統(tǒng)專門提供了一個map.jar的文件包,主要用于基于Google Map的應(yīng)用“足跡”開發(fā),在文件包中主要提供MapActivity、MapView、MapController、Overlay 等幾個類,用戶對Android中的Google Map Api開發(fā)地圖進(jìn)行應(yīng)用,提高系統(tǒng)的開發(fā)效率。在進(jìn)行開發(fā)的過程中,需要采用正確的數(shù)據(jù)調(diào)用格式,如果一旦漏掉或者寫錯,就會在地圖中只顯示網(wǎng)格,影響系統(tǒng)的正常應(yīng)用。一是AndroidManifest類文件里uses-library和uses-permission 使用權(quán)限的管理與修改命令,二是必須在使用MapView控件時,需要將地圖API Key進(jìn)行調(diào)用,在具體開發(fā)的過程中,指定android:apiKey屬性就可以滿足要求。
2.3 “搜搜”功能技術(shù)分析
“搜搜”功能是Android“足跡”中的核心功能,通過“搜搜”功能能夠有效的實現(xiàn)Android手機(jī)的定位功能、地圖繪制等相關(guān)的功能。搜搜功能在設(shè)計時,首先應(yīng)該搜索出可視屏幕范圍內(nèi)的所有“足跡”,并以一個點(diǎn)來表示一個足跡,只要對點(diǎn)進(jìn)行點(diǎn)擊,就會出現(xiàn)相應(yīng)的功能內(nèi)容。在對Android系統(tǒng)的開發(fā)過程中,采用UI線程與搜索線程的交互來實現(xiàn)“搜搜”功能,在實現(xiàn)的過程中,為搜索線程關(guān)聯(lián)一個Looper進(jìn)行消息循環(huán),分析Looper的數(shù)據(jù),并創(chuàng)建一個searchHandler搜索線程,主要用與對UI線程發(fā)送的信息與數(shù)據(jù)msg_toj:hild_search_request消息進(jìn)行接收,并開始實施搜索請求,這時搜索線程會把消息放入Looper隊列中,在對信息進(jìn)行處理的過程中,可以有選擇性的發(fā)送搜索請求,在系統(tǒng)完成Looper隊列的信息搜索過程中,并創(chuàng)建一個mainHandler,來接收搜索線程系統(tǒng)發(fā)過來的MSG_TO_MAIN_SEARCH_RESPOND信息,完成一個UI線程即時信息的發(fā)送與處理,這樣就完成一個“搜搜”的過程。
3 結(jié)語
本文對基于Android平臺軟件的一些關(guān)鍵技術(shù)進(jìn)行了研究,對于Android手機(jī)一些關(guān)鍵技術(shù)的開發(fā)具有一定的指導(dǎo)作用,但是限于篇幅,文章僅僅對一些關(guān)鍵的技術(shù)進(jìn)行研究與分析,對更深層次的要求還沒有涉及,還需要進(jìn)一步的進(jìn)行探索與分析,方便對系統(tǒng)進(jìn)行應(yīng)用與研究。
參考文獻(xiàn):
[1]趙士田.基于 Android 平臺的運(yùn)動輔助軟件的設(shè)計與實現(xiàn)[J].山東大學(xué)學(xué)報,2012(11).
[2]胡銳.基于 Android 系統(tǒng)智能手機(jī)的游戲移植開發(fā)[J].華南理工大學(xué)學(xué)報,2013(6).
[3]邵艷潔.Android 操作系統(tǒng)移植及應(yīng)用研究[J].湖南大學(xué)學(xué)報:自然科學(xué)版),2011(12).
本文編號:14556
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/14556.html