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