iT邦幫忙

DAY 29
2

Android 實現智慧生活 DIY系列 第 29

實現智慧家庭diy (Day29) – HTML5 + IC設計,促進產業族群融合。

青代表新興的網路世代族群,黃表示為微電子領域的族群。這兩個族群,應該互相關心,青黃相接。智慧電視 UI 需要 HTML5 ,優化 UE(用戶體驗), 智慧電視的物聯能力與人機介面的創新,需要微電子領域。台灣在平版電腦已失去先機,網路族群與微電子領域的族群,應該攜手(HTML5 + IC設計)到下一個世代 - 智慧電視時代。

所有文章
http://ithelp.ithome.com.tw/category/家庭雲
青代表新興的網路世代族群,黃表示為微電子領域的族群。

這兩個領域在台灣的萌芽時間分別是 1975與1995,大約是20年,這期間,剛好是台灣 PC 產業發展史。

這兩個族群,有著很不同的時代背景,台灣在微電子領域是相當有成就的,而網際網路的世界卻創意無限。
這兩個世代的領域,剛好位於作業系統之上與下兩層,中間層則大多是由歐美公司掌握。它們以系統平台,掌控這上下兩層,因為上下兩層必須依賴它。

幸好,有些洋人很樂於開放程式碼,讓我們也有學習的好機會。

當今的電腦世界,我們自製作業系統的可能性比較小,但是卻可借力使力善加利用。
昨天的例子,剛好說明這點,PhoneGap是美國人的產物,它是一個有特定目的的框架,我們剛好善用它,我們可以設計一個 Plugin Class 包裝一組 JNI 的 Native method,此 JNI 銜接 C 組件程式。(下兩圖舉一例 JNI 的使用)而另一端我們擴充 PhoneGap提供的 API 給 網頁程式設計者寫的 JavaScript 調用,如此便銜接了 兩個領域,促進兩個族群融合了。

我以這兩個族群(網路世代族群與微電子領域的族群)慣用的程式語言來代表它們,說明如何透過軟體架構促進族群融合。延續昨天以PhoneGap整合Javascript, 今天我以Jni整合Java與 C ,底層的 C 程式 提供 演算法讓 上層的Java程式調用,而靠近使用者的Java程式,扮演C程式的耳目,彼此互補。

請看下面兩個圖(抱歉,圖小了點,請放大看)的示範,上圖是設計圖,下圖是程式碼,class name 上下兩圖不同步,不過結構是一致的。第一個圖的 Class Counter 角色,是不是很像 PhoneGap,他使用Counter Jni包裝了 一個 native method jnisum (int n),這 jnisum 則由底層的C程式來實現。而 jnisum (int n) 裡的 參數 n 的值 ,則由使用 CounterJni. jnisum(int n) 的myActivity 負責提供。若您持續追縱我的PO 文,想必對這個 Template method Design Pattern不陌生了(我這系列PO有多處使用)。

所有文章
http://ithelp.ithome.com.tw/category/家庭雲


上一篇
實現智慧家庭diy (Day28) – 運用設計 PhoneGap API 作為軟體分包的開發模式。
下一篇
實現智慧家庭diy (Day30) – 別信 "不在其位,不謀其政"。
系列文
Android 實現智慧生活 DIY30

1 則留言

0
ted99tw
iT邦高手 1 級 ‧ 2012-10-25 11:19:08

讚讚讚

ted99tw, 感謝蒞臨。

我要留言

立即登入留言