田興強
摘要:近幾年,智能手機發(fā)展迅猛,Android系統(tǒng)在市場份額中越來越高,這意味著Android系統(tǒng)擁有廣闊的市場,但并不意識著各大手機廠商對Android系統(tǒng)的依賴性就很高,只有更好的、更穩(wěn)定的系統(tǒng)軟件才能引起消費者的青睞,因此,各大軟件廠商必須對Android若干技術進入深入的研究,才能在智能手機領域占據(jù)更高的比率。該文主要分析Android自定義控件開發(fā)技術及應用程序的多線程技術。
關鍵詞:Android若干關鍵技術;應用系統(tǒng);研究及開發(fā)
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2015)31-0077-02
智能手機的快速普與其身的發(fā)展息息相關,如硬件技術的成熟、成本的降低以及計算對能力的智能化。當前,隨著無線網(wǎng)絡技術的發(fā)展與成熟,4G無線網(wǎng)絡的覆蓋面積逐漸擴大,智能手機作為無線網(wǎng)絡的終端設備,兩者相互依存、共同發(fā)展。智能手機在各項技術與無線網(wǎng)絡的雙向基礎之下得到巨大推力,它的出現(xiàn)順應社會發(fā)展的需求。根據(jù)2012至2013年谷歌公司公布對中國人民使用智能手機的調(diào)研數(shù)據(jù)顯示:智能手機在中國的使用率高達33%, 其中43%的隨身攜帶手機,54%專注于手機電視,64%用戶平均每天都需要通過智能手機上網(wǎng)。另外,根據(jù)CNNIC2013年9月的《中國移動互聯(lián)網(wǎng)發(fā)展狀況調(diào)查報告顯示》,在2012年12月至2013年5月,中國手機用戶高達3.67億,其中智能手機用戶高達1.98億,占手機總用戶的53.9%。從上述數(shù)據(jù)中可明確看出,智能才機已深入人們的日常生活,是人們生產(chǎn)、生活中的重要組成部分。
1 Android關鍵技術的分析研究
1.1 自定義控件開發(fā)技術
繼承view或view Group或它們的子類是實現(xiàn)自定義view的本質(zhì)。具體繼承的哪一控件要看具體需求或自定義的粒度。自定義視圖在實現(xiàn)過程要通過onMeasure、onLayout、onDraw等方法。
自定義控件可分為四種類型:其一,view自定義,widget的繪制需要繼承基類view,對一些控件類型可進行選擇性的定制,如事件響應、onMeasure視圖測量、onDraw繪制等。二,繼承button、textview、editText、ListView、Gellery、Spinner等現(xiàn)有控件widget,這種繼承方式較常見,Android技術研究者通常擴展某個widget的功能,在原有控件的基礎上新增部分新功能,對measure,draw不會做出太大的改變或改變較少,因此,技術研究者可在原有功能的基礎上免費繼承或?qū)Σ糠趾瘮?shù)重載。其三。全新layout布局,其中viewgroup,的方式較少,因Android幾種預制布局已涵蓋大部分布局。其四,繼承l(wèi)ayout,如Framelayout、[relativelayout、LinearLayout、]等。這些方式用于實現(xiàn)組合式控件,通常是多處控件放在layout中,因此,這種方式的繼承必然會在某個layout類,layout類型繼承必須通過組合控件的布局進行確定。
2 應用程序開發(fā)分析
2.1 多線程技術
以往java要實現(xiàn)多線程必須通過Thread,Runnable等,要實現(xiàn)Runnable接口,需要通過Runnable為參數(shù)構(gòu)建一個Thread對象,另外還可直接實現(xiàn)Thread子類,并重寫run,再構(gòu)建Thread對象,但對象構(gòu)建完成之后線程并不能啟動,需借助于hread.start函數(shù)方可啟動。但這兩種方式具有一定的缺陷,一是工作線程的交互細節(jié)與UI線程沒有完全封裝好,可能會導致工作線程耗時操作且在此過程中直接更新UI,此操作在Android不允許出現(xiàn),UI更新必須在Android的UI線程中完成。二是UI線程交互接口與工作線程交互接口有限,只有通過View.postDelayed(Runnable,long)、Activity.run OnUi Thread(Runnable)、View.post(Runnable)等函數(shù)進行交互,但在交互的過程中函數(shù)的使用會顯得力不從心。
在Android官方自行研究出一種異步任務的方式,這是一種較常見的方式,該方式對UI線程與工作線程有良好的封裝,若出現(xiàn)耗時操作會將此放大式作線程中執(zhí)行,UI線程根據(jù)工作線程的執(zhí)行結(jié)果更新UI。繼承Async Task抽象類是實現(xiàn)異步任務的基礎,抽象類將主線程交互與線程管理的細節(jié)進行封裝,只提供下列幾個回調(diào)方法:
[doInBackground,onPreExecute,onPostExecute,onProgressUpdate,onCancelledt],它五個函數(shù)的線程及函數(shù)的交互順序通過圖1所示。doInBackground會通過Async Task進入工作程序線程中執(zhí)行,另外4個函數(shù)會在UI線種程執(zhí)行。其中唯獨doInBackground是抽象的,其余4個不是。
圖1 Async Task實現(xiàn)工作線程與UI線程交互
2.2 線程消息處理的原理
當Android程序啟動時,Android系統(tǒng)會為該啟動的程序創(chuàng)建一個main線程,主要是對activity、broadcast receiver等頂層應用組件的管理或處理UI相關事件,比如手機用戶的按鍵、屏幕繪圖、接觸屏幕等事件。Android作為單線程模型,組件通過運行在在main線程中,因此,程序在下載文件、網(wǎng)絡抓圖、數(shù)據(jù)庫操作會因耗時操作而使UI線程發(fā)生阻塞,并出現(xiàn)application not response程序無響應,因此,出現(xiàn)耗時的操作就必須通過多線程處理。在Android單線程模型中具有兩條規(guī)則:其一,UI線程必須保持通暢,其二,UI線程外的UI操作不能使用UI工具進行。前者規(guī)定將耗時操作不能在本工作線程內(nèi)進行,只有將其放入另外的工作線程,后者規(guī)定是UI操作不能在工作線程內(nèi)進行,只有將其放入UI線程內(nèi)進行。這兩點規(guī)定是Android多線程編寫必須避免的操作。
3 結(jié)束語
隨著智能手機的快速發(fā)展,人們對智能手機的消費越來越多。智能手機為人民提供了很大的便利性,人們通過智能手機可以平板電腦一樣操作程序,如下載音樂、電影、網(wǎng)頁沖浪、WIFI功能以及手機地圖等。智能手機的發(fā)展為硬件設備以及軟件設備帶來廣闊的發(fā)展空間,其中Android是最為典型的手機系統(tǒng)軟件,其系統(tǒng)強大的開放性、用戶體驗及可移植性,獲得廣大用戶的認可,并引領在智能手機領域中。本文主要分析自定義控件開發(fā)技術與多線程技術,在Android技術的開發(fā)中,Android具有更多的技術與應用程序,需要更多的軟件開發(fā)商進行仔細的開發(fā)與研究。本文只列舉了少個技術并進行分析。Android技術會越來越多的應用在智能手機領域中,它的市場前景與用戶占有率會越來越高,它的技術會越來越成熟。
參考文獻:
[1] 鄒麗麗. Android若干關鍵技術研究與應用系統(tǒng)開發(fā)[D]. 杭州: 浙江大學, 2013.
[2] 張瑞卿. 基于Android手機客戶端的中央空調(diào)遠程數(shù)據(jù)監(jiān)控系統(tǒng)研究[D]. 廈門: 廈門大學,2014.
[3] 安曉飛. 一種基于Android的移動GIS技術實現(xiàn)與應用研究[D]. 上海: 華東師范大學, 2013.
[4] 蔣清紅. 基于Android平臺的快遞派發(fā)最優(yōu)路線引導系統(tǒng)的設計與實現(xiàn)[D]. 桂林: 廣西師范大學,2014.
[5] 闕斌生. 面向Android應用程序行為的安全監(jiān)控系統(tǒng)設計與實現(xiàn)[D]. 北京; 北京郵電大學, 2014.
[6] 蘇銘君. 基于ARM11的Android系統(tǒng)移植及其溫度傳感器程序設計[D]. 沈陽: 沈陽工業(yè)大學, 2013.
[7] 李錚山. 基于Android平臺的應用程序安全監(jiān)控與評估系統(tǒng)的設計與實現(xiàn)[D]. 北京: 北京郵電大學, 2013.