Email me: jollen # jollen.org

more: Jollen 的 Embedded Linux 教育訓練

« December 2009 | (回到Blog入口) | February 2010 »

January 2010 歸檔

January 1, 2010

二零一零新年快樂:新希望與期許!

新的一年,祝福大家心想事成。開放源碼(Open Source)與開放平臺(Open Devices)是相當有意思的二個主題,今年,二零一零年,希望可以認識更多志同道合的朋友;也祝福大家,技術進步、研究豐碩。

今年,需要投注更多心力到Android相關的技術研究工作,以及產品規劃。去年,確實是頗為有趣的一年,自已也投入了相當多時間在技術研究、廠商交流以及教育訓練工作上。七個月多的時間,不斷巡迴台北、上海、深圳、北京四大城市,在這些城市進行Android以及Embedded Linux的培訓工作,其間,也和許多技術人員,以及廠商有許多交流,甚致深入的合作。

這段過程中,令人感受最深的,便是「快速成長」四個大字。

「二零零九年,大陸總計賣出一千三百萬輛台汽車。」有一天在前往北京首都國際機場的出租車上,所聽到的一段新聞。大陸目前約有一百家汽車廠,一般消費者,從下訂到取車,可能需要長達三個月的時間。在一些主要城市,整條路上的汽車經銷商,甚致沒有一家有「現貨」可供銷售。

若以每年中國經濟成長率超越美國約5%來計算,中國的GDP在二零二零年,將超過美國。以每年8%來計算,到時生產總額也將再翻一番。今年,二零一零年,中國也要做好GDP超越日本的準備。不過,畢竟經濟這件事也不是做為技術工作者的我,能通盤了解的,除了平日讀讀新聞、看看發佈數據外,還是專注在技術本業上更實際一些,所以,在這裡分享一個技術工作上的看法,供大家參考指教。

有關BAE的應用,今年可能得到大幅度的份額增長。BAE的全名是Browser based Application Engine。這並非很新潮的技術,在另外二大手機作業系統:Windows Mobile與Symbian上,也都有這樣的應用。BAE其實不只是在手持裝置上,在Web Service或是個人電腦上,也都能看到它的踪跡。

重視開放平臺的BAE應用,把它加入產品設計與規劃的要項,是過去我給一家廠商提出的建議。過去,Android Market是個棘手問題,但現在開始,情況會有所改變。這是獨立應用軟體開發商或獨立品牌的好機會。Android Market的發展看起來將有很大的突破; 目前,在我所參與的一個技術工作上,已經將資源的分配由框架與底層的驅動程式,部份轉換到應用(Applications)的開發與研究工作上,就是希望在應用開發上加重比重。

上述提到的BAE技術,因為改變應用軟體開發的模式,也要多加的重視。

去年十二月,在教育部嵌入式軟體聯盟的一場開放手機研討會上,我邀請了北京的eoeAndroid社群做了一次遠端視訊連線,為現場同學做了一些Android方面的介紹。「社群是開放平臺的靈魂。」因為Android技術,出現了許多技術社群,「熱情」是他們的共通點。從eoeAndrod的談話中,可以感受到這點,以及技術研究的精神「自身投入、明確務實」。台灣的0xlab也是一個典範,我們看見了追求技術卓越的熱情與貢獻,還有務實的精神。

因為Android的出現,eoeAndroid團隊一些人辭去他們原本的工作,一起為建立社群而努力。在周遭所認識的朋友裡,他們並不是唯一有這種堅定決心的工作者。 回顧過去的工作,深刻感受到不同城市間的工作文化、技術發展重點或是想法,都有很不一樣的特色;技術研究是個有趣的工作,給自已的期許是,當一個稱職的執行者,努力並有效率地完成專案。

January 2, 2010

Android 的 HAL 技術, #8: 實作 HAL Stub

承日記「Android 的 HAL 技術, #6: 小結 HAL stub 實作步驟」與「Android 的 HAL 技術, #7: 取得 Proxy Object」。在了解基本的觀念,以及架構上的設計後,接著就可以開始實作 HAL Stub 了。以下是 LED Stub 的實作範例,將程式碼儲存為 led.c:

static struct hw_module_methods_t led_module_methods = {
    open: led_device_open
};
 
const struct led_module_t HAL_MODULE_INFO_SYM = {
    common: {
        tag: HARDWARE_MODULE_TAG,
        version_major: 1,
        version_minor: 0,
        id: LED_HARDWARE_MODULE_ID,
        name: "Simple LED module",
        author: "The Mokoid Open Source Project",
        methods: &led_module_methods,
    }
 
    /* supporting APIs go here */
};

這段程式碼實作了圖1的設計, led_module_t 是 Stub 的主體結構(或稱為主類別),其符號名稱須取名為 HAL_MODULE_INFO_SYM,不可更改。任何的 Stub 主類別名稱都須命名為 HAL_MODULE_INFO_SYM。


圖1:LED Stub的設計(OOD)

幾個重要的欄位如下:

  • tag:須指定為 HARDWARE_MODULE_TAG
  • id:指定為 HAL Stub 的 module ID,我們的範例為”LED”
  • methods:struct hw_module_methods_t,為 HAL 所定義的「method」
  • struct hw_module_methods_t 是由 HAL 定義的標準介面,目前的 AOSP(Android Open Source Project)實作裡包含一個”open”介面

"Open" 是一個介面(interface),這意味著 HAL Stub 必須實作此介面,這個部份更是 HAL 的重點。

January 3, 2010

「Jollen 的 Android Framework in a Nutshell」演講

在堅果殼裡「In a nut shell」是一句英文片語,表示「簡單地說」的意思,與中文的「總而言之」有異曲同工之妙。如果上網搜尋,還可以找到這個片語來源:知名的長篇史詩「伊利亞德(Iliad)」曾被製作成體積迷你的手抄版本,正因為這個迷你的手抄版本小到能放進堅果殼裡(in a nut shell),因此這個片語就被引申為「簡單地說」之意。

知名的電腦書出版商O'reilly就出版了一系列的「in a nut shell」。這個系列書藉的特色正如其名「簡潔、不托泥帶水」,「一頁抵十頁、一部抵十部」或許能說明堅果殼書的特色;意思是說,別人100頁的篇幅,往往堅果殼只需要10頁就足矣。事實上,這應該不誇張,因為現在很多書就喜歡拉篇幅、撐厚度;有些「用來佔地盤」的系列著作就更不用提了。不過,我們不該是以這種評論的角度,把堅果殼書跟其它書拿來做比較;因為,要出版一本著作,也不是簡單的事情,任何書都有它的參考價值、還有作者日以夜繼的心血在裡面,這些心血都應該被尊重。這樣的形容,單純為了說明「堅果殼書」的特色。

「寫一本堅果殼書。」是我很早的目標,雖然過去也寫了許多書,但都還達不到我想像中的堅果殼書標準。希望有朝一日能達成這個目標。

前天的日記曾提到,去年利用了七個月的時間在做「巡迴」,不過這是平常工作之餘的活動;「研究」佔了我日常工作大約50%-60%的時間,透過課程巡迴與演講,除了可以分享部份研究心得外,也有助於調整後續的研究進度。在這七個月的時間裡,大致上都把Android Framework的內部設計以及原理做了研究以及整理,對於整體框架的實作,也準備了一份簡報,希望可以用「堅果殼」的精神,化繁為簡,用一種簡而易懂的方式,將複雜的Android框架設計放進堅果殼裡。

有鑑於此,今年希望規劃大約3場演講,親身說法,為大家說明堅果殼裡的內容。

如何把龐大的Android框架,簡單表達,儘量簡化而保持原始精神,確實是一大挑戰,但也很有趣。希望「Jollen 的 Android Framework in a Nutshell」演講,能成功挑戰這個難題。目前正在規劃第1場堅果殼演講,歡迎大家提供意見供活動小組參考。活動時間將另行公佈,期望與大家交流,並不吝指教。

January 25, 2010

首屆海峽Android技術及產業合作發展研討會:會後雜記

這個月15日到北京參加「首屆海峽Android技術及產業合作發展研討會」,結果正值北京二十年來難得一見的大寒,白天的氣溫最低還來到了-10度C,整個城市都可以看到白雪,到小商店還買到了「結冰礦泉水」,實在是一個有趣的經驗。

關於這次會議的實況,在研討會官網以及媒體上,都有很詳細的報導,所以這裡僅補上一點會議雜記。這次的會議,下午場分做三個track(產業、技術與人才培養),我在技術與人才場各有一個session。在技術場部份,針對「Android對手機的技術趨勢與機會」做了演說,人才培養場則是討論有關創業機會的議題。

「Browser-based」是Android手機的技術趨勢之一,這是大家都不陌生的名詞,整合cloud computing到手機上,這也是一個關鍵技術。技術分會場中,我特別舉JIL的Mobile Widget技術做實例,介紹了這個技術帶來的優點,以及BAE將如何創造一個新的手機應用開發模式。

這次會議,根據估計,與會人數大約有500人。在會議的前幾天,正逢沸沸洋洋的Google事件,與一些朋友聊天時,不免談論到這個話題;不過,大家普遍認為這個事件並不影嚮Android的技術推展。以會議的討論氣氛來看,影響確實不大。

android-beijing.jpg

在「人才培養」分會場的部份,來自中正大學羅習五老師實驗室的「現場成果展」吸引不少人的目光,特別是「螢光棒」的創意應用,連媒體都特別來報導了。可見,「創意」是Android應用開發不能缺少的一個要素。

OPhone SDN 徵文「JIL Mobile Widget: 我的第一堂课」

去年 [OPhone SDN] 舉辦了一個徵文活動,因為對 BAE 技術的高度興趣以及好感,特別撰文,以另外一種角度來表達 JIL Mobile Widget 技術的定位,希望以深入淺出方式,將這個實用的好技術介紹給大家。稿件有幸被接受,請大家不吝指教 [JIL Mobile Widget: 我的第一堂课]。BAE 與 JIL Mobile Widget 的關係,在文末也做了簡單說明。

January 26, 2010

「Jollen 的 Android Framework in a Nutshell 演講」講題規劃完畢

從去年就開始構思的「Jollen 的 Android Framework in a Nutshell」演講,終於在上週六正式完成講題規劃了。初版講稿也開始進入檢查階段,第一場演講預估在二月底或三月初舉行,詳細的時間與地點,稍後將發佈於演講活動官網 [Jollen's Android Framework in a Nutshell 演講]。

「In a Nutshell」是本演講的核心理念,也是規劃講稿時所依循的精神;關於堅果殼精神,可參考先前日記 [「Jollen 的 Android Framework in a Nutshell」演講] 的說明。

講題的規劃將以一個實例「揭開」Android 框架的黑盒子、將 Android 結構做展開的動作,並分別介紹每個層面的技術重點;希望藉由這個精心規劃的演講活動,能幫助對 Android 框架與系統底層有興趣的朋友,有效率地掌握技術重點。

關於 January 2010

此頁面包含了在January 2010發表於Jollen's Blog的所有日記,它們從老到新列出。

前一個存檔 December 2009

後一個存檔 February 2010

更多信息可在 主索引 頁和 歸檔 頁看到。

Top | 授權條款 | Jollen's Forum: Blog 評論、討論與搜尋
Copyright(c) 2006 www.jollen.org