列舉7個方面來說明Android操作系統(tǒng)
下面通過7個部分來說明下什么是Android操作系統(tǒng)?通過它的開源、苛刻的Activity、設備調試、應用程序永遠不會退出、開發(fā)人員協(xié)同、Java — 成也蕭何,敗也蕭何、Intents(目的、意圖)這7個方面進行學習。
Android的發(fā)展真可謂是一日千里,但是很多方面相對于iPhone、Windows Mobile還顯稚嫩,并且現(xiàn)在市場份額上依然大幅度落后于Symbian和iPhone等系統(tǒng)。未來的崛起道路依然崎嶇。Android現(xiàn)今也遇到許多的問題,各家營運商和設備制造商各自為戰(zhàn)的現(xiàn)象的將是Android系統(tǒng)發(fā)展最大的障礙。
唯有時刻保持創(chuàng)新和發(fā)展才能立于不敗之地。現(xiàn)如今Windows Mobile雖然一落千丈,但是隨著微軟向Google的擅長互聯(lián)網(wǎng)領域滲透。因此Windows Mobile在不久的將來將會有一場你死我活的廝殺。Android操作系統(tǒng)如何走的更遠,讓我們拭目以待。
1、開源
Google將其手機平臺的代碼全部開源,但這并不意味著任何人都可以下載和編譯一個新版本的手機固件,但確實意味著任何手機制造商都可以推出自己的Android設備。我也非常期待立即出現(xiàn)Android烤箱。
但更糟糕的是Google知道如何保護有價值的代碼,它的Map,Gmail和Store應用程序就不是開源的。當你在你的應用程序中使用這些應用時就會遇到法律問題,這只是抱怨的開始,因為現(xiàn)在很多人都打算購買Android驅動的設備,用的人越多,暴露的問題將會越來越多。
2、苛刻的Activity
通過Activity(行為),Android強制開發(fā)人員以更小的塊構建應用程序,例如,在他們的示例文本編輯器代碼中,他們有一個Activity負責從一個可編輯文件列表中進行挑選。另一個Activity負責真正編輯文件的內容,Android也鼓勵開發(fā)人員使用Intents在他們的Activity之間通信。
這種設計對手機軟件是件好事,但有一個號外:完全沒有人以這種方式工作。J2ME,iPhone,BREW和Blackberry都使用的是集中式應用程序對象概念(Blackberry/J2ME Midlet或Brew的IApplet)。
相比之下,Android逼你設計小型的,自給自足的mimi應用程序,這一決定導致了一些非常有趣的行為,例如,默認情況下,當用戶旋轉屏幕或推出鍵盤時,Android會結束當前的Activity然后又重建它。
最后,專業(yè)的移動開發(fā)人員只剩下兩個選擇:
第一、他們在其它平臺上使用Activity/Intent模型設計他們的軟件,以便輕松遷移到Android;
第二、實行黑客行為,將Android操作系統(tǒng)的行為改為其它平臺那樣。
3、設備調試
兩年前,要在手機設備上進行調試是非常艱難的,那時我不得不自己動手編寫J2ME日志系統(tǒng),通過提示聲音和日志進行跟蹤和監(jiān)控。Google現(xiàn)在提供了更好的工具來幫助我們,簡單到只需要按一下F11就可以了,不僅簡單易用,而且還是跨平臺的,在Mac,PC和Linux上都支持。
那為什么我要恨這個優(yōu)秀的工具呢?我恨它是因為它讓我40%的調試技能幾乎無用武之地了,接下來你就知道,Google將讓任何人都可以設計出移動應用程序的UI,不用別的,僅XML而已。
4、應用程序永遠不會退出
一旦一個應用程序在Android上啟動后,它就永遠不會退出,應用程序可以暫時退到后臺,但圖標永遠在正在運行的任務列表中,這個由核心架構引起的問題帶來了一些有趣的軟件bug,需要使用一些奇特的應用程序設計方法才能回避這些問題。
5、開發(fā)人員協(xié)同
在Android中,內存,處理器和電池都是公共資源,不幸的是,任何應用程序,即使是處于后臺的應用程序,都可以使用無限量地使用這些資源,這就是為什么Android手機的性能和電池壽命如此不穩(wěn)定的原因。
Google希望開發(fā)人員明智地使用前臺和后臺循環(huán),但只要一個開發(fā)人員不小心,就可能會造成本可支持一周時間的電池在不到一個小時就消耗完了,開發(fā)人員之間的協(xié)同工作從來未象現(xiàn)在這樣變得如此緊密。
6、Java — 成也蕭何,敗也蕭何
不得不承認,Java語言確實非常強大,之所以將其列在這里有兩個原因:第一它太大了,其次它很難優(yōu)化。作為一個程序員,它讓我感覺到好像在進行一場漫長的手術一樣,盡管它可以加速產品上市。
可以將我們從內存泄露和堆棧損壞中解脫出來,但它幾乎不能編寫一個反鋸齒字體庫,在合理的時間內渲染出來,雖然開發(fā)人員可以在C下使用其NDK開發(fā)自定義的庫,不過真要這么做,我們就不得不同時調試兩種語言了,真麻煩。
7、Intents(目的、意圖)
這是一個開發(fā)人員的第三大嚴重的語法噩夢,Android中的一個Intent是用于兩個Activities、服務或內容提供者之間通信的類,Intent是一個名詞,但也通常用作形容詞,但在任何時候都不要當作復數(shù)使用(對于所有Intent和目的都不能計數(shù)),在過去兩年中,我在使用拷貝編輯時很難交互,我每次使用Intent時,都感覺好像是小學時的語法老師,每當我濫用一個逗號時,她都會耐心地糾正。
【編輯推薦】