分类: LINUX
2009-05-11 11:43:09
surface manager 可以準備一塊 surface,把 surface 的 fd (一塊 ashmem 記憶體) 傳給一個 app,讓 app 可以在上面作畫。有了這層理解,我們對 android 可以有更自由的發揮,例如,可以不改一行 cairo 的程式碼,就利用 cairo 與 c++ 寫出一個會動的時鐘而 Surface manager 顧名思義,就是管理邏輯上眾多的 surface,其底層對應於 OpenGL|ES 的實做。透過 surface 的處理,我們可讓像 這樣原生 (native) 的 C 語言程式,透過同樣在 GNU/Linux 上原生的 Cairo 函式庫,無痛的顯示處理。這實在很吸引人,畢竟若能在 Android 平台充分重用 GNU/Linux 既有的軟體功能,會是多麼有趣的事。且讓我們思考是否能在 Android 上撰寫 C 語言的 OpenGL/ES 應用程式。
$ . build/envsetup.sh參考的螢幕顯示如下:
$ cd angeles-test/
$ mm
make: Entering directory `/home/jserv/Myth/mydroid'
target arm C: angeles-test <= /home/jserv/Myth/mydroid/angeles-test/demo.c
...