CN103530165B - 一种应用于物联网行业的java解决方案 - Google Patents
一种应用于物联网行业的java解决方案 Download PDFInfo
- Publication number
- CN103530165B CN103530165B CN201310404344.4A CN201310404344A CN103530165B CN 103530165 B CN103530165 B CN 103530165B CN 201310404344 A CN201310404344 A CN 201310404344A CN 103530165 B CN103530165 B CN 103530165B
- Authority
- CN
- China
- Prior art keywords
- java
- module
- virtual machine
- internet
- management
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了一种应用于物联网行业的基于Android?Dalvik虚拟机机制的Java虚拟机***,即Dthing***,该***包括:Java虚拟机内核模块、Java语言基础库模块和操作***移植层。Dthing是利用开源免费的Dalvik虚拟机技术,进行重新设计,优化,裁剪,增加新功能,而研发出的一套适应于嵌入式***的Java虚拟机解决方案。Dthing***是高效的,对行业客户,对终端厂商,对应用开发者都有极大帮助的Java虚拟机解决方案。
Description
技术领域
本发明属于计算机***领域,尤其涉及Java虚拟机领域,是一种基于AndroidDalvik虚拟机解释器,适用于嵌入式操作***,物联网行业的新型Java虚拟机解决方案。
背景技术
Java语言是一种由SUN公司提出的计算机编程语言。Java虚拟机是指Java语言的运行环境。在手机终端操作***中,Java虚拟机机制有基于SUN公司J2ME参考实现的栈虚拟机,主要应用于非智能手机上,以及智能手机上Android***的基于寄存器的Dalvik虚拟机。
如图1所示,基于栈的虚拟机,其指令为单字节码,指令个数不超过256个。基于栈的虚拟机,所有指令执行均是在栈上进行,对于有多个操作数的指令,会将数据load到Java栈上后,再进行操作。
如图2所示,DalvikVM是基于寄存器虚拟机。将JDK编译生成的class文件通过Dex工具处理后,生成Dexcode,也可称为“双字节码”。其指令格式为均为双字节,即16位指令。Dalvik有虚拟寄存器,指令操作会将操作数load到寄存器后再进行运算等。
现有的J2ME规范和虚拟机主要针对非智能手机上游戏及应用设计,目前除了没有针对物联网行业做扩展外,其次如果厂商使用此类虚拟机,需要向SUN公司(目前的Oracle)交付昂贵的的License费用。
Android的Davlik虚拟机机制是完全开源的,但是Android的Dalvik虚拟机是基于Linux操作***,并不适应于目前的物联网操作***平台。
发明内容
本发明提供一种应用于物联网行业的基于AndroidDalvik虚拟机机制的Java虚拟机***,以解决J2ME规范和虚拟机没有针对物联网行业做扩展以及需要向SUN公司(目前的Oracle)交付昂贵的的License费用的问题以及解决Android的Dalvik虚拟机不适应于目前的物联网操作***平台的问题。
为了解决上述问题,本发明提出了一种应用于物联网行业的基于AndroidDalvik虚拟机机制的Java虚拟机***,即Dthing***。该***包括:Java虚拟机内核模块、Java语言基础库模块和操作***移植层;所述的Java虚拟机内核模块包含类加载模块、内存管理模块、垃圾回收模块、线程管理模块、虚拟机解释器模块;Java虚拟机启动时,加载Java语言基础库模块,初始化***,运行Java应用程序;所述类加载模块用于加载Java***基础库,供解释运行Java应用时调用,类加载模块在类加载过程中采用和Java***运行内存空间共享的方式来减少内存使用,同时移除AndroidMMAP机制以适应嵌入式操作***环境;所述内存管理模块增加内存碎片整理频率以提高内存的重用;所述的垃圾回收模块采用优化的Mark-Sweep-Compact机制提高嵌入式设备中内存的使用效率;所述的线程管理模块采用轻型的线程机制,独立于操作***;所述的虚拟机解释器模块根据精简的Java语言基础库简化或去除某些指令;所述的Java语言基础库模块根据物联网行业应用特性去除了标准Java语言库中某些功能,以减少虚拟机占用的空间;所述的操作***移植层,为虚拟机调用平台功能提供的统一的接口定义,以提高虚拟机***在不同操作***或平台***上移植的效率。
该Java虚拟机***可以应用到物联网终端的操作***上。
该***还包括:Java驱动模块,应用管理模块,运营商管理模块;所述Java驱动模块,实现了Java层的驱动机制,以提高物联网中对海量传感器的管理;所述应用管理模块,实现了应用的远程控制;所述的运营商管理模块增加了对不同运营商协议的支持。
该***还定义了一种Java驱动方法,该方法包括:步骤一:将平台操作***级的驱动的控制管理和数据读写提升到Java***中实现;步骤二:平台操作***只提供通用的硬件控制接口;步骤三:使用Java应用调用Java虚拟机提供的驱动单元控制接口。
该Java驱动方法适用于海量传感器部署后的驱动适配。
该***实现移动WMMP协议的规范的步骤如下:步骤一:Java***启动后,将WMMP功能加载到***中;步骤二:Java***注册到移动运营商的运营管理平台,注册本地终端;步骤三:***发送链接请求和运营商业务管理平台链接,完成业务流程。所述运营商协议包括移动WMMP协议。
由此可见,本发明具有如下优点:
1.本发明为了解决DalvikVM应用到嵌入式操作***上的问题,对DalvikVM进行的重新定制和设计,使其对***资源的要求更低,效率更高,更适用于像ThreadX,Nucleus等嵌入式操作***。
2.增加了物联网行业的特点,提出在虚拟机中增加Java动态驱动,远程监控等机制。
3.解决第三方的license费用。
Dthing虚拟机***与J2ME虚拟机***对比优势:
1.Dthing***的解释器采用AndroidDalvikVM的基于寄存器的虚拟机机制,其效率比基于栈的虚拟机机制效率更高。
2.现有的嵌入式Java虚拟机都是基于J2ME的架构,J2ME是面向非智能手机的行业,J2ME的技术规范在物联网行业并不适合。同时J2ME的技术规范长期没有更新,需要新技术进行补充。
3.Dthing***的虚拟机基于Apache的license规范,不必向Google或SUN(Oracle)交付第三方license费用。
Dthing虚拟机***与AndroidDalvik虚拟机***对比优势:
1.AndroidDalvik虚拟机是基于Linux操作***上设计的虚拟机机制。并且对硬件环境要求很高。
2.AndroidDalvik虚拟机并不是单独的产品,它只存在于Android的手机操作***中。因而尽管其效率很高,但是无法直接应用到其它行业。
Dthing虚拟机***解决了AndroidDalvik虚拟机对资源要求高的问题,并将其应用到嵌入式操作***上,扩展了其应用领域。同时Dthing***针对嵌入式操作***增强了相应的功能。
附图说明
图1是基于栈的Java虚拟机。
图2是基于寄存器的Java虚拟机架构。
图3是Dthing***架构图。
具体实施方式
本发明提出了一种应用于物联网行业的基于AndroidDalvik虚拟机机制的Java虚拟机***,即Dthing***,该***Java虚拟机内核机制,Java语言基础库,操作***移植层。所述的Java虚拟机内核部分有类加载模块,内存管理模块,垃圾回收模块,线程管理模块,虚拟机解释器模块。Java虚拟机运行过程包括虚拟机启动时的基础库加载,初始化,和虚拟机运行Java应用程序。所述的类加载模块用于加载Java***基础库,供解释运行Java应用时调用,本发明的类加载模块在类加载过程中和Java***运行内存空间共享方式减少内存使用,同时移除AndroidMMAP机制以适应嵌入式操作***环境。所述内存管理模块增加内存碎片整理频率以提高内存的重用。所述的垃圾回收模块采用优化的Mark-Sweep-Compact机制提高嵌入式设备中内存的使用效率。所述的线程管理模块采用轻型的线程机制,独立于操作***。所述的虚拟机解释模块根据精简的Java语言基础库简化或去除某些之类。所述的Java语言基础库根据物联网行业应用特性去除了标准Java语言库中某些功能,如屏幕,媒体等,以减少虚拟机占用的空间。所述的操作***移植层,为虚拟机调用平台功能提供的统一的接口定义,这周方式提高了虚拟机***在不同操作***,平台***上移植的效率。
该***还包括Java驱动模块,应用管理模块,运营商管理模块中。所述Java驱动模块,实现了Java层的驱动机制,以提高物联网中对海量传感器的管理。所说应用管理模块实现了应用的远程控制。所述的运营商模块增加了对不同运营商如移动WMMP协议的支持。
本发明使用Android的DalvikVM虚拟机机制,可以避免向SUN交付昂贵的License费用。从而大大降低了虚拟机应用到嵌入式***后的成本问题。同时也打破了嵌入式环境下Java虚拟机的垄断局面。
下面结合附图3对本发明进行详细说明:
操作***:虚拟机运行的嵌入式环境
软件平台:不同的芯片模块有不同的软件平台,软件平台提供对各种硬件支持以及各类服务的封装。有屏幕;网络;传感器;文件***;事件通讯机制和消息机制;
操作***移植层:这层主要是对平台和操作***的封装,使得上层***不用随平台和操作***的变化而做大的修改。包括平台无关封装,***函数封装,平台函数封装,以及驱动封装
虚拟机内核:为Dalvik虚拟机的核心运行模块,主要包括JNI接口实现;解释器,内存管理,垃圾回收机制,调试管理,类加载。
第三方库:为Dalvik虚拟机运行中使用的第三方库。如:数据库;安全模块;压缩模块;语言支持。
DthingJava***库:为DalvikVM***的各类Java服务模块,为最终的M2M应用提供各类的功能和服务。包括:应用管理模块;Java动态加载模块;J2SE基础库模块;M2M协议扩展模块;WMMP协议支持;OSGi架构模块;多任务模块;Java语言基础库
Dalvik虚拟机内核,DthingJava***库,***移植层构成了Dthing这样一个Java中间件***。
下面对该***包括的各个模块进行详细描述:
类加载模块:在Android的虚拟机***中,类加载模块采用Linux的MMAP方式加载优化过后的Java文件,随后映射到内存中进行Java基础库的加载,并且使用大量的内存来实现内存的加载。Dthing***将MMAP机制移除,采用和主内存模块共享内存空间,已减少内存的使用。
内存管理模块:Android的虚拟机管理模块预留了至少8M字节的内存空间,并且会根据上层Framework的要求大块的增加内存。Dthing***将增加内存管理和碎片整理的频率以提高内存的重用,从而将内存最大值降低到可接受的范围(2M-3M字节)。
垃圾回收机制:采用Mark-Sweep-Compact的机制,会在算法中进行优化,以提高嵌入式设备中内存的使用效率。
线程管理机制:Android的虚拟机线程管理机制是基于Linux的pthread机制提供的丰富的接口功能供虚拟机使用。但是在嵌入式操作***中,线程管理都会有各种限制。Dthing***将实现独立于操作***的轻量型线程管理机制,这不仅增加了Dthing***平台的独立性,同时线程管理功能更简单。
虚拟机解释器:虚拟机解释器会根据虚拟机基础库的功能,简化某些指令的执行过程,以提高执行效率。
Java语言基础库:Java语言通用库通常会大而全,Dthing***根据物理网行业的应用去除了物联网行业不用的功能,如复杂的屏幕操作,多媒体的支持等,这样既减少整个***的空间占用,同时为虚拟机很多模块提供的优化的基础。
应用管理模块:Dthing***加入了远程应用管理模块,以进行终端***的远程监控。远程应用管理模块包括:本地应用列表,远程启动,远程删除,远程停止,远程加载更新应用。
Java驱动模块:Dthing***定义了Java驱动模型,可以远程将各类传感器驱动动态加载到Dthing终端***,这样可以实现传感器的即插即用功能,同时可以做到物联网的后向部署-即在物联网终端部署后,可以通过更改不同传感器,以及远程应用程序的更新,来实现物联网新的部署和功能的升级。
本发明并不局限于上述具体实施方式,本发明可以有各种修改和替代形式,在附图和详细说明中一些具体的实施例只是作为实例加以表述。但应理解,这些附图和详细说明绝不是为了将本发明限制在所公开的具体形式上,相反,本发明应包括在权利要求书所定义的范围内的全部修改、等效形式和替代形式。
Claims (7)
1.一种应用于物联网行业的基于AndroidDalvik虚拟机机制的Java虚拟机***,其特征在于,该***包括:Java虚拟机内核模块、Java语言基础库模块和操作***移植层;所述的Java虚拟机内核模块包含类加载模块、内存管理模块、垃圾回收模块、线程管理模块、虚拟机解释器模块;Java虚拟机启动时,加载Java语言基础库模块,初始化***,运行Java应用程序;所述类加载模块用于加载Java***基础库,供解释运行Java应用时调用,类加载模块在类加载过程中采用和Java***运行内存空间共享的方式来减少内存使用,同时移除AndroidMMAP机制以适应嵌入式操作***环境;所述内存管理模块增加内存碎片整理频率以提高内存的重用;所述的垃圾回收模块采用优化的Mark-Sweep-Compact机制提高嵌入式设备中内存的使用效率;所述的线程管理模块采用轻型的线程机制,独立于操作***;所述的虚拟机解释器模块根据精简的Java语言基础库简化或去除某些指令;所述的Java语言基础库模块根据物联网行业应用特性去除了标准Java语言库中某些功能,以减少虚拟机占用的空间;所述的操作***移植层,为虚拟机调用平台功能提供的统一的接口定义,以提高虚拟机***在不同操作***或平台***上移植的效率。
2.如权利要求1所述的***,其特征在于,该Java虚拟机***可以应用到物联网终端的操作***上。
3.如权利要求1所述的***,其特征在于,该***还包括:Java驱动模块,应用管理模块,运营商管理模块;所述Java驱动模块,实现了Java层的驱动机制,以提高物联网中对海量传感器的管理;所述应用管理模块,实现了应用的远程控制;所述的运营商管理模块增加了对不同运营商协议的支持。
4.如权利要求2所述的***,其特征在于,该***还包括:Java驱动模块,应用管理模块,运营商管理模块;所述Java驱动模块,实现了Java层的驱动机制,以提高物联网中对海量传感器的管理;所述应用管理模块,实现了应用的远程控制;所述的运营商管理模块增加了对不同运营商协议的支持。
5.如权利要求1-4任一项所述的***,其特征在于,该***还定义了一种Java驱动方法,该方法包括:步骤一:将平台操作***级的驱动的控制管理和数据读写提升到Java***中实现;步骤二:平台操作***只提供通用的硬件控制接口;步骤三:使用Java应用调用Java虚拟机提供的驱动单元控制接口。
6.如权利要求5所述的***,其特征在于,该Java驱动方法适用于海量传感器部署后的驱动适配。
7.如权利要求1-4任一项所述的***,其特征在于,该***实现移动WMMP协议的规范的步骤如下:
步骤一:Java***启动后,将WMMP功能加载到***中;
步骤二:Java***注册到移动运营商的运营管理平台,注册本地终端;
步骤三:***发送链接请求和运营商业务管理平台链接,完成业务流程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310404344.4A CN103530165B (zh) | 2013-09-06 | 2013-09-06 | 一种应用于物联网行业的java解决方案 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310404344.4A CN103530165B (zh) | 2013-09-06 | 2013-09-06 | 一种应用于物联网行业的java解决方案 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103530165A CN103530165A (zh) | 2014-01-22 |
CN103530165B true CN103530165B (zh) | 2016-06-15 |
Family
ID=49932205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310404344.4A Expired - Fee Related CN103530165B (zh) | 2013-09-06 | 2013-09-06 | 一种应用于物联网行业的java解决方案 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103530165B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104063243A (zh) * | 2014-06-17 | 2014-09-24 | 成都雅鲁科技有限公司 | 一种应用于智能穿戴设备的应用商店解决方案 |
CN104601714A (zh) * | 2015-01-29 | 2015-05-06 | 太仓市同维电子有限公司 | 手机应用程序管理三层网络终端的实现方法 |
CN105721555B (zh) * | 2016-01-25 | 2019-10-29 | 英科信息技术(北京)有限公司 | 用于物联网的操作***及物联网终端设备 |
CN105578659B (zh) * | 2016-02-04 | 2018-02-16 | 宁波登云信息科技有限公司 | 一种应用于路灯照明领域的智能照明控制*** |
CN106528264A (zh) * | 2016-10-24 | 2017-03-22 | 许小刚 | 一种应用于物联网的智能终端操作*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593127A (zh) * | 2008-05-27 | 2009-12-02 | 商埃曲网络软件(上海)有限公司 | 一种数字电视中间件***的跨平台Jave虚拟机 |
CN102004662A (zh) * | 2010-12-07 | 2011-04-06 | 江南大学 | 嵌入式可裁剪式虚拟机 |
CN102779047A (zh) * | 2012-07-09 | 2012-11-14 | 哈尔滨工程大学 | 一种嵌入式软件支撑平台 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100989613B1 (ko) * | 2009-12-08 | 2010-10-26 | (주)제이모바일 | 비안드로이드 플랫폼에서 안드로이드 어플리케이션을 실행하는 단말장치 |
-
2013
- 2013-09-06 CN CN201310404344.4A patent/CN103530165B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593127A (zh) * | 2008-05-27 | 2009-12-02 | 商埃曲网络软件(上海)有限公司 | 一种数字电视中间件***的跨平台Jave虚拟机 |
CN102004662A (zh) * | 2010-12-07 | 2011-04-06 | 江南大学 | 嵌入式可裁剪式虚拟机 |
CN102779047A (zh) * | 2012-07-09 | 2012-11-14 | 哈尔滨工程大学 | 一种嵌入式软件支撑平台 |
Non-Patent Citations (1)
Title |
---|
《许小刚:物联网跨平台解决方案》;移动Labs;《http://labs.chinamobile.com/news/77796》;20120821;正文第1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103530165A (zh) | 2014-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11853820B2 (en) | Cross-process communication method, apparatus, and device | |
CA2768752C (en) | Terminal device of non-android platform for executing android applications, and computer readable recording medium for storing program of executing android applications on non-android platform | |
CN103530165B (zh) | 一种应用于物联网行业的java解决方案 | |
CN102073520A (zh) | 一种c++应用程序版本动态管理***和方法 | |
TWI715762B (zh) | 虛擬機器創建方法和裝置 | |
WO2012122884A1 (zh) | 在浏览器上实现的开放式插件管理平台及插件管理方法 | |
CN104714828A (zh) | 应用安装、运行方法及装置 | |
CN112835975B (zh) | 一种在区块链中部署、更新、调用智能合约的方法 | |
US20140033208A1 (en) | Method and device for loading application program | |
CN101452402A (zh) | 软件运行***和软件运行方法 | |
CN106909441B (zh) | 一种基于jvm的磁盘直接i/o访问的方法 | |
CN114077462A (zh) | 软件操作***调用Android HIDL接口的方法、装置、设备及介质 | |
US20180136941A1 (en) | Bootstrapping Profile-Guided Compilation and Verification | |
CN110673853A (zh) | 一种编译方法、装置及*** | |
CN105378689A (zh) | 统一可扩展固件接口(uefi)驱动器和协议 | |
WO2018032653A1 (zh) | 一种Java卡应用的功能实现方法及装置 | |
CN104699503A (zh) | 一种替换安卓***中函数的执行逻辑的方法及装置 | |
CN111651169B (zh) | 基于web容器的区块链智能合约运行方法及*** | |
CN112256249A (zh) | 扩展Android***功能的方法、设备及计算机存储介质 | |
CN109343970B (zh) | 基于应用程序的操作方法、装置、电子设备及计算机介质 | |
CN106919391A (zh) | 面向智能手机的可定制操作***组件的嵌入式*** | |
CN116643778B (zh) | 一种应用程序优化方法及电子设备 | |
CN117707543A (zh) | 一种应用安装包制作和安装方法、计算设备及存储介质 | |
CN103761118A (zh) | 一种智能卡及智能卡内部署应用的方法 | |
US20220326939A1 (en) | Mobile service upgrade method and apparatus, and terminal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20181015 Address after: 610041 Sichuan Chengdu high tech Zone No. 7 Tianhua 99, 4 floor 415. Patentee after: CHENGDU YALU TECHNOLOGY CO.,LTD. Address before: 100190 room 5098, block A, 9 Fengxiang street, Yang Song Town, Huairou District, Beijing. Patentee before: Brahmaputra Science and Technology Co.,Ltd. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160615 Termination date: 20210906 |
|
CF01 | Termination of patent right due to non-payment of annual fee |