999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Android系統環境下軟件設計模式的研究

2013-04-12 00:00:00張晶王國明許斌龍
現代電子技術 2013年20期

摘 要: 針對以往設計模式的特點,在面向對象基礎上對現有的設計模式進行分析,制定出一套能夠應用于Android系統環境下的自定義設計模式,并且用自己設計的一款單詞軟件來驗證其效率,實現了代碼復用性高,程序設計簡潔的目的。結果表明,應用合適的設計模式可以使得Android系統下的軟件設計過程變得更為簡便,功能更為強大。

關鍵詞: 設計模式; 面向對象方法; Android; 單詞軟件

中圖分類號: TN919?34 文獻標識碼: A 文章編號: 1004?373X(2013)20?0051?03

0 引 言

設計模式是解決軟件設計知識和設計方案復用的技術手段,它是在一定條件下對如何組合類之間的關系進行描述的一種解決方案。其誕生的意義在于將復雜的程序設計過程變得簡單清晰,提高代碼復用,并制定出相應的規范標準供后來人使用。自從E.Gamma 等人提出了設計模式的概念[1],設計模式作為解決設計問題一種標準型規范,得到了廣大開軟件研究開發人員的重視和關注,并且在廣闊的領域得到了發展和應用[2]。隨著時間推移,新的設計模式的提出也越來越多,例如F.Bushmann、M.Kircher 等都在之前的基礎上提出了各自的設計模式,并且被相應的推廣和應用[3]。設計模式的應用也被越來越多的人開發和研究。

Android是基于Linux內核的開源性嵌入式系統,主要應用于手機或者平板電腦等移動設備。是由Google在2005年收購并注資,隨后組織開放聯盟對性能進行改良,采用多任務處理,進而擴展到各個移動終端的使用上,該平臺由操作系統、中間件、用戶界面和應用軟件組成,Android平臺存在多種類型的應用程序[4?5]。而對于開發者而言,設計出有觀賞性且實用的軟件則是其基本要求。在這其中涉及到很多的制約因素,比如手機本身硬件的強大與否,屏幕尺寸所帶來的觀感,以及軟件在運行過程中所占用的RAM空間等。這就需要開發者在現有條件基礎上開發時時刻考慮其軟件設計模式的高效性,以最簡潔的方式來實現強大的功能,巧妙的設計軟件結構,來完成設計的需要。

1 設計模式概述

設計模式根據目的來分類,可分為3類:創建型、結構型和行為型。創建型模式是針對對象的創建過程,結構型模式對應對象或者類之間的關系,行為型模式則根據類或者對象之間的關系進行不同的協作和分工。設計模式為開發者提供了可以借鑒的經驗,上述模式都是已經成型并且應用于軟件設計的經典解決方案,可以很好的提高代碼復用性,提高開發者的工作效率[6]。

1.1 創建型

軟件的設計就是開發者用類和對象組建一個系統的過程,這個系統是面向對象的。開始設計軟件之前,開發者會需要處理很多的開發組件,例如下拉列表、單選按鈕、多選按鈕、菜單等。第一步是將這些抽象概念具體化,也就是是實例化對象,才能進行下一步的工作,創建型模式的具體工作可以說就是對象化。一般的創建型模式以下面的幾個為代表:抽象工廠模式(Abstract Factory)、工廠方法模式(Factory Method) 、生成器模式(Builder)、單件模式(Singleton) 、原型模式(Prototype)等[7?8]。

1.2 結構型

組件間的組合是在其設定完成后需要做的事情。結構型模式就是將實例化的類或者對象組合拼接在一起,會利用繼承機制來完成。這一模式通常會應用于多個單獨類庫的組合。結構型模式可以做如下分類:適配器模式(Adapter)、裝飾模式(Decorator)、組成模式(Composite)、外觀模式(Fa?ade)、享員模式(Flyweight)、橋接模式(Bridge)、代理模式(Proxy) 等[7?8]。

1.3 行為型

在完成了實例化以及組合的具體行為之后,就需要對對象進行操作了。行為型模式的主要任務是通過算法對對象之間進行不同的調配,同樣在類中間使用繼承的方式。常見的行為模式有: 策略模式(Strategy)、職責鏈模式(Chain of Responsibility)、解釋器模式(Interpreter)、命令模式(Command) 、迭代模式(Iterator)、觀察者模式(Observer)、訪問者(Visitor)等,以及相對更為復雜的(如視圖/模型/控制器模式)等[7?8]。

