像群智能表达的那样,多样性和正反馈两种主要特性体现了群体的智能,感觉上是多种偶然也就是随机组合在一起形成的必然,猜想上人脑也是这样的过程,大量的信息和经验,以及正反馈,形成了想法。图形系统,不仅仅作为工具使用,也就是仅仅具备功能还不行,非功能的需求在功能满足的情况下同样重要,也就是温饱情况下的小康需求,需求是变化的,而且是正方向的。现有图形系统已经基本满足功能需求,当然也是单单的某个或者某几个方面的需求,那么图形系统的下一个里程碑是什么呢?现在想想是智能图形系统。智能分为两个方面,一个是根据已有高级策略学习行为,积累行为,演化行为。另一个就是根据已有基本策略学习新的策略,积累策略,演化策略。同时,两个方面的智能是可以共存的,并且第一种智能可以为第二种智能服务。图形系统,使用群体是开发人员,最终群体是用户。所以图形系统在无取舍的情况下的特征应该是:顺序不分先后,但是有各自的重要性。
1 框架易于理解。
理想状况下,这点可以很好的做到,可以保持对现有图形系统的兼容特性,没有任何公司说你侵权,但是理想情况不会发生,或者只发生在你的图形系统对你兼容系统没有构成侵权的情况下。所以,这一点对于一个要体现商业价值,创造价值的图形系统来说,不可行。那么只有通过有效地创新来构思开发框架,这么做不是不可能,需要持续性的探索和反馈。取舍之间,体现的正是创新和创意。
2 性能卓越。
又快又好用永远是追求的目标。但是,这方面同样需要均衡。商业竞争,我们不一定要保证产品的所有方面都比别人好的,但是一定不能比别人明显的差。同时,保持我们自己的有效创新,从产品级别来讲,已经具备胜出的条件。图形系统的性能包括:基本2d,3d图形库的速度,整体应用的速度,出色的效果。性能建立在优秀的库的基础上,所以基础库,一定要高效,这是必须的。
3 完善的设计开发调试工具
再优秀的开发框架,没有辅助的工具,让开发设计人员手工拼代码,这已经不适应现在的软件开发了,优秀的设计开发工具配合优秀的调试分析工具,能取得用户的信赖和持续使用。
4 明确的用户定位
产品要有相应的定位,就像每个人才有其专业的技能一样,企业和产品同样要遵守相应的规律。发育和分化,各个方面各司其职。嵌入式行业是蓬勃并且是新的革命所在,基于linux等开源系统的运用使嵌入式时代诠释的很清楚,个性化,低成本,高性能,必将成就嵌入式图形界面。
接下来,详细介绍以上的4个方面:
前言 动力和需求
嵌入式时代,个性化的时代,智能而且高速的时代。更加深化的社会发育和分化,规律不再要求某个集团独揽天下,而是方方面面的集体想象力充分发挥和涌现。个体做好分化后自己的工作即可。嵌入式时代,工具离不开使用接口,也就是用户接口,最自然的是工具具有智能,人类只需要传达想法即可,但是当下还做不到,现实的情况是,图形界面现停留在指点时代,即我们要通过比划和点击来告知图形系统我们的意图。基本的框架没有变,这就是交互和通信,机会来临之前,我们能做的只是做好一切准备,图形界面要做到可扩展,易移植,能裁剪,性能好等特性,要从重点从框架上发挥创意,同时用户定位是这些的部分参考基础。所以,整个图形系统就像一个人,一个朋友,框架是品质是灵魂,性能是外表是表现,工具是衣服是人际,用户定位是理想是目标。图形系统设计师的工作就是,打造一个适合时代并且能为时代做出贡献,甚至能够改变时代推动历史进步的产品。如此看来,设计师责任重大。当然我们重点关注的是需求,我们的目标受众,当下是嵌入式领域,各种手持设备,多媒体设备,仪器仪表,总之是嵌入式设备。这要求我们做到一下几个方面:
- 1. 高性能
- 高性能是基础。设计再好的系统,性能不过关,理念再好也没有价值。图形系统关注两个方面的性能,一个是软件图形库,一个是硬件加速支持。
- 2. 高度可裁剪
- 同样的图形系统应用,不同的功能需求,要求系统高度可裁剪,也就要求从机制或者说框架上支持裁剪,目前主要是说功能裁剪。
- 3. 高度可移植
- 无论从操作系统级别还是硬件级别,可移植要求我们从机制上支持,并不是简单修改源代码,那样不是支持可移植。
- 4. 高度可扩展
- 裁剪的相反方向是扩展,一方面是现有功能扩展,一方面是预添加功能扩展,这要求系统设计要有前瞻性,要有高度的抽象性。
- 5. 高度可配置
- 一个系统不能包罗万象,重点是做好自己的工作即可。但是同样的系统,用户要有配置的办法,系统要提供给用户配置的办法。
- 好的嵌入式图形系统,要求以上5个方面的均衡。
一 框架
框架离不开要体现的特性,特性来自于体现需求的想象力。要做到以上5点,需要重点在系统组织框架上发挥创意。
高性能自不必说,通过优化算法和优化库来做基础工作,同时考虑高层次框架时,也要予以性能评估,取得均衡。
可移植,来自于层次抽象,通过设计的中间层次屏蔽上下层之间的关联,使上层变得不依赖具体的下层实现,只要使用其接口即可。但是,滥用抽象和不用抽象一样,系统换乱,错误丛生,不可控制,所以仅仅在需要的地方抽或者只在必须的地方抽象即可。
可裁剪,可扩展,基本属于一个范畴的需要,就像社会分工,就像机器零件,裁剪和扩展来自于组合系统,也就是组件系统,这个很好理解,只是不同的架构,组件间的关系不同,通信方式不同,交互方式不同,当然性能表现就不一样。
可配置,刚刚提到组件,当然可以说是组件的特性可配置,组件系统离不开组件的管理核心,当然核心如果看做一个组件的话,核心也可配置,这样图形系统本身的机制可能就可以改变了,我们现在重点关注非核心的组件配置。
综上,基本的框架是组件化,组件可配置,包括核心组件,核心组件定义了组件间的通信方式。如此看来,很像一个soc,形形色色的外设通过协议链接在mcu上,彼此不需要认识,简单的通过协议接口即可完成功能了。
二 性能
就一个不论大小的系统而言,性能来自两个方面,一个是基本图形算法的性能,另一个是抽象带来的性能损失。组件间的通信或者说交互的性能属于后者。基本图形算法,变化有限。重点关注,抽象带来的性能损失,我们的目标是设计合理的架构,降低性能损失满足要求。至于,多核的性能,我们只能依赖底层操作系统,并不能过多干涉。
三 工具
设计工具,不可或缺,最好的工具是能够快速的帮助用户设计系统原型,同时避免重复劳动。开发工具,让用户的开发可控制,事半功倍,快速高效并且保证软件质量。调试工具,任何系统都会有问题,调试跟踪工具必不可少。
四 目标
嵌入式linux领域的图形用户界面,让你在复杂稳定的系统平台上,通过简单的方法设计出复杂好用的图形应用。