账号:
密码:
最新动态
产业快讯
CTIMES/SmartAuto / 新闻 /
Android 软件整合开发 重要的知识是面向对象
 

【CTIMES / SMARTAUTO ABC_1 报导】    2012年04月30日 星期一

浏览人次:【6712】

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
相关讨论
  相关文章
» 【新闻十日谈#40】数位检测守护健康
» ADAS 前置摄影机设计的电源供应四大挑战
» 展??2024年安防产业的七大趋势
» 智慧宅重新定义「家」的样子
» MIC:CES 2024五大重要趋势


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

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK84R5JBWZSSTACUK4
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw