| 工 控 机 | 现场总线 | 组态软件 | 数采监测 | 控制系统 | P  L  C | 变 频 器 | 传 感 器 | 仪器仪表
| 嵌 入 式 | 单 片 机 | 执行机构 | 电力电子 | 低压电器 | 电   源 | 驱动传动 | 接口隔离 | 数控设备
| 网络线缆 | 环保设备 | 智能建筑 | 汽车电子 | 管控一体 | 液压气动| 本质安全 | 工控模块 | 电子元件
| SCADA/RTUH  M  I  |  GPS/GIS | IC产品 | 包装设备 | GPRS/CDMA      搜索|企业登陆
首页 | 厂商 | 产品 | 快讯 | 人物视点 | 应用 | 资源库 | 展会 | 核心期刊 | 供求 | 名师英才 | 人才 | 论坛 | 人才招聘
 
  个人用户企业用户
资源是您发展的基石
◇中国航天研究机构
◇中国航天科技集团
◇中国航空研究机构
◇中国航天科工集团
◇中国船舶研究机构
更多客户信息>>>
 
Java能扮演嵌入式应用开发的主角吗?
 时间:2007-11-29  来源:IT168
 页面功能 【字体: 】【评论】【查看对此文的评论

  Java自从推出以来一直备受关注,尤其是宣布开源之后,就更加为开发者所欢迎。不过在嵌入式系统设计师看来,其性能并不能令人满意。运行Java虚拟机(JVM)解释Java字节码,这种方式对大多数嵌入式应用来说占用空间过多,运行速度过慢。不过Sun的Java 2 Micro Edition(J2ME)改变了这种状况。

  对嵌入式系统设计师来说,Java有许多优点。作为一门开源的编程语言,Java允许面向对象编程,又没有C中存在的严重问题。Java运行时环境还提供了有用属性。Java提供的内存管理功能使得编程人员不必分配及释放内存。运行时环境甚至可以通过整合核心类库来简化程序分配。 但大多数嵌入式应用面临Java没有处理好的两大约束:没有足够的空间和时间。

  那么,Java作为一种在C++基础上改进了的面向对象的开源语言,在嵌入式应用开发方面能挑大梁吗?能否为它自己撑起一片蔚蓝的天空呢?

  一、为什么会是Java?

  对于嵌入式系统来说,Java技术比C语言和汇编语言具有很明显的优越性。最显著的特点是减少了系统的开发和维护,增强了代码的重利用能力,提高了Java代码与系统原有代码的可整合性。

  1. 提高开发效率和可维护性

  在项目的整个生命周期中,Java环境大大的简化了开发和维护。由于目标环境是建立在一个虚拟机上,代码可以很容易的编写、调试、分析、更改、维护。加上将来要连接的外接设备,未来的系统可能比目前的嵌入式系统复杂很多。升级手册也许不会在整个项目的生命周期中都能起到作用。取而代之的是,硬件设备的可连接性使得能够远程管理模块,这样就保证了开发人员能在产品上增加新的性能,同时解决了在产品生产后软件升级和维护的问题。

  2. 重复利用代码

  由于嵌入式系统有特殊的需求,以及不同的专门硬件要协同工作,嵌入式软件开发者通常使用非常原始的方法来开发,有时每一个新的项目都要从头再来一遍。现在,随着嵌入式技术的成熟以及系统本身变得更大更优化,很多人开始对于把一个产品的模块甚至是全部的应用程序用到另一个产品感兴趣。这种可重新利用性使得"一次开发,多次利用"成为了可能。

  Java环境使得一个模块可以只要做很少的工作就可以适应多个项目和平台。甚至包括有时客户需要一个新的目标板,或者采用新的硬件(CPU或外设)和软件,或者使用不同的Linux都可以进行移植。

  3. 集成Java代码和源代码

  使用源代码明显是指应用程序的多可用性以及代码的重利用能力。在开源的Java语言的应用中,一个设计很好的界面,或者虚拟机,或者是底层的硬件都可以很好的兼容到嵌入式系统中。尽管无法移植,对于很多功能和硬件界面来说,在本地环境下开发的代码也许仍然是最好的解决方案。在C、C++或者汇编语言中,加入标准的通信、接口模块、用户界面、安全特性会花费很多时间与金钱。与之相比较,Java的基本库本身就提供了这些东西甚至还更多,这样就可以加速开发。

  二、Java碎片真的会有影响吗?

  在使用JavaME CLDC进行移动电话开发时,人们经常会碰到碎片这个词。Java强调“一次开发,多次利用”,但碎片出现,却打破了这种传奇。于是,这就导致应用开发人员不得不在许多不同的设备进行应用程序的测试,甚至于不得不在应用程序中对某些特殊的设备进行一步客户化的工作。

  对程序开发人员来说,碎片真是个恶梦,因为碎片平白无故的增添了代码量和测试工作量。当然,对移动电话持有者来说也不是什么好事,因为碎片消耗了设备的空间。不管怎么说,碎片对每个人来说都是件很讨厌的事情。

  但对于嵌入开发者而,碎片又意味着什么呢?

  首先来看看碎片产生的根源。移动电话行业标准本来给不同的产品预留了一定的自由空间,这初衷是好的。但事实上,这种预留的空间,却导致了不同产品之间的冲突,不能进行很好的兼容。这就是碎片产生的最根本原因。于是这种不兼容性进而升级到了Java实现的程序里。这正是Java想花大力气创建一个统一Java实现的原因所在,如JSR248,MSA(Mobile Service Architecture)的建立。

  从嵌入式开发人员的角度来看,也许并没有这么糟糕。其实碎片并不会影响到嵌入式开发人员,因为已经可以确定设备之间的硬件是完全兼容的。如果使用的是原始语言像C/C++的话,嵌入式开发人员可以在任何地方来编写代码,并在不同的设备上进行代码的重用。

  三、 Java平台的测试

  如果采用Java来实现嵌入式设备开发,会不会碰到C/C++经常碰到的测试成本太高的难题呢?

  当然,采用Java来开发的话,可以对软件进行多次的重复测试,尽管这不一定是必需的。而完全需要进行重复测试的只是那些新加的Java实现。如果是Java平台的合法用户的话,还可以使用Sun提供的TCK来进行程序兼容性的检测。如果付费的话,还有很多压力测试可供选择。只要能保证Java平台的正常运行并按Java<


关于我们 | 友情链接 | 意见反馈 | 合作媒体 | 网站地图
京ICP证040996号  中国自控网 版权所有  站内内容未经中国自控网许可不得转载
电 话:010-62192616/62132436  传 真:010-62192616  地址:北京海淀区皂君庙14号鑫雅苑6号楼601室  邮编:100081
E-mail:manager@autocontrol.com.cn
广告联系 >> [ 刘先生:010-62130875 ]