就我個人來說,我發現學習 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 的團隊應該可以開發出一套更乾淨的機制。
希望可以早一點看到這天的到來。
沒有留言:
張貼留言