帳號:
密碼:
最新動態
產業快訊
CTIMES/SmartAuto / 新聞 /
Android 軟體整合開發 重要的知識是物件導向
 

【CTIMES/SmartAuto 報導】   2012年04月30日 星期一

瀏覽人次:【6720】

Linux 核心是 implicit of object-oriented 的典型實例。例如,在開發驅動程式的過程中,雖然不需要特別了解驅動程式的物件導向架構,但其架構則是依循嚴謹的物件導向觀念。Linux 核心與驅動程式,都是以 C 語言實作。

另外一個例子,就是筆者在 Android Framework & HAL 課程中所提到的 HAL Stub 觀念。HAL Stub 可採用 C 語言實作,編譯後以 *.so 形式佈署,但它不是程式庫(Library),而是一個物件(Object)。

HAL 的模組稱為 Stub,Stub 是一種物件。Stub 在軟體工程領域代表「樁」的角色,也就是整體架構中的一小段基礎程式碼,這段程式碼有著以下二個特色:

1. 符合架構的程式碼(打地基)

2. 一段程式碼範本,最終的實作 (final implementation) 是代理人 (proxy) 的角色

但是,Android 將上述的物件導向封裝得非常好,不需要懂這些架構面的觀念,也能依循「步驟」實作出基本的 HAL Stub。

在軟體裡加上自已的實作,最重要的第一門課就是練習寫「樁」,也是打地基的程式碼。所以,我們要知道 Android 的整體架構,並依循其架構,設計並實作自已的 HAL Stub。由此可知,從事 Android 軟體整合開發,重要的背景知識是物件導向、軟體工程與 HAL 架構,而不是硬體的知識。另外,還有很重要的背景知識,就是如何以 C 語言實作物件導向設計。

步驟性的知識可以解決部份的工程(實作)問題,但因為缺乏系統性的觀念,將會影響解決整體性問題的能力。這就是「隱性物件導向」的概念,大部份我們接觸過的軟體,都是嚴謹的物件導向設計,只是因為它被封裝得很好,所以常常會忽略它,或是認為它不存在。

有一種誤解,可以說明這個現象。有些工程師,會誤以為使用 C 語法實作的軟體,並不是物件導向的架構,實則不然。Linux 核心便是一個很好的例子。Axel-Tobias Schreiner 在 1993 年發表了著作「Object-oriented programming with ANSI-C」,解釋了如何使用標準 C 語言 (ANSI C) 撰寫物件導向程式碼;國外有些大學,甚致將這個科目列為必修課。

因此,C 語言是隱性的物件導向程式碼,因為它不像 C++ 或 Java,有著明顯的物件導向語法特徵。這點對於研究工作其實是個麻煩,因為 C 語言沒有鮮明的物件導向語法,所以經常需要花費時間,來探索隱藏其中的物件導向設計。(文章來源:Jollen’s Blog、作者:Jollen Chen)

(本文經仕橙部落同意轉載到CTimes科技網)

關鍵字: Object-oriented  Android  C++  Java  Library  Linux  Unix 
相關新聞
讓台灣軟體走向國際!偉康邀Java大師來台技術交流
Supermicro最新Android雲端方案採用Intel GPU
Red Hat正式推出最新版本RHEL 9
甲骨文正式推出Java 18
ADI為Linux發行版擴充超過1000個元件驅動程式
comments powered by Disqus
相關討論
  相關文章
» 用Arduino 打造機器人:循跡、彈鋼琴、下棋都行!
» 【新聞十日談#40】借力數位檢測守護健康
» Arduino IDE 2.3來囉 程式再也不怕Bug了!
» Arduino結盟Silicon Labs深擁Matter協定
» 智慧宅重新定義「家」的樣子


刊登廣告 新聞信箱 讀者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 遠播資訊股份有限公司版權所有 Powered by O3  v3.20.2048.18.118.12.222
地址:台北數位產業園區(digiBlock Taipei) 103台北市大同區承德路三段287-2號A棟204室
電話 (02)2585-5526 #0 轉接至總機 /  E-Mail: webmaster@ctimes.com.tw