淺談Android軟硬件巧妙整合的開發(fā)技巧
Android一詞的本義指“機(jī)器人”,同時(shí)也是Google于2007年11月5日宣布的基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號(hào)稱是首個(gè)為移動(dòng)終端打造的真正開放和完整的移動(dòng)軟件。目前,最新版本為Android 2.4 Gingerbread和Android 3.0 Honeycomb。
本文引用地址:http://2s4d.com/article/148295.htmAndroid是基于Linux內(nèi)核的操作系統(tǒng),是Google公司在2007年11月5日公布的手機(jī)操作系統(tǒng)。早期由原名為“Android”的公司開發(fā),谷歌在2005年收購“Android.Inc”后,繼續(xù)進(jìn)行對(duì)Android系統(tǒng)開發(fā)運(yùn)營,它采用了軟件堆層(software stack,又名軟件疊層)的架構(gòu),主要分為三部分。底層Linux內(nèi)核只提供基本功能,其他的應(yīng)用軟件則由各公司自行開發(fā),部分程序以Java編寫。2011年初數(shù)據(jù)顯示,僅正式上市兩年的操作系統(tǒng)Android已經(jīng)超越稱霸十年的塞班系統(tǒng),使之躍居全球最受歡迎的智能手機(jī)平臺(tái)?,F(xiàn)在,Android系統(tǒng)不但應(yīng)用于智能手機(jī),也在平板電腦市場(chǎng)急速擴(kuò)張。采用Android系統(tǒng)主要廠商包括臺(tái)灣的HTC,(第一臺(tái)谷歌的手機(jī)G1由HTC生產(chǎn)代工)美國摩托羅拉,SE等,另外還有中國大陸廠商如:華為、中興、聯(lián)想等。
Android以Java為編程語言,從接口到功能,都有層出不窮的變化,其中Activity等同于J2ME的MIDlet,一個(gè) Activity 類(class)負(fù)責(zé)創(chuàng)建視窗(window),一個(gè)活動(dòng)中的Activity就是在 foreground(前景)模式,背景運(yùn)行的程序叫做Service。兩者之間通過由ServiceConnection和AIDL連結(jié),達(dá)到復(fù)數(shù)程序同時(shí)運(yùn)行的效果。如果運(yùn)行中的 Activity 全部畫面被其他 Activity 取代時(shí),該 Activity 便被停止(stopped),甚至被系統(tǒng)清除(kill)。
View等同于J2ME的Displayable,程序人員可以通過 View 類與“XML layout”檔將UI放置在視窗上,Android 1.5的版本可以利用 View 打造出所謂的 Widgets,其實(shí)Widget只是View的一種,所以可以使用xml來設(shè)計(jì)layout,HTC的Android Hero手機(jī)即含有大量的widget。至于ViewGroup 是各種layout 的基礎(chǔ)抽象類(abstract class),ViewGroup之內(nèi)還可以有ViewGroup。View的構(gòu)造函數(shù)不需要再Activity中調(diào)用,但是Displayable的是必須的,在Activity 中,要通過findViewById()來從XML 中取得View,Android的View類的顯示很大程度上是從XML中讀取的。View 與事件(event)息息相關(guān),兩者之間通過Listener 結(jié)合在一起,每一個(gè)View都可以注冊(cè)一個(gè)event listener,例如:當(dāng)View要處理用戶觸碰(touch)的事件時(shí),就要向Android框架注冊(cè)View.OnClickListener。另外還有Image等同于J2ME的BitMap。
隨著科技的快速演進(jìn),現(xiàn)代人對(duì)移動(dòng)通信、無線上網(wǎng)與多媒體娛樂的需求更甚以往,所謂的智能手機(jī)(Smart Phone)便成了炙手可熱的個(gè)人消費(fèi)電子產(chǎn)品之一,從Apple不斷推出iPhone企圖顛覆消費(fèi)者對(duì)手機(jī)的想象、RIM推出主打商務(wù)功能的黑莓機(jī)、Google的Android系統(tǒng)讓眾家手機(jī)廠商爭(zhēng)食大餅,到微軟屢敗屢戰(zhàn)的從WinMo一路開發(fā)到WP7,智能手機(jī)的這塊戰(zhàn)場(chǎng)可說是打的如火如荼。然而在這些眾家競(jìng)爭(zhēng)者中,Android可說是目前行情看俏的一套操作系統(tǒng),以國際市調(diào)研究機(jī)構(gòu)Gartner最新出爐2010年第三季的調(diào)查為例,采用Android操作系統(tǒng)的智能手機(jī)在過去一年以來成長幅度最高,光是市占率便是前一年同期的七倍之多,銷售量更是達(dá)到14倍的成長,同時(shí)也一舉從市占率排名的第六名竄升到第二名。
*Gartner 2010 Q3 Worldwide Smartphone Sales
Android在過去一直扮演后起之秀的角色,切入智能手機(jī)的速度似乎慢了蘋果的iOS一步,但與Apple相同的是,它也成功的將其應(yīng)用從手機(jī)移植到了平板電腦(Tablet PC)上。Android開放源代碼(Open Source)的特性,能輕易地提高廠商對(duì)自家產(chǎn)品的接受度,更不用提背后Google的強(qiáng)力撐腰能帶來多大的經(jīng)濟(jì)效益。目前可見包括手機(jī)廠商HTC、摩托羅拉(Motorola)、三星(SAMSUNG),以及電腦大廠惠普(HP)與戴爾(Dell)等皆投向Android的懷抱,Android被廣泛應(yīng)用可說是勢(shì)在必行。
盡管Android系統(tǒng)的普及看似指日可待,但在實(shí)際的產(chǎn)品應(yīng)用上,也有其可能產(chǎn)生的問題風(fēng)險(xiǎn)。Android作為一個(gè)開放式的操作系統(tǒng),是Google提供廠商的操作系統(tǒng)參考架構(gòu)(reference design),廠商能有充足的發(fā)揮空間,以Android為基礎(chǔ)向上開發(fā)設(shè)計(jì)自家產(chǎn)品,但也因?yàn)檫@樣的開放性與自由性,讓廠商在軟硬件結(jié)合的這個(gè)環(huán)節(jié)必須下更大的功夫,像是如何挑選合適的硬件包括基頻處理器、通信芯片、觸控感應(yīng)芯片、天線與存儲(chǔ)器模組等,以及如何調(diào)整出最適當(dāng)?shù)能浖O(shè)定等,更重要的是如何將軟硬件整合,開發(fā)出差異化的產(chǎn)品。這中間所有的細(xì)節(jié)都會(huì)對(duì)產(chǎn)品最終樣貌產(chǎn)生莫大的影響,像是其功能的完整度、使用接口的設(shè)計(jì)、效能表現(xiàn)(例如觸控滑動(dòng)畫面、開啟程序所需時(shí)間)、品質(zhì)可靠度、甚至是后續(xù)的固件升級(jí)動(dòng)作等等。
一、解構(gòu)Android基本技術(shù)架構(gòu)
首先我們先來看到Android的基本技術(shù)架構(gòu),Android是以Linux為核心,并采用軟件堆迭(software stack)的架構(gòu)延伸發(fā)展的一套軟件平臺(tái)與操作系統(tǒng)。根據(jù)下圖可以看出,其基本架構(gòu)分為五層:
*Android Structure by Google
·Linux核心(Linux Kernel):以Linux開發(fā)提供最底層的核心系統(tǒng)服務(wù),包括安全性(Security)、存儲(chǔ)器管理(Memory Management)、進(jìn)程管理(Process Management)、網(wǎng)路堆迭(Network Stack)與驅(qū)動(dòng)程序模型(Driver Model)。
·Android執(zhí)行環(huán)境(Android Runtime):透過Core Libraries(核心函式庫)以及暫存器型態(tài)的Dalvik Virtual Machine(Dalvik虛擬機(jī)器)來執(zhí)行程序。
·系統(tǒng)函式庫(Library):使用C/C++函式庫的系統(tǒng)組件以供呼叫使用,開發(fā)者可透過上層的應(yīng)用程序框架來運(yùn)用這些功能,這也是主要Android設(shè)備的效能關(guān)鍵。
·應(yīng)用程序框架(Application Framework):被設(shè)計(jì)來簡(jiǎn)化組件的再運(yùn)用,開發(fā)者能完整存取使用與核心應(yīng)用程序(Core Application)相同的API,應(yīng)用程序可以發(fā)布功能并為其它應(yīng)用程序所使用(需受限于其安全性限制),開發(fā)者也可運(yùn)用同樣的機(jī)制來新增與置換組件。
評(píng)論