研究jni技术在嵌进式软件开发中的应用

研究jni技术在嵌进式软件开发中的应用

ID:21788170

大小:58.50 KB

页数:8页

时间:2018-10-24

研究jni技术在嵌进式软件开发中的应用_第1页
研究jni技术在嵌进式软件开发中的应用_第2页
研究jni技术在嵌进式软件开发中的应用_第3页
研究jni技术在嵌进式软件开发中的应用_第4页
研究jni技术在嵌进式软件开发中的应用_第5页
资源描述:

《研究jni技术在嵌进式软件开发中的应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、研究JNI技术在嵌进式软件开发中的应用引言嵌进式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、本钱、体积、功耗严格要求的专用计算机系统。嵌进式软件的基本体系结构包括嵌进式实时操纵系统RTOS(RealTimeoperatingSysterrl)、嵌进式设备驱动程序、嵌进式应用程序编程接口(中间件)和嵌进式应用程序。现阶段,计算机应用的普及、互联X技术的实用以及纳米微电子技术的突破,正有力推动着21世纪的产业生产、贸易活动、科学实验和家庭生活等领域自动化和信息化

2、进程。全过程自动化产品制造、大范围电子商务活动、高度协同科学实验以及现代化家居生活,为嵌进式产品造就了崭新而巨大的商机。除了沟通讯息高速公路的交换机、路由器和调制解调器,构建计算机集成制造系统(CIMS)所需的数据传输系统DCS(DatamunicationSystem)和机器人以及规模较大的家用汽车电子系统,最有产量效益和时代特征的嵌进式产品应数因特X上的信息家电(informationappliances),如X络可视、X络游戏机、电子商务、商务通(PDA)、移动以及多媒体产品(如电视机顶盒、

3、DVD播放机、电子阅读机)。众所周知,“一次编程,到处使用”的Java软件概念原本就是针对X上嵌进式小设备提出的,几经周折,目前SUN公司已推出了J2ME(Java2P1atformMicroEdition)针对信息家电的Java版本,其技术日趋成熟,开始投进使用。SUN公司Java虚拟机(JVM)技术的有序开放,使得Java软件真正实现跨平台运行,即Java应用小程序能够在带有JVM的任何硬软件系统上执行。加上Java语言本身所具有的平安性、可靠性和可移植性等特征,对实现瘦身上X的信息家电等X络

4、设备十分有利,同时对嵌进式设备非凡是上X设备软件编程技术产生了很大的影响。1Java的性能新题目及几种解决方案Java程序也有其本身的缺陷,那就是其效率新题目。由于Java是一种介于解释型和编译型之间的语言,其对内存的治理是通过JVM虚拟机来实现的,同样的程序,假如用编译型语言C来实现,其运行速度一般要比Java快得多。因此,进步Java的性能就显得十分重要。迄今为止,人们为进步Java的运行速度而做出的很多努力,主要集中在程序设计的方法和模式选择方面。但是由于算法和设计模式的优化是通用的,对Ja

5、va有效的优化算法和设计模式,对其他编译语言也基本适用,因此不能从根本上改变Java程序和编译型语言在执行效率方面的差异。另外,JIT(JustInTime,及时编译)技术也是一个比较好的思想。它的基本原理是,首先,通过Java编译器把Java源代码编译成和平台无关的二进制字节码。然后,在Java程序真正执行之前,系统通过JIT编译器把Java的字节码编译为本地化机器码。最后,系统执行本地化机器码,不用对字节码进行解释。这样做的优点是,大大进步了Java程序的性能,缩短了加载程序的时间;同时,由于

6、编译的结果并不在程序运行期间保存,因此也节约了存储空间。缺点是,由于JIT编译器对所有的代码都想优化,因此同样也占用了很多时间。动态优化技术即提前编译为机器码的技术(dynamicopttmization,aheadoftimetechnology)是进步Java性能的另一个尝试。动态优化技术充分利用了Java源码编译、字节码编译、动态编译和静态编译的技术。其输进是Java的源码或字节码。而输出是经过高度优化的可执行代码和动态库(WindoW中是.dil文件,UNIX中是共享库.a.so文件)。其

7、优点是能大大进步程序的性能,缺点是破坏了Java的可移植性,也对Java的平安带来了一定的隐患。2JNI技术实际上,有一种通常被忽视的技术可以在很大程度上解决这个困难,那就是JNI(JavaNativeInte***ce,Java本地化方法)。图l是JNI技术实现的一般步骤。(1)编写Java类代码其中,需要JNI实现的方法应当用native关键字声明。在该类中,用System.1oadLibrary()方法加载需要的动态链接库。关键代码如下://pute.javapublicclasspute{

8、publicnativedoublep(doubleparams);static{//调用动态链接库System.loadLibrary(“mathlib”);}(2)编译成字节代码在这个过程中,由于采用了native关键字声明,Java编译器会忽视没有代码体的JNI方法部分。(3)天生相关JNI方法的头文件这个过程的实现一般是通过利用jlavah-jni*class天生的,也可以手工天生该文件;但是由于Java虚拟机是根据一定的命名规范完成对JNI方法的调用,所以手工编写头文件需

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。