2 Android系統概述

2.1 Android系統架構

Android系統是基于Linux去實現的,架構采用的是分層結構,一共分為4個層,從高層到低層分別是Application,Application Framework,Libraries和Linux Kernel[9]。

Android在發布的時候自帶了許多系統應用,這些應用包括某些客戶端,SMS短信,瀏覽器,日歷,地圖,通訊錄等。這些自帶的應用程序都是用Java編寫的,幾乎所有Android系統的手機都包括這些基本的應用程序。因為系統本身是基于Linux內核,所有系統自帶軟件的卸載都需要root權限,類似于Linux的root用戶命令。

圖1可以看到,最上層是應用程序層,用Java語言操作,下一層則是應用框架層,包含各大系統組件,應用程序框架是Android開發的基礎,提供各種API供開發者使用[10]。再下層是本地接口層 ,包含核心類庫。最底層是修改過的Linux 系統,提供了與設備硬件交互的相關接口。

開發者只需要在最上層用Java語言設計自己的軟件,調用相應接口就可以實現自己想要的功能。

2.2 Android安全機制

Android操作系統的權限都是分立的。由于權限不統一管理,每個應用都以惟一的能夠被系統識別的ID來運行,系統的各部分也都有其獨立的識別方式。Linux的特點就是將應用之間、應用與系統之間隔離開[11]。在應用開發時,開發者如果需要操作某些功能或者獲取系統服務,比如要獲取網絡下載權限或者讀寫SD卡中的文件,則需要在manifest.xml中填寫相應的權限代碼。

3 設計模式在Android系統下的應用

3.1 Android自定義設計模式

模式的選擇建立在需求和設計均需形式化描述的基礎上,而目前現有的固定成型的設計模式對于Android開發有一定的局限性,受框架的影響,很多原先的模式并不能很好的運用于Android上,所以就需要開發者靈活掌握設計思路,進而開發出屬于自己的設計模式以便于將來使用,并且減少工作量,提高代碼的復用性以及軟件的靈活性[12]。模式的開發和運用對于每個開發者而言都是必不可少的事情,下面筆者將以一款單詞軟件來說明設計模式對于軟件設計的重要作用。

3.2 兩種設計模式對比

(1)靜態模式

靜態模式如圖2所示。

(2)動態模式

動態模式如圖3所示。

(3)對比結果

可以很清楚的看到,前一種設計模式是一種樹狀的結構,設計思路很直觀,不過卻是一個大量的工程,因為在Android里面每一個UI都對應一個類,這樣一來可能需要上百個類才能實現其功能。而第二種模式采用的是類對應條目、內容根據之前的限定條件來填充的思路,一個框架對應一個類,所有數據都從SQLite中實時讀取,根據之前Intent傳遞過來的限定條件篩選內容進而顯示出不同的內容,只需4個UI類便可以實現原先需要上百個類實現的功能,思路變得簡單清晰。

3.3 程序運行結果

此軟件依據動態設計模式完成后可以很好的在虛擬機和真機上運行,效果如圖4所示。

4 結 語

本文通過對以往設計模式的研究,在分析以往模式的基礎上總結出自己的設計模式,并將其應用于Android系統下的實際開發之中。通過實例驗證表明,不同的設計模式帶來的工作量以及程序的簡潔程度都有很大區別,模式的優化程度決定了程序設計的高效性,模式的開發也將是可以被反復驗證,不斷完善的。隨著時間的推移,相信將來會有更多的適合不同領域的設計模式誕生,使程序的開發更為的簡潔和高效。

參考文獻

[1] GANNA E, HELM R, JOHNSON R, et al. Oesign pattems: elements of reusable object?oriented software [M]. Massachusetts: Addison Wesley Publishing Company Inc, 1995.

[2] BUSCHMANN Frank, MEUNIER Regine, ROHNERT Hans, et al. Pattern?oriented software architecture?a system of patterns [M]. Hoboken, USA: John Wiley Sons, 1996.

[3] KIRCHER Michael, JAIN Prashant. Pattern?oriented software architecture: patterns for resource management, volume 3 [M]. Hoboken, USA: John Wiley Sons, 2004.

[4] 汪永松.Android平臺開發之旅[M].北京:機械工業出版社, 2010.

[5] 李興華.Android開發實戰經典[M].北京:清華大學出版社, 2012.

[6] 饒一梅,王治寶,王秀峰.軟件設計模式及其在Java類庫中的典型實現[J].計算機工程與應用,2002,38(4):70?72.

[7] 王力生,鄭飛.設計模式在中國移動巡檢平臺中的應用[J].計算機應用,2006(6):3?5.

[8] 鄧玉龍.MVC設計模式在電子商務系統中的研究與應用[J].南京郵電學院學報,2002,22(2):90?92.

[9] 柯元旦.Android內核剖析[M].北京:電子工業出版社,2011.

[10] 曾健平,邵艷潔.Android 系統架構及應用程序開發研究[J].微計算機信息,2011,27(9):23?25.

[11] 鮑可進,彭釗.一種擴展的Android 應用權限管理模型[J].計算機工程,2012,38(18):17?19.

[12] 劉海巖,鎖志海.設計模式及其在軟件設計中的應用研究[J].西安交通大學學報,2005,35(10):32?35.

[13] 弋改珍,解爭龍,張琨.基于Android的火車時刻表查詢系統設計與實現[J].現代電子技術,2012,35(19):41?44.

[14] 張正政,林耀榮.基于Android系統的影音播放器開發[J].現代電子技術,2011,34(2):5?8.

[15] 沈文瑞,曾連蓀,楊臻.基于Android平臺的校園導覽軟件設計[J].電子設計工程,2012(9):26?28.

主站蜘蛛池模板: 99久久人妻精品免费二区| 国产情侣一区二区三区| 在线观看无码av免费不卡网站 | 国产精品免费久久久久影院无码| 中字无码精油按摩中出视频| 日韩欧美网址| 日韩第九页| 亚洲a级在线观看| 欧美色图久久| m男亚洲一区中文字幕| 欧美另类视频一区二区三区| 在线免费无码视频| 亚洲Av激情网五月天| 亚洲床戏一区| 无码中文AⅤ在线观看| 色噜噜综合网| 久久综合亚洲鲁鲁九月天| 亚洲婷婷在线视频| 国产精品香蕉| 国产亚洲一区二区三区在线| 国产在线一区二区视频| 热久久这里是精品6免费观看| 国产精品久久久久久久伊一| 91精品国产丝袜| 色网站在线视频| 国产成人高清精品免费5388| 在线中文字幕日韩| 国产亚洲视频中文字幕视频| 呦视频在线一区二区三区| 欧美日韩中文国产va另类| 久久人人爽人人爽人人片aV东京热| 国产精品白浆在线播放| 视频二区国产精品职场同事| 黄色网站不卡无码| 亚洲乱伦视频| 广东一级毛片| 国产日本欧美亚洲精品视| 九九香蕉视频| 国产精品综合久久久| 乱人伦视频中文字幕在线| a级毛片网| 中文字幕无码电影| 最新亚洲人成网站在线观看| 波多野结衣无码AV在线| 国产性猛交XXXX免费看| 日本午夜在线视频| 日本亚洲最大的色成网站www| 最近最新中文字幕免费的一页| 国产男女免费视频| 国产精品污视频| 亚洲AV无码一区二区三区牲色| 成人国内精品久久久久影院| a天堂视频| 国产在线精品人成导航| 嫩草在线视频| 影音先锋亚洲无码| 精品国产成人三级在线观看| 日韩东京热无码人妻| 超级碰免费视频91| 57pao国产成视频免费播放| 欧美天堂久久| 国产精品视频系列专区| 亚洲最黄视频| 国国产a国产片免费麻豆| 亚洲人成影视在线观看| 自偷自拍三级全三级视频| 国产成人一区在线播放| 91无码国产视频| 国产精品女在线观看| 久久黄色小视频| 国产福利小视频在线播放观看| 欧美成人免费一区在线播放| 十八禁美女裸体网站| 91精品专区| 狠狠干综合| 乱人伦视频中文字幕在线| 成人国产一区二区三区| 在线a网站| 丁香婷婷激情网| 日韩乱码免费一区二区三区| 手机精品福利在线观看| 成人毛片在线播放|