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.

主站蜘蛛池模板: 久久久受www免费人成| 手机在线国产精品| 日本久久网站| YW尤物AV无码国产在线观看| 国产综合精品日本亚洲777| 欧美一区二区三区香蕉视| 2020亚洲精品无码| 重口调教一区二区视频| 亚洲女同一区二区| 亚洲国产日韩视频观看| 亚洲精品无码抽插日韩| 久久精品国产精品一区二区| 看国产毛片| 精品免费在线视频| 在线播放真实国产乱子伦| 日韩在线视频网站| 国产欧美在线视频免费| 国产欧美在线观看视频| 538国产在线| 亚洲第一精品福利| 日本91在线| 国产成人精品一区二区| 99在线国产| 国产Av无码精品色午夜| 狠狠操夜夜爽| 热re99久久精品国99热| 久久视精品| 国产精品女在线观看| 亚洲精品欧美日本中文字幕| 91福利在线看| 亚洲日韩在线满18点击进入| 亚洲成人高清无码| 亚洲日本一本dvd高清| 91福利一区二区三区| 久草热视频在线| 日韩中文无码av超清| 国产一区二区三区视频| 久久精品aⅴ无码中文字幕| 99久久精品视香蕉蕉| 中文字幕亚洲乱码熟女1区2区| 亚洲视频免| 国产成人91精品免费网址在线| 69av免费视频| 九九九国产| 夜夜拍夜夜爽| 久久毛片免费基地| 成人年鲁鲁在线观看视频| 精品综合久久久久久97超人该| 一级毛片在线免费视频| 伊人色天堂| 亚洲欧美另类专区| 人人澡人人爽欧美一区| 啪啪永久免费av| 夜夜操天天摸| 无码高潮喷水专区久久| 又爽又大又黄a级毛片在线视频 | 欧美国产在线一区| 无码精品福利一区二区三区| 婷婷色在线视频| 免费一级无码在线网站 | 色婷婷综合激情视频免费看 | 欧美精品黑人粗大| 国产精品分类视频分类一区| av大片在线无码免费| 中国一级特黄视频| 国内精品久久久久鸭| 九色在线视频导航91| 成人国产精品2021| 找国产毛片看| 国产精品30p| 久久久久无码精品| 亚洲AV无码乱码在线观看裸奔 | 国产区免费精品视频| 99热这里只有精品2| 免费看a级毛片| 色婷婷啪啪| 亚洲欧美日韩成人在线| 久久99热66这里只有精品一| 亚洲精品777| 欧美日韩第三页| 成年人福利视频| 大陆国产精品视频|