著录项信息
专利名称 | java类预处理通信系统及java类预处理方法 |
申请号 | CN200910196087.3 | 申请日期 | 2009-09-22 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2010-06-30 | 公开/公告号 | CN101763257A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F9/44 | IPC分类号 | G;0;6;F;9;/;4;4;;;G;0;6;F;9;/;4;4;5查看分类表>
|
申请人 | 浙江数芳科技有限公司 | 申请人地址 | 浙江省杭州市西湖区文二路391号6层601室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 浙江数芳科技有限公司 | 当前权利人 | 浙江数芳科技有限公司 |
发明人 | 董希成 |
代理机构 | 上海汉声知识产权代理有限公司 | 代理人 | 胡晶 |
摘要
一种java类预处理通信系统,包括预处理中心和若干通信终端,预处理中心和通信终端通过无线网络连接,预处理中心用以对java类程序文件进行预处理,得到可执行应用程序文件,通信终端上安装有执行平台,可执行预处理中心提供的可执行应用程序文件。本发明通过预处理中心在pc上分担了应用程序在通信终端上的工作,程序运行前先在pc上分析好应用到的类,并对类信息进行排序,把类信息连接好进行映射处理,去除类信息的字符描述信息,使应用程序在通信终端上的内存需求小、启动和运行速度快。
1.一种java类预处理通信系统,其特征在于,包括:预处理中心和若干通信终端,所述预处理中心用以对java类程序文件进行预处理,得到可执行应用程序文件,其进一步包括一预处理服务器,所述预处理服务器包括:
java类库存储区:用于存储包括类名称、成员变量、成员方法在内的java类信息;
扫描处理单元:用以对java类程序文件进行扫描,分析其在运行中会应用到的类信息,并将应用到的类信息从预先存储的java类库中找到;
加载单元:用以将扫描处理单元从预先存储的java类库中找到的java类程序文件在运行中会应用到的类信息加载至应用程序文件的对应位置后得到可执行应用程序文件;
所述通信终端上设置有执行平台,执行平台包括虚拟机、应用程序文件列表和接口单元,其中,
应用程序文件列表:用于存储多个所述可执行应用程序文件,预处理中心提供的可执行应用程序文件可预先固化在所述执行平台内或者从预处理中心下载保存至应用程序文件列表中;
虚拟机:用于执行所述应用程序文件列表中的某一可执行应用程序文件;
接口单元:用于建立执行平台与通信终端的其它单元的通讯。
2.如权利要求1所述的系统,其特征在于,预处理服务器还进一步包括连接器,其连接器进一步包括:
排序处理单元:设置在扫描处理单元和加载单元之间,用以将找到的java类信息进行排序,包括每个类的成员变量排序、每个类的成员方法排序、每个类名排序;
映射处理单元:与所述排序处理单元连接,用以将排序后的类信息进行映射,包括每个类名、每个类的成员变量以及成员方法按照预先设定的规则分别对应一个序号;
组合处理单元:用以将对应的序号发送至加载单元,以便将对应的序号加载至该应用程序文件的对应位置后得到可执行应用程序文件。
3.如权利要求2所述的系统,其特征在于,预处理服务器还包括:
索引存储单元,用于存储类信息与序号的对应关系。
4.如权利要求3所述的系统,其特征在于,执行平台还包括:
转换单元,用于将可执行应用程序文件中的序号转换成对应的类信息。
5.如权利要求2所述的系统,其特征在于,所述序号为二进制代码。
6.一种通信终端,用于执行对java类程序文件进行预处理得到的可执行应用程序文件,对java类程序文件进行的预处理为:对java类程序文件进行扫描,分析其在运行中会应用到的类信息,并将应用到的类信息从预先存储的java类库中找到,将从预先存储的java类库中找到的java类程序文件在运行中会运用到的类信息加载至该应用程序文件的对应位置后得到可执行应用程序文件;其特征在于,所述通信终端上设置有执行平台,所述执行平台包括虚拟机、应用程序文件列表和接口单元,其中,
应用程序文件列表:用于存储多个所述可执行应用程序文件,所述可执行应用程序文件由一预处理中心提供,其可预先固化在所述执行平台内或者从预处理中心下载保存至应用程序文件列表中;
虚拟机:用于执行所述应用程序文件列表中的某一可执行应用程序文件;
接口单元:用于建立执行平台与通信终端的其它单元的通讯。
7.一种java类预处理方法,其特征在于,包括以下步骤:
(1)预处理中心对java类程序文件通过预处理中心中的扫描处理单元进行扫描,分析其在运行中会应用到的类信息,并将应用到的类信息从预先存储的java类库中找到;
(2)预处理中心将扫描处理单元从预先存储的java类库中找到的java类程序文件在运行中会应用到的类信息加载至一应用程序文件的对应位置后得到可执行应用程序文件;
(3)预处理中心提供的可执行应用程序文件可预先固化在执行平台内,通过执行平台装入通信终端中或者由通信终端直接从预处理中心下载后保存至应用程序文件列表中;
(4)当某一可执行应用程序被执行时,执行平台直接执行所述可执行应用程序文件。
8.如权利要求7所述的方法,其特征在于,步骤(1)和步骤(2)之间包括:
将找到的java类信息进行排序,包括每个类的成员变量排序、每个类的成员方法排序、每个类名排序;
将排序后的类信息进行映射,包括每个类名、每个类的成员变量以及成员方法按照预先设定的规则分别对应一个序号;
将对应的序号加载至该应用程序文件的对应位置后得到可执行应用程序文件。
9.如权利要求8所述的方法,其特征在于,步骤(4)还包括:
将可执行应用程序文件中的序号转换成对应的类信息后进行执行。
java类预处理通信系统及java类预处理方法 \n技术领域\n[0001] 本发明涉及通信领域,尤其涉及一种在运行前对java类程序文件进行静态连接器预处理的java类预处理通信系统及java类预处理方法。 \n背景技术\n[0002] J2ME(java 2 Micro Edition,java2平台微缩版)是java 2的一个组成部分,它与J2SE(标准版)、J2EE(企业版)并称,是一种高度优化的java运行环境,主要应用于消费类电子设备,例如蜂窝电话、可视电话、数字机顶盒和汽车导航系统等等,它将java语言的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。 [0003] 目前,通信终端等通信终端通过安装J2ME平台来实现上网等功能。 [0004] 请参阅图1,安装有J2ME平台11的通信终端包括J2ME虚拟机12、java类库13、多个应用java程序的应用程序文件列表14、接口单元15。其中, \n[0005] 接口单元15:用于建立J2ME平台11与通信终端的其它单元的通信。比如,通信终端包括通信模块、控制模块等。通过接口单元15建立J2ME平台11与通讯模块、控制模块之间的通信。 \n[0006] 应用程序文件列表14:用于存储支持java的多个应用程序。当该通信终端需要增加或扩展某一应用时,需要安装对应的应用程序。该些应用程序可以通过网络进行下载,也可以通过移动存储介质来安装。 \n[0007] java类库13:为程序员提供编程接口API,类库中存储编写和运行java程序的Java类信息。 \n[0008] J2ME虚拟机12进一步包括类加载器121和java执行引擎122。当接收到用户运行某一应用程序的请求时,类加载器121首先分析应用程序应用到的类,之后通过程序模块入口到java类库13中找到涉及到的类的类文件进行 加载,最后通过java执行引擎122将java语言转换成可执行代码进行执行,由此运行应用程序。 \n[0009] J2ME平台把整个java类库内置到通信终端中,但是,类库中的大部分资源是当前应用程序用不到的,可能其他应用程序用到,而java类库要有1兆大小,这就使得J2ME平台占用了通信终端大量的内存空间,导致通信终端内存空间的浪费。同时,由于J2ME虚拟机运行时要分析应用程序应用到的类并且动态加载类,使得应用程序的启动速度慢、加载效率低。而对于低端的通信终端(如CPU处理速度慢(ARM7的速度),内存小(1M以下)的通信终端)而言,则根本无法应用J2ME平台。 \n[0010] 并且,每一次启动某一应用程序时,都需要将该应用程序涉及到的类通过类加载器从java类库中进行动态加载,存在占用时间且处理效率低的技术问题。 [0011] 除上述的缺点外,现有J2ME平台的应用程序都是采用java语言编写,容易被反编译,不利于应用程序提供商的知识产权保护。 \n[0012] 综上所述,现有J2ME平台存在占用通信终端内存空间大、启动速度慢、加载效率低、不能应用于低端通信终端且应用程序容易被反编译的技术问题。 \n发明内容\n[0013] 本发明的目的在于提供一种java类预处理通信系统,以解决现有技术中J2ME平台占用通信终端内存空间大、启动速度慢、加载效率低、不能应用于低端通信终端且应用程序容易被反编译的技术问题。 \n[0014] 本发明的另一目的在于提供一种通信终端,以解决现有技术中J2ME平台占用通信终端内存空间大、启动速度慢、加载效率低、不能应用于低端通信终端且应用程序容易被反编译的技术问题。 \n[0015] 本发明的又一目的在于提供一种java类预处理方法,以解决现有技术中J2ME平台占用通信终端内存空间大、启动速度慢、加载效率低、不能应用于低端通信终端且应用程序容易被反编译的技术问题。 \n[0016] 为达到上述目的,本发明提供一种java类预处理通信系统,包括:预处理中心和若干通信终端, \n[0017] 预处理中心用以对java类程序文件进行预处理,得到可执行应用程序文件,其进一步包括一预处理服务器,预处理服务器包括: \n[0018] java类库存储区:用于存储包括类名称、成员变量、成员方法在内的java类信息; \n[0019] 扫描处理单元:用以对java类程序文件进行扫描,分析其在运行中会应用到的类信息,并将应用到的类信息从预先存储的java类库中找到; \n[0020] 加载单元:用以加载至该应用程序文件的对应位置后得到可执行应用程序文件; [0021] 通信终端上设置有执行平台,执行平台包括虚拟机和应用程序文件列表,应用程序文件列表包括多个可执行应用程序文件,其中, \n[0022] 应用程序文件列表:用于存储多个可执行应用程序文件,预处理中心提供的可执行应用程序文件可预先固化在执行平台内或者从预处理中心下载保存至应用程序文件列表中; \n[0023] 虚拟机:用于执行应用程序文件列表中的某一可执行应用程序文件; [0024] 接口单元:用于建立执行平台与通信终端的其它单元的通讯。 [0025] 依照本发明较佳实施例所述的系统,其预处理服务器还进一步包括连接器,其连接器进一步包括: \n[0026] 排序处理单元:设置在扫描处理单元和加载单元之间,用以将找到的java类信息进行排序,包括每个类的成员变量排序、每个类的成员方法排序、每个类名排序; [0027] 映射处理单元:与排序处理单元连接,用以将排序后的类信息进行映射,包括映射对每个类名、每个类的成员变量以及成员方法按照预先设定的规则分别对应一个序号; [0028] 组合处理单元:用以将对应的序号发送至加载单元,以便将对应的序号加载至该应用程序文件的对应位置后得到可执行应用程序文件。 \n[0029] 依照本发明较佳实施例所述的系统,其预处理服务器还包括: [0030] 索引存储单元,用于存储类信息与序号的对应关系。 \n[0031] 依照本发明较佳实施例所述的系统,其执行平台还包括: \n[0032] 转换单元,用于将可执行应用程序文件中的序号转换成对应的类信息。 [0033] 依照本发明较佳实施例所述的系统,其序号为二进制代码。 \n[0034] 本发明还提供一种通信终端,用于执行对java类程序文件进行预处理得到的可执行应用程序文件,通信终端上设置有执行平台,执行平台包括虚拟机、应用程序文件列表和接口单元,应用程序文件列表包括多个可执行应用程序文件,其中, [0035] 应用程序文件列表:用于存储多个可执行应用程序文件,可执行应用程序文件由一预处理中心提供,其可预先固化在执行平台内或者从预处理中心下载保存至应用程序文件列表中; \n[0036] 虚拟机:用于执行应用程序文件列表中的某一可执行应用程序文件; [0037] 接口单元:用于建立执行平台与通信终端的其它单元的通讯。 [0038] 依照本发明较佳实施例所述的通信终端,其执行平台还包括: [0039] 转换单元,用于将可执行应用程序文件中的序号转换成对应的类信息。 [0040] 本发明又一种java类预处理方法,包括以下步骤: \n[0041] (1)预处理中心对java类程序文件进行扫描,分析其在运行中会应用到的类信息,并将应用到的类信息从预先存储的java类库中找到; \n[0042] (2)预处理中心加载至该应用程序文件的对应位置后得到可执行应用程序文件; [0043] (3)预处理中心提供的可执行应用程序可预先固化在执行平台内,通过执行平台装入通信终端中或者由通信终端直接从预处理中心下载后保存至应用程序文件列表中; [0044] (4)当某一可执行应用程序被执行时,执行平台直接执行应用程序文件。 [0045] 依照本发明较佳实施例所述的方法,其步骤(1)和步骤(2)之间包括: [0046] 将找到的java类信息进行排序,包括每个类的成员变量排序、每个类的成员方法排序、每个类名排序; \n[0047] 将排序后的类信息进行映射,包括映射对每个类名、每个类的成员变量以及成员方法按照预先设定的规则分别对应一个序号; \n[0048] 将对应的序号加载至该应用程序文件的对应位置后得到可执行应用程序文件。 [0049] 依照本发明较佳实施例所述的方法,步骤(4)还包括: \n[0050] 将可执行应用程序文件中的序号转换成对应的类信息后进行执行。 [0051] 本发明通过预处理中心对java类程序文件进行静态连接器预处理,在pc上分担了应用程序在通信终端上的工作,程序运行前先在pc上分析好类信息,并把应用程序真正应用到的类进行静态连接处理生成可执行应用程序文件,通信终端上的虚拟机直接运行可执行应用程序文件,不必再将整个java类库内置到通信终端中,减少了对通信终端内存空间的占用,并且,启动时应用程序时无需再将应用程序涉及到的类通过类加载器从java类库中进行加载,提高了运行速度。另外,本发明将类信息的字符串信息替换成二进制代码,进一步减少了内存的开销,大大提高了运行速度。与现有技术相比,本发明具有以下的有益效果: \n[0052] 1、本发明使应用程序运行时占用通信终端内存空间少、启动速度快、加载效率高、用户体验好。 \n[0053] 2、本发明使应用程序可在低端通信终端(如CPU处理速度慢(ARM7的速度),内存小(1M以下)的通信终端)上流畅运行,适用范围广泛。 \n[0054] 3、本发明得到的可执行应用程序文件无法被反编译,无法破解网络协议,有利于应用程序提供商的知识产权保护。 \n附图说明\n[0055] 图1为现有安装安装J2ME平台的通信终端的结构示意图; \n[0056] 图2为本发明第一种java类预处理通信系统的原理结构示意图; [0057] 图3为本发明第一种java类预处理方法的原理流程图; \n[0058] 图4为本发明第二种java类预处理通信系统的原理结构示意图; [0059] 图5为本发明第二种java类预处理方法的原理流程图。 \n具体实施方式\n[0060] 以下结和附图,具体说明本发明。 \n[0061] 请参阅图2,其为本发明java类预处理通信系统的一种实施方式的原理结构示意图。该系统包括:预处理中心21和若干通信终端22,该预处理中心21和通信终端22通过无线网络连接。其中, \n[0062] 预处理中心21用以对java类程序文件进行预处理,得到可执行应用程序文件,其进一步包括一预处理服务器211,预处理服务器211包括: \n[0063] java类库存储区212,用于存储包括类名称、成员变量、成员方法在内的java类信息。 \n[0064] 扫描处理单元213,用以对java类程序文件进行扫描,分析其在运行中会应用到的类信息,并将应用到的类信息从预先存储的java类库中找到。 \n[0065] 加载单元214,用以加载至该应用程序文件的对应位置后得到可执行应用程序文件。 \n[0066] 通信终端22上设置有执行平台221,执行平台221包括虚拟机222、应用程序文件列表223和接口单元224,应用程序文件列表223包括多个可执行应用程序文件。其中, [0067] 应用程序文件列表223,用于存储多个可执行应用程序文件,预处理中心21提供的可执行应用程序文件可预先固化在执行平台221内或者从预处理中心21下载保存至应用程序文件列表223中。 \n[0068] 虚拟机222,用于执行应用程序文件列表223中的某一可执行应用程序文件。 [0069] 接口单元224,用于建立执行平台221与通信终端22的其它单元的通讯。 [0070] 基于上述系统,本发明提供一种java类预处理方法,请参阅图3,该java类预处理方法包括以下步骤: \n[0071] S11:预处理中心对java类程序文件进行扫描,分析其在运行中会应用到的类信息,并将应用到的类信息从预先存储的java类库中找到。 \n[0072] S12:预处理中心加载至该应用程序文件的对应位置后得到可执行应用程序文件。 [0073] S13:预处理中心提供的可执行应用程序可预先固化在执行平台内,通过执行平台装入通信终端中或者由通信终端直接从预处理中心下载后保存至应用程序文件列表中。 [0074] S14:当某一可执行应用程序被执行时,执行平台直接执行应用程序文件。上述的方案,是本发明采用的一个较佳的实施方式。java类预处理通信系统根据应用程序真正应用到的类先在pc上对应用程序应用到的类进行提取,并加载至该应用程序文件的对应位置后得到可执行应用程序文件,不必再把整个java类库内置到通信终端中,通信终端上运行的是应用程序真正用到的资源。因此,本发明使应用程序在通信终端上的内存需求小、启动和运行速度快,即使是在低端通信终端上也可流畅运行。 \n[0075] 请参阅图4,本发明的java类预处理通信系统的另一种实施方式的原理结构示意图。与上述方案相比,上述的预处理服务器211还包括连接器和索引存储单元218,连接器包括:排序处理单元215、映射处理单元216和组合处理单元217。其中, [0076] 排序处理单元215,设置在扫描处理单元213和加载单元214之间,用以将找到的java类信息进行排序,包括每个类的成员变量排序、每个类的成员方法排序、每个类名排序。 \n[0077] 映射处理单元216,与排序处理单元215连接,用以将排序后的类信息进行映射,包括映射对每个类名、每个类的成员变量以及成员方法按照预先设定的规则分别对应一个序号。在本发明的一较佳实施例中,各序号为二进制代码。 \n[0078] 组合处理单元217,用以将对应的序号发送至加载单元214,以便将对应的序号加载至该应用程序文件的对应位置后得到可执行应用程序文件。 \n[0079] 索引存储单元218,用于存储类信息与序号的对应关系。 \n[0080] 在本实施例中,执行平台还包括一转换单元225,转换单元225用于将可执行应用程序文件中的序号转换成对应的类信息。当运行某一应用程序时,转换单元225先将可执行应用程序文件中的序号转换成对应的类信息再由虚拟机222执行应用程序文件,从而运行应用程序。 \n[0081] 本实施例的其他结构均与上述的第一种实施方式相同,在此不再赘述。 [0082] 基于上述的系统,本发明又提供一种java类预处理方法,请参阅图5,该java类预处理方法包括以下步骤: \n[0083] S21:预处理中心对java类程序文件进行扫描,分析其在运行中会应用到的类信息,并将应用到的类信息从预先存储的java类库中找到。 \n[0084] S22:将找到的java类信息进行排序,包括每个类的成员变量排序、每个类的成员方法排序、每个类名排序。 \n[0085] S23:将排序后的类信息进行映射,包括映射对每个类名、每个类的成员变量以及成员方法按照预先设定的规则分别对应一个序号。 \n[0086] S24:将对应的序号加载至该应用程序文件的对应位置后得到可执行应用程序文件。 \n[0087] S25:预处理中心提供的可执行应用程序文件可预先固化在执行平台内,通过执行平台装入通信终端中或者由通信终端直接从预处理中心下载后保存至应用程序文件列表中。 \n[0088] S26:当某一可执行应用程序被执行时,执行平台将可执行应用程序文件中的序号转换成对应的类信息后进行执行。 \n[0089] 上述的方案,是本发明采用的一个最佳实施例。预处理中心210进一步对类信息进行映射处理,去除类信息的字符描述信息,进一步减小内存的开销,提高运行速度。 [0090] 名称在程序运行的过程中只是一个标识,只要唯一不冲突程序照样能运行的很好,所以上述实施例的做法就是把名称都替换成唯一的ID号,同样程序能运行正常。通常情况下,一个类信息的字符串信息占了50%左右,因此 名称替换成ID号后减少了内存的开销。同时,将名称替换成ID号后,如果要访问方法或者函数有关信息的时候就是数组索引的,而不再是字符串查找匹配,因此启动速度大大提高。 \n[0091] 在上述两个方案中,预处理中心21和通信终端22都是通过无线网络连接,但是,需要说明的是,本发明并不限定预处理中心21和通信终端22的具体连接方式,现有技术中任何能够实现预处理中心21和通信终端22之间进行通信的技术均应落在本发明的保护范围内。 \n[0092] 针对上述的java类预处理通信系统,本发明还提供一种通信终端,用于执行对java类程序文件进行预处理得到的可执行应用程序文件,通信终端上设置有执行平台,执行平台包括虚拟机、应用程序文件列表和接口单元,应用程序文件列表包括多个可执行应用程序文件,其中, \n[0093] 应用程序文件列表:用于存储多个可执行应用程序文件,可执行应用程序文件由一预处理中心提供,其可预先固化在执行平台内或者从预处理中心下载保存至应用程序文件列表中; \n[0094] 虚拟机:用于执行应用程序文件列表中的某一可执行应用程序文件; [0095] 接口单元:用于建立执行平台与通信终端的其它单元的通讯。 [0096] 除上述的结构外,在本发明的一实施例中,执行平台还包括一转换单元,用于将可执行应用程序文件中的序号转换成对应的类信息。 \n[0097] 本发明通过预处理中心对java类程序文件进行静态连接器预处理,在pc上分担了应用程序在通信终端上的工作,程序运行前先在pc上分析好类信息,并把应用程序真正应用到的类进行静态连接处理生成可执行应用程序文件,通信终端上的虚拟机直接运行可执行应用程序文件,不必再将整个java类库内置到通信终端中,减少了对通信终端内存空间的占用,并且,启动时应用程序时无需再将应用程序涉及到的类通过类加载器从java类库中进行加载,提高了运行速度。另外,本发明将类信息的字符串信息替换成二进制代码,进一步减少了内存的开销,大大提高了运行速度。与现有技术相比,本发明具有以下的有益效果: \n[0098] 1、本发明使应用程序运行时占用通信终端内存空间少、启动速度快、加 载效率高、用户体验好。 \n[0099] 2、本发明使应用程序可在低端通信终端(如CPU处理速度慢(ARM7的速度),内存小(1M以下)的通信终端)上流畅运行,适用范围广泛。 \n[0100] 3、本发明得到的可执行应用程序文件无法被反编译,无法破解网络协议,有利于应用程序提供商的知识产权保护。 \n[0101] 以上公开的仅为本发明的几个具体实施例,但本发明并非局限于此,任何本领域的技术人员能思之的变化,都应落在本发明的保护范围内。
法律信息
- 2019-09-10
未缴年费专利权终止
IPC(主分类): G06F 9/44
专利号: ZL 200910196087.3
申请日: 2009.09.22
授权公告日: 2013.10.16
- 2013-10-16
- 2010-12-08
实质审查的生效
IPC(主分类): G06F 9/44
专利申请号: 200910196087.3
申请日: 2009.09.22
- 2010-06-30
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-07-18
|
2006-01-13
| | |
2
| |
2006-05-31
|
2004-01-14
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |