jollen.org

Embedded Linux R&D

Jollen 網路學院 2011 !!

Embedded Linux 與 Android 技術分享與研究網站。

這是一個 Jollen 的分享平臺,這裡有一些 embedded Linux、Linux device driver 與 Linux kernel 的教學文件,也有一些個人想法的分享,都在我的 Blog 裡。

Jollen 的 Linux training 課程領域:Linux kernel、Linux device driver、cross toolchains、root filesystem build-up、ARM9/PowerPC hardware bring-up (U-Boot)。

Jollen's BlogEmbedded Linux/Android 教育訓練

January 19, 2012: HTML5在手持裝置將開始爆發式成長

文/Jollen Chen(原文刊載於 CTimes零組件雜誌2012年2月號) HTML5標準將開始大舉進入行動裝置市場,這是今年的手機技術重頭戲。撰寫手機App現在有二種選擇了。第一種做法是典型的做法,也就是Native App的開發方式,採用Java或C程式語言撰寫App,在編譯後安裝至手機運行。這種做法的主要缺點是,不跨平臺,也就是,針對Android手機、iPhone機等,都必須各自發展一份程式碼。 第二種做法就是HTML5的做法,採用HTML5標準開發App,有點像是在設計網頁,或是撰寫Web應用程式。可以想像,以後只要把網頁或Web應用程式封裝成App後,就能直接安裝至手機運行。這種做法解決了Native App不能跨平臺的缺點。 我們可以這樣解釋,不管使用什麼作業系統或瀏覽器,都可以瀏覽網頁,所以網頁與Web應用程式本身,都是跨平臺的。同樣地,不管你是使用什麼手機,也不管手機使用的是什麼作業系統,都可以運行同一份HTML5的手機App。 HTML5將要在手持裝置域,呈現大爆發式的成長;因此,有三項關鍵技術,不可不知。 第一、使用HTML5+CSS+JavaScript撰寫Web應用。HTML5是網頁標籤語言的標準,當然,單單使用HTML5並不能開發應用程式,必須搭配CSS與JavaScript來使用。因此,HTML5+CSS+JavaScript就是「HTML5 App」的基礎建設。有些網頁上面有很棒的特效,例如:轉場效果,這些都可以透過JavaScript來完成。 另外,jQuery也是不可或缺的技術。jQuery已經相當的有名,就不必再多說了。直接撰寫JavaScript可能有時很麻煩,這時可以使用jQuery以及眾多的jQuery plugins來完成。 第二、JavaScript引擎的成熟度是關鍵。要在手機上運行HTML5的App,因為將會使用到許多JavaScript程式碼,所以JavaScript的引擎成熟度,以及它的效能是主要關鍵。安裝在手持裝置上的JavaScript 引擎,將成為手持裝置的重要技術。 Android系統早期使用的 JavaScript 引擎稱為 JavaScriptCore (JSC),JSC 包含在 webkit 中。因為一些原因,Google 也決定開發自已的 JavaScript 引擎,稱之為 V8。技術上,新一代的 V8 引擎效能比 JSC 引擎更好。最新的 Ice Cream Sandwich 已經全面採用 V8 引擎了。V8 引擎的編譯基礎技術稱為 Crankshaft,這項技術可以很有效地改善JavaScript應用程式的效能。 第三、PhoneGap潛力驚人。目前,已經有非常多的App開發者,使用知名的開放源碼專案...(more)

January 17, 2012: [教育訓練紀錄] Android 4.0 移植與框架課程:會後小記與學習建議

上週三 (1/11) 舉辦的「Ice Cream Sandwich (Android 4.0) 移植與框架」課程,參與情況相當踴躍,覺得非常的感動。所以當然也要使出渾身解數,回報大家的支持。這次的課程有一個比較特別的地方,就是在一些移植工作上,筆者特別將 Android 4.0 的移植工作與 Android 2.3 做比較。 由於 Android 4.0 移植,可以基於 Android 2.3 甚致 Android 3.0 來進行,所以並不需要「從零開始」。基於過去的 Android 移植經驗,可以完成大約 80% 左右的 Android 4.0 移植工作。從學習的角度來看,因為 2.3 與 4.0 的移植技術很許多相同的地方,例如:Product tree 的製作完全相同,因此實際了解 2.3 與 4.0...(more)

January 1, 2012: 現今軟體開發的一個重要議題:開源授權與私有授權的混用

文/Jollen Chen(原文刊載於零組件雜誌2012年1月號) 軟體取代硬體成為主流價值 觸控手機與平板電腦的成功,正式宣告軟體與網路時代的來臨,這表示硬體獲利模式時代的結束,以硬體為主的商業模式,成為上一個世代的故事了。軟體是產品開發的主角,這已經是大家所公認的主流價值。 因此,可以看到一個事實,台灣有許多硬體公司,已經將軟體列為重點項目,除了利用軟體提升硬體的價值外,也提供軟體服務的新商業模式。 軟體取代硬體,成為主流價值的時代,有更多非技術面議題需要探討。除了專利問題外,在軟體開發的過程中,還有一個幾乎被遺忘的重要議題,在這裡與大家分享。 一個非技術面議題 現今市場上流通的產品,有很高的比例都是採取開放平臺與開源軟體。我們都知道,軟體太重要了,所以企業開始大量投入軟體研發。但與其說是「軟體研發」,不如說是「軟體工程」;因為,這些軟體有相當高的比例都是開放平臺或開放源碼,意思是,絕大多數,甚致是全部的軟體,都是取之於他人(透過網路),而非自行「研究」與「開發」,所以事實是,我們都是在他人的基礎之上做工(工程)。 也就是說,現今企業「從零開始」開發真正私有程式碼的比例變得相當低。從產品的角度來看,可能有99%的程式碼都是外來,例如,使用Google提供的Android程式碼;又如,網路上數以萬計的開放原始碼計畫 (Open source software)。可能只有1%或更低的比率,是私有的程式碼。 因此,我們將產品上的程式碼分為「公眾財」與「私有財」二大類。開放源碼採用的 GPL 或 Apache 是屬於一種公眾財概念的授權 (License),無論是取得、散佈、重製或修改等,都要遵守授權規劃。例如:Linux 核心的修改必須遵守 GPL (Version 2) 的授權聲明,確實公開原始程式碼。過去一些企業經常採用「Delay Open」,即產品發佈後,儘量托延公開程式碼的時間,但 [這個做法可能仍有一些疑慮]。 透過一些「軟體架構設計」的方式,可以讓企業在公眾財的程式碼裡,加入「私有財」的程式碼。私有財的程式碼,完全由開發商自行撰寫授權條款,即授權方式是自行決定,而不是採用公眾財授權。例如,Android 的 HAL 架構,便具備這樣的空間。架構設計,有時並不只在解決技術問題,有些也在解決一些關鍵的非技術問題。 從以上的說明可以發現,開源軟體的公眾財授權,以及企業為了保護智慧財產權必須採取的私有財授權,以及二者的混合,必須有一定的架構設計,才不致於面臨法律問題,這是台灣業者過去這一年來,普遍忽視的議題。從現況來看,筆者為大陸企業提供這方面建議與咨詢服務已經有一段時間了,台灣業者在這個議題上,仍需加緊腳步。 Happy New Year 2012 !...(more)

December 31, 2011: 硬體廠的軟體經營策略:建立軟體伙伴關係

文/Jollen Chen(原文刊載於零組件雜誌2011年12月號) 現在已經是軟體的時代了,有一個很有趣的現象在發生,部份軟體公司,「想連硬體設計都一起做」;許多硬體公司,積極想在軟體層面有所突破。從技術上的做法來看,軟體整合是硬體廠尋求突破很好的方向,但技術性太高。因此,若以軟硬結合取代軟硬整合,也就是硬體廠結合軟體公司,成為伙伴關係,或許是另一個不錯方向。 軟硬整合的難度有多高?Steve Jobs打從創立蘋果之初,就決心走軟硬整合的路,今天許多偉大的產品,雖然並不光靠「軟硬整合」技術取勝,但單就技術面來看,這肯定是一條「非常漫長的道路」。因此,硬體廠與軟體公司結合,成為策略合作伙伴,將是比較聰明又有效率的選擇。另外一個原因是,軟硬整合做得好,長期來看,應該要往消費性產品公司的願景邁進。 這半年來,為許多企業進行訓練工作時,可以感受到「決心改變」的氣氛;最特別的是,過去一些被認為是純硬體廠的企業,正努力地尋找好的「軟體策略」;因此,在這裡提出一些個人觀察與想法。 第一、軟硬結合。技術研發上,硬體廠透過軟體公司的協助,可以為硬體建立更多價值,並且也能在新商業模式的建立上有所突破。因此,與軟體公司或是軟體團隊,建立伙伴關係,並且學習新的軟體研發管理模式,是重要的功課。建立與軟體公司的伙伴關係,並且成功打造突破性產品的成功例子,當屬三星的手機產品。伙伴關係是一種共生系統架構(Ecosystem),對硬體廠來說才是最有利的做法,因為可以建立軟體伙伴對自已的認同感。 第二、研發管理。過去的軟體研發,特別在台灣,都是屬於門內做法(In-door),意思是招募自有的軟體工程師,並在內部完成研發專案。現在,有許多專案在初始階段(Initial Development Pase)都是採用戶外做法(Out-door);簡單說,就是我們談論很久的社群模式,透過外部力量來完成工作。 軟體的研發方法不一樣了,關於這點,或許可以從我個人經營的軟體服務業務來說明;目前與客戶進行的部份軟體專案,客戶也接受了新的做法,讓社群上的個人開發者參與專案。因此,若採用戶外模式,專案的成功關鍵因素,在於是否能建立正確的研發管理方法。 第三、軟體是知識。軟體並不是程式碼,而是「知識」。知識包含想法、創意與專業學科等等。過去在本論壇,也和大家分享過「寫程式並不等於做軟體」的觀點。由於軟體是無疆界的「知識」,因此,策略與專案內容的擬定上,「不應該以硬體平臺做為出發點」;這是過去一直不斷發生的問題,許多計畫都是以硬體角度出發,容易因小失大。簡單說,專案的出發點,以及結果,「都只是在為硬體寫程式」,這是過去近二年觀察到的問題。 一直以來,硬體廠把軟體視為附屬品,或是將軟體公司做為外包廠的現象,在這半年來有了相當大幅度的轉變。這是一個以軟體為主的新時代,台灣硬體廠雖然一開始應變速度慢,起步也較晚,但是觀念的轉換速度卻很快,希望大家以期待的心情來看待。...(more)

December 23, 2011: Android 瀏覽器與 Webkit 專案心得:AOSP 心酸說不完

2011歲末時刻,要好好為自已上一堂「Lessons Learned」課程。 今年度有幾個 Android 專案,特別令人印象深刻,其中一個是有關於 Android 瀏覽器與 webkit 的計畫。因為開發專案的需要,修改了 Android 瀏覽器 (Browser) 的程式碼,也對 Webkit 做了些研究,沒想到這整個過程,倒是有點出乎我的意料之外;原本以為這是一個簡單,且能輕易結案的計畫,沒想到踩到 AOSP 的地雷。在這個瀏覽器開發專案接近尾聲時,在這裡分享一點甘苦談。 Google 採用 Webkit 做為 Android 內建瀏覽器的 HTML 引擎,Webkit 是相當知名的 HTML 引擎,由 Apple 公司做了早期的開發,現在則是成為了一個開源計畫,由社群開發者,以及部份公司,共同貢獻程式碼。 這個開發專案需要基於現有的 Android 2.2/2.3 瀏覽器,加入一些功能,並能整合伺服器端的服務,其中一個功能,需要使用到瀏覽器的 Copy/Selection 功能。就如同大家所知道的,Android 2.2 的 WebView 並沒有...(more)

訂閱 jollen.org 電子報: 最新消息與專欄動態
Email:

Jollen 的 Embedded Linux 電子出版

Copyright(c) 2006,2007,2010,2011 www.jollen.org. All rights reserved.