在這邊我們希望能整理許多在 RIA 與 Android 開發程式的經驗,希望對大家會有幫助。

2009年5月16日 星期六

學習 Android 的門檻

由於要翻譯與撰寫有關 Android的技術書籍,最近花不少時間在研究 Android的程式運作機制。也發現幾個有趣的現象。

就我個人來說,我發現學習 Android,如果想學到頗為得心應手的境界,還是要有些基礎,因為就Android來說, 基本上,其實Android是一個以訊息為基礎的開發平台,如果對分散式架構熟,像 CORBA、DOMC、SOAP的話,只要知道 android架構想要解決什麼問題,就可以比較快把之前累積的知識基礎,搬到 android 上面來用。

所以,若之前對分散式架構有研究的話,要瞭解 Android中Intent、Broadcast...等機制,是會比較快的。因為,在 Android中,一個Applicaition 就是一個Process 就會啟動一個 DVM虛擬機器,所以不同的 Application 若想做資料分享,傳遞訊息是最常見的機制之一。這個機制在分散式架構也都運用的很好。所以,Intent 是作為 Application 資料共享最常用的機制之一,當然還有 Acticity 也是透過 Intent 來做資料交換與傳遞。就好像,如何讓不同視窗畫面做資料傳遞,在 Android 的世界中,是以 Intent為基礎來實現的。

寫到這邊,又想到Flex也是有同樣的問題要解決。在Flex的 Mdoel 中,對於這個問題,是採用更簡潔先進的機制。這是由於Flex考慮到跟多媒體人機介面的結合,而且MXML也實做Dom Level 3 ,所以他背後的模型,配合XML DOM 的架構,在訊息的傳遞上又加入階層的觀念,而且實體事件是事件被觸發時就自動產生,並且依照被觸發事件的物件所在階層,開始依照階層跟順序做實體事件的傳遞。很自動化,這部份Flex真的處理得很棒。

說真的,寫習慣Flex的程式,看到 Android竟然要宣告一堆,才達到跟 Flex 一樣的目的,真的是有點傻眼。不過聽說,之前要在手機上開發UI,如果是用 C 寫,是更麻煩,所以 Android 已經進步很多了。在  Flex 的開發環境,還沒辦法 port 到 android 中去時,我能說什麼呢?

不過,Flex要移植到 Android的手機介面,我想做既有的介面元件適度調整是需要的,這一定還要一段時間。而且,存取硬體也不可能透過Flex來存取,所以將來Flex跟Android api 一起合作,是非常有可能的。我想應該可能透過 SQLite 或 Content Provider搭配Broadcast與 intent 來解決如何讓 Flex App 可以讀取 Android API 擷取硬體的資訊吧。或許 Adobe 跟 Google Android 的團隊應該可以開發出一套更乾淨的機制。

希望可以早一點看到這天的到來。

沒有留言:

追蹤者