2010年8月26日 星期四

Android beyond the phone─兼論FJUCam2的下一步Android發展方向

自2008年Google推出Android 1.0版以來,其目標就是作為Mobile Phone的作業系統。經過2年後釋出的Android 2.2版(Froyo),2010年在美國(目前為全世界Smart Phone最大銷售量的國家)更已經成為Smart Phone第二大的OS平台(Canalys),以38%的佔有率超過iPhone的21%;其應用程式也快速成長中(Androlib)。預計在2010年10月會有Android 3.0(Gingerbread),其最重要的改變就是支援大螢幕的Mobile Device。

本文希望說明Android的觀念,並思考與我們FJUCam2的關連,最後則建議FJUCam2的Android平台可採用Open source project: Rowboat 。

我們的FJUCam2以OMAP3x為基礎,也可以移植Android。目前暫時先以Beagle board Rec C當作實驗板並已經輕易移植成功Android 1.6版。看來要移植Android 2.2版應該也不是難事。我們應該可以在FJUCam2的硬體完成後,開始著手移植新版的Android。

雖然我們自2009年底到2010年中發展X-Eye的過程中,暫時以Ubuntu與Angstrom的Linux為主,但仍不排除會採用Android,因為Android在與Google Cloud Computing的連結性方面,仍比其他Embedded Linux來的優越,因此要朝向Cloud Computing發展的過程中,採用Android是必要的方向。

但即便是Android 2.2仍還有很多改善的空間。近來一個重要的方向是開始朝向Beyond Smart Phone,例如:小筆電、Set-top Box, VoIP Phone, Google TV, Tablet(平板電腦)等。這些Beyond phone devices與phone devices的差別,就在於螢幕尺寸的大小。以Smart phone為例,目前約為4吋到6吋螢幕。但是小筆電與Tablet則為8吋到10吋螢幕,而Google TV則更可能到42吋螢幕。

由於螢幕變大,因此解析度需求也變高。一般Smart Phone解析度為320x240,最高可達800x480。但是在小筆電與Tablet而言,一般至少都是1024*768,而HD TV則可以到

但是,直到2010年5月發佈的Android 2.2(Froyo)(Android in Wiki),仍然只能支援最大800x480的解析度(Google作梗 Android平板電腦難產,工商時報,2010/8/22)。而Android Market的應用程式,許多則只有支援到320x240。不論是320x240或800x480,在10吋以上的螢幕看起來都有低品質的嚴重問題,因此限制了Android的在大螢幕行動裝置上的使用。


有一個參考連結:Android beyond the phone - A Progress Report by Mentor Graphics,即是在說明從Mobile Phone作業系統成為更大螢幕的行動裝置作業系統,需要修改Android的Linux Kernel, Dalvik VM,嵌入式版子的驅動程式/BSP(Board Support Package)、UI/Java Library等。

只是這是Mentor Graphics公司自行修改的Android,可能需要付費才能使用。但是Mentor Graphics在Google code提供一個Open Source Project: Rowboat,以TI OMAP 35x, AM37x等為主,提供其修改後的Android以在大螢幕裝置上高解析度的效果。

截至2010/8/26為止,Rowboat仍為1.0版,該版本是以Android 2.1(Eclair)與Linux Kernel 2.6.29為基礎,採用Apache License。除了為大螢幕裝置提供UI、Graphics與Multimedia的最佳化之外,也提供Dual-core的ARM與DSP之間的傳輸與運算機制:DSP Stack IntegrationOMX DSP system。此外,Rowboat更將Android的開發環境由Java為主修改為以C/C++為主,因此可以C/C++來開發OMAP 35x上面的Android C應用程式,此點對於影像辨識與電腦視覺而言,是非常重要的特點。

由於FJUCam的開發理念,是希望發展一套可自由研究Embedded Vision的嵌入式平台,該平台以ARM+DSP的Dual-core為硬體,以Linux/OpenCV為軟體,提供EVK作為Embedded Vision的軟體堆疊(Software Stack)程式庫(Library),並且以C/C+為主要的程式語言,因此Rowboat與FJUCam2的理念不謀而合。此外,電腦視覺的運算結果,常需要以大螢幕來顯示,因此Rowboat的開發方向,更符合FJUCam的想法。雖然有傳聞Google官方將於2010/10釋出的Android 3.0(Gingerbread)也會支援大螢幕裝置,但是對於Dual-core以及C/C++開發環境的支援性,仍遠遠不及Rowboat。

因此,我認為FJUCam2的下一步開發方向,是開始嘗試使用Rowboat。第一部是先將其安裝在Beagle board上面,並移植X-Eye與我們的Embedded/DSP程式到Rowboat上。若成功,則可以開始將整套軟體架構移植到我們的FJUCam上面。



本網誌相關文章 :

沒有留言:

張貼留言