1. 计划目标 原GUI TOOL是为PL UI设计的一套GUI设计工具,但是为了更好的体现这套工具的优势和价值,我们把他当成一个集成环境来对待,我们的计划之一是支持STB/DTV开发,他的范围不仅限于对TV UI的设计,同时也能满足PC UI的设计,计划之二是支持程序设计,他有编程环境,能支持C/C++,JAVA等开发语言,能编译,运行,调试程序,计划之三是能支持嵌入式开发,也就是说它是一个嵌入式开发平台.
2. 集成开发环境构想 1) 用户界面 几乎所有的IDE都是从用户界面开始入手,GUI设计是IDE的一个很重要的功能,除了IDE外,还有一些专门服务于用户界面设计的工具,大体包括字体,字符串,图片,调色板,位置调整,界面框架实现等几个方面,并且可以在工具中进行效果预览,同时还具备GUI生成器,能生成中间产物,一般以.C/.H和.O,甚至.EXE形式产生,更有甚的还支持硬件调试功能,这些工具有的功能很简单的,有的功能却很强大,有一定的借鉴性.我们还可以计划借鉴一些IDE实现GUI的方法,以控件,组件,容器等基本元素作为我们的我们工具图形库的基本元素.
2)程序开发环境 前面我们提到了他有编程环境,能支持C/C++,JAVA等开发语言,能编译,运行,调试程序,并支持嵌入式开发,不少IDE提出了SDK,插件等概念和方法,用来满足多方面的设计, 举个例子,vc.net是一个功能强大的集成开发环境,从GUI的设计一直到多媒体(流媒体软件)设计,可参考DirectShow,(微软DirectShow是微软Windows平台下的一个流媒体架构。DirectShow提供多媒体流高质量的捕捉与回放。它支持多种格式,包括高级流格式(ASF)、运动图像专家组(MPEG)、音视频交错(AVI)、MPEG音频层-3(MP3)与WAV声音文件。它支持从基于Windows Driver Model(WDM)或Video for Windows的数字设备与类似的设备上捕捉信息。DirectShow是与其它DirectX技术结合起来的。它自动检测视频与音频硬件加速,并当硬件加速可用时就使用它;但它也支持没有硬件加速的系统)。如果我们能够建立起类似的应用软件开发包,通过移植而植入有相同硬件体系的一些嵌入式平台,这样就免去了产品开发人员的很多工作,能够迅速设计出所需要的产品,而不需要在选择不同平台时要学习各种平台的应用.
3) JAVA版本演变的应用范围 JAVA版本的演变我们回顾一下JAVA版本的演变,从Java 1.0 发表之後,Java 就被广泛地使用在桌上型应用程序以及Applet 的开发上,但是,从Java 1.1 开始,Java又回到了它一开始的老路--也就是嵌入式系统方面的应用,在当时Sun Microsystems 发表了Embedded Java 与Personal Java(也有人简称为PJava)这两项规格。其中Embedded Java 是为了资源十分有限,而且没有显示设备的嵌入式装置而设计; Personal Java 则是为了在能够与网际网路连线、并拥有显示系统(例如彩色LCD)的消费性电子装置而设计。接著Java 的版本演进到Java 2,就是我们现在常见到的JAVA版本.
3. 硬件平台无关性 1)观点 对于嵌入式产品从两点可以考虑,一是从软件产商发展来看,单纯的软件厂商不同于IC厂商,IC厂商掌握了大量硬件资源,他可以利用自身的资源设计出相应的方案,但是从没有具备硬件资源的软件产商来说,对其硬件的依赖性很大,有时侯因为没有相应的硬件环境,项目就无法开展下去;二是从软件移植角度来看,很多应用层的软件早已形成标准化的东西,我们犯不着再为不同的硬件平台重新开发这些软件模块,如果有这样一个集成开发环境能够集成不同类型的软件包应用到不同的嵌入式平台上,倒不失为一个好的办法.所以与硬件平台无关性的观点也相应提出来了.
2)优势 对于这样的一个开发环境有什么优势是我们所关心的,在嵌入式开发领域中有我们熟悉的J2ME环境,对于当时为什么要开发这样一个环境,我不太清楚,但是现在在手机领域,J2ME确是应用最广泛的工具,同样我们也希望有这么一套开发环境去适应家电行业或者相关领域的应用,他的优势在于,不管我选用何种平台,我们的开发工具都能根据其特点设计出相应的产品来,只要硬件体系不变,不管硬件做何变化都能使用,充分体现了与平台无关的优势.
3)内容 简单的说他是一个集成开发环境,和J2ME类似,他有两个方面的应用,一是桌面型软件应用,就是我们通常所说的GUI,二是嵌入式软件的应用;对于嵌入式系统应用,实际上我们是开发或者集成一些软件包,能够应用到不同的嵌入式平台,对于早期来说,以TV应用软件方向为主,DTV有不少应用软件模块是从协议而来,而协议是一些固定不变的东西,不管平台如何变化,相应的协议也不会因此而改变.所以开发他的软件包并集成到这个开发环境是有必要的.他有编译功能并能产生一些中间成果物,比如可视的.C/.H,.O,EXE等文件形式.并且提供模拟器的功能,有不少SDK都是带有模拟器,供使用者使用.怎么说呢,他是一个工具跨平台,最终生成物不受硬件平台限制应用的工具。
|