專(zhuān)利名稱(chēng):java類(lèi)預(yù)處理通信系統(tǒng)及java類(lèi)預(yù)處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種在運(yùn)行前對(duì)java類(lèi)程序文件進(jìn)行靜態(tài)連接 器預(yù)處理的Java類(lèi)預(yù)處理通信系統(tǒng)及Java類(lèi)預(yù)處理方法。
背景技術(shù):
J2ME(java 2 Micro Edition, java2平臺(tái)微縮版)是Java 2的一個(gè)組成部分,它
與J2SE (標(biāo)準(zhǔn)版)、J2EE (企業(yè)版)并稱(chēng),是一種高度優(yōu)化的Java運(yùn)行環(huán)境,主要應(yīng)用于消
費(fèi)類(lèi)電子設(shè)備,例如蜂窩電話(huà)、可視電話(huà)、數(shù)字機(jī)頂盒和汽車(chē)導(dǎo)航系統(tǒng)等等,它將java語(yǔ)言
的與平臺(tái)無(wú)關(guān)的特性移植到小型電子設(shè)備上,允許移動(dòng)無(wú)線(xiàn)設(shè)備之間共享應(yīng)用程序。 目前,通信終端等通信終端通過(guò)安裝J2ME平臺(tái)來(lái)實(shí)現(xiàn)上網(wǎng)等功能。 請(qǐng)參閱圖1,安裝有J2ME平臺(tái)11的通信終端包括J2ME虛擬機(jī)12、 Java類(lèi)庫(kù)13、
多個(gè)應(yīng)用java程序的應(yīng)用程序文件列表14、接口單元15。其中, 接口單元15 :用于建立J2ME平臺(tái)11與通信終端的其它單元的通信。比如,通信 終端包括通信模塊、控制模塊等。通過(guò)接口單元15建立J2ME平臺(tái)11與通訊模塊、控制模 塊之間的通信。 應(yīng)用程序文件列表14 :用于存儲(chǔ)支持Java的多個(gè)應(yīng)用程序。當(dāng)該通信終端需要 增加或擴(kuò)展某一應(yīng)用時(shí),需要安裝對(duì)應(yīng)的應(yīng)用程序。該些應(yīng)用程序可以通過(guò)網(wǎng)絡(luò)進(jìn)行下載, 也可以通過(guò)移動(dòng)存儲(chǔ)介質(zhì)來(lái)安裝。 java類(lèi)庫(kù)13 :為程序員提供編程接口 API,類(lèi)庫(kù)中存儲(chǔ)編寫(xiě)和運(yùn)行java程序的 Java類(lèi)信息。 J2ME虛擬機(jī)12進(jìn)一步包括類(lèi)加載器121和Java執(zhí)行引擎122。當(dāng)接收到用戶(hù)運(yùn) 行某一應(yīng)用程序的請(qǐng)求時(shí),類(lèi)加載器121首先分析應(yīng)用程序應(yīng)用到的類(lèi),之后通過(guò)程序模 塊入口到Java類(lèi)庫(kù)13中找到涉及到的類(lèi)的類(lèi)文件進(jìn)行加載,最后通過(guò)java執(zhí)行引擎122 將Java語(yǔ)言轉(zhuǎn)換成可執(zhí)行代碼進(jìn)行執(zhí)行,由此運(yùn)行應(yīng)用程序。 J2ME平臺(tái)把整個(gè)java類(lèi)庫(kù)內(nèi)置到通信終端中,但是,類(lèi)庫(kù)中的大部分資源是當(dāng)前 應(yīng)用程序用不到的,可能其他應(yīng)用程序用到,而java類(lèi)庫(kù)要有1兆大小,這就使得J2ME平 臺(tái)占用了通信終端大量的內(nèi)存空間,導(dǎo)致通信終端內(nèi)存空間的浪費(fèi)。同時(shí),由于J2ME虛擬 機(jī)運(yùn)行時(shí)要分析應(yīng)用程序應(yīng)用到的類(lèi)并且動(dòng)態(tài)加載類(lèi),使得應(yīng)用程序的啟動(dòng)速度慢、加載 效率低。而對(duì)于低端的通信終端(如CPU處理速度慢(ARM7的速度),內(nèi)存小(1M以下)的 通信終端)而言,則根本無(wú)法應(yīng)用J2ME平臺(tái)。 并且,每一次啟動(dòng)某一應(yīng)用程序時(shí),都需要將該應(yīng)用程序涉及到的類(lèi)通過(guò)類(lèi)加載 器從Java類(lèi)庫(kù)中進(jìn)行動(dòng)態(tài)加載,存在占用時(shí)間且處理效率低的技術(shù)問(wèn)題。
除上述的缺點(diǎn)外,現(xiàn)有J2ME平臺(tái)的應(yīng)用程序都是采用Java語(yǔ)言編寫(xiě),容易被反編 譯,不利于應(yīng)用程序提供商的知識(shí)產(chǎn)權(quán)保護(hù)。 綜上所述,現(xiàn)有J2ME平臺(tái)存在占用通信終端內(nèi)存空間大、啟動(dòng)速度慢、加載效率 低、不能應(yīng)用于低端通信終端且應(yīng)用程序容易被反編譯的技術(shù)問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種Java類(lèi)預(yù)處理通信系統(tǒng),以解決現(xiàn)有技術(shù)中J2ME平 臺(tái)占用通信終端內(nèi)存空間大、啟動(dòng)速度慢、加載效率低、不能應(yīng)用于低端通信終端且應(yīng)用程 序容易被反編譯的技術(shù)問(wèn)題。 本發(fā)明的另一目的在于提供一種通信終端,以解決現(xiàn)有技術(shù)中J2ME平臺(tái)占用通 信終端內(nèi)存空間大、啟動(dòng)速度慢、加載效率低、不能應(yīng)用于低端通信終端且應(yīng)用程序容易被 反編譯的技術(shù)問(wèn)題。 本發(fā)明的又一 目的在于提供一種Java類(lèi)預(yù)處理方法,以解決現(xiàn)有技術(shù)中J2ME平 臺(tái)占用通信終端內(nèi)存空間大、啟動(dòng)速度慢、加載效率低、不能應(yīng)用于低端通信終端且應(yīng)用程 序容易被反編譯的技術(shù)問(wèn)題。 為達(dá)到上述目的,本發(fā)明提供一種java類(lèi)預(yù)處理通信系統(tǒng),包括預(yù)處理中心和 若干通信終端, 預(yù)處理中心用以對(duì)Java類(lèi)程序文件進(jìn)行預(yù)處理,得到可執(zhí)行應(yīng)用程序文件,其進(jìn) 一步包括一預(yù)處理服務(wù)器,預(yù)處理服務(wù)器包括 java類(lèi)庫(kù)存儲(chǔ)區(qū)用于存儲(chǔ)包括類(lèi)名稱(chēng)、成員變量、成員方法在內(nèi)的Java類(lèi)信 息; 掃描處理單元用以對(duì)java類(lèi)程序文件進(jìn)行掃描,分析其在運(yùn)行中會(huì)應(yīng)用到的類(lèi) 信息,并將應(yīng)用到的類(lèi)信息從預(yù)先存儲(chǔ)的java類(lèi)庫(kù)中找到; 加載單元用以加載至該應(yīng)用程序文件的對(duì)應(yīng)位置后得到可執(zhí)行應(yīng)用程序文件;
通信終端上設(shè)置有執(zhí)行平臺(tái),執(zhí)行平臺(tái)包括虛擬機(jī)和應(yīng)用程序文件列表,應(yīng)用程 序文件列表包括多個(gè)可執(zhí)行應(yīng)用程序文件,其中, 應(yīng)用程序文件列表用于存儲(chǔ)多個(gè)可執(zhí)行應(yīng)用程序文件,預(yù)處理中心提供的可執(zhí) 行應(yīng)用程序文件可預(yù)先固化在執(zhí)行平臺(tái)內(nèi)或者從預(yù)處理中心下載保存至應(yīng)用程序文件列 表中; 虛擬機(jī)用于執(zhí)行應(yīng)用程序文件列表中的某一可執(zhí)行應(yīng)用程序文件;
接口單元用于建立執(zhí)行平臺(tái)與通信終端的其它單元的通訊。 依照本發(fā)明較佳實(shí)施例所述的系統(tǒng),其預(yù)處理服務(wù)器還進(jìn)一步包括連接器,其連 接器進(jìn)一步包括 排序處理單元設(shè)置在掃描處理單元和加載單元之間,用以將找到的java類(lèi)信息
進(jìn)行排序,包括每個(gè)類(lèi)的成員變量排序、每個(gè)類(lèi)的成員方法排序、每個(gè)類(lèi)名排序; 映射處理單元與排序處理單元連接,用以將排序后的類(lèi)信息進(jìn)行映射,包括映射
對(duì)每個(gè)類(lèi)名、每個(gè)類(lèi)的成員變量以及成員方法按照預(yù)先設(shè)定的規(guī)則分別對(duì)應(yīng)一個(gè)序號(hào); 組合處理單元用以將對(duì)應(yīng)的序號(hào)發(fā)送至加載單元,以便將對(duì)應(yīng)的序號(hào)加載至該
應(yīng)用程序文件的對(duì)應(yīng)位置后得到可執(zhí)行應(yīng)用程序文件。
依照本發(fā)明較佳實(shí)施例所述的系統(tǒng),其預(yù)處理服務(wù)器還包括 索引存儲(chǔ)單元,用于存儲(chǔ)類(lèi)信息與序號(hào)的對(duì)應(yīng)關(guān)系。 依照本發(fā)明較佳實(shí)施例所述的系統(tǒng),其執(zhí)行平臺(tái)還包括 轉(zhuǎn)換單元,用于將可執(zhí)行應(yīng)用程序文件中的序號(hào)轉(zhuǎn)換成對(duì)應(yīng)的類(lèi)信息。
依照本發(fā)明較佳實(shí)施例所述的系統(tǒng),其序號(hào)為二進(jìn)制代碼。 本發(fā)明還提供一種通信終端,用于執(zhí)行對(duì)java類(lèi)程序文件進(jìn)行預(yù)處理得到的可 執(zhí)行應(yīng)用程序文件,通信終端上設(shè)置有執(zhí)行平臺(tái),執(zhí)行平臺(tái)包括虛擬機(jī)、應(yīng)用程序文件列表 和接口單元,應(yīng)用程序文件列表包括多個(gè)可執(zhí)行應(yīng)用程序文件,其中, 應(yīng)用程序文件列表用于存儲(chǔ)多個(gè)可執(zhí)行應(yīng)用程序文件,可執(zhí)行應(yīng)用程序文件由 一預(yù)處理中心提供,其可預(yù)先固化在執(zhí)行平臺(tái)內(nèi)或者從預(yù)處理中心下載保存至應(yīng)用程序文 件列表中; 虛擬機(jī)用于執(zhí)行應(yīng)用程序文件列表中的某一可執(zhí)行應(yīng)用程序文件;
接口單元用于建立執(zhí)行平臺(tái)與通信終端的其它單元的通訊。
依照本發(fā)明較佳實(shí)施例所述的通信終端,其執(zhí)行平臺(tái)還包括
轉(zhuǎn)換單元,用于將可執(zhí)行應(yīng)用程序文件中的序號(hào)轉(zhuǎn)換成對(duì)應(yīng)的類(lèi)信息。
本發(fā)明又一種Java類(lèi)預(yù)處理方法,包括以下步驟 (1)預(yù)處理中心對(duì)java類(lèi)程序文件進(jìn)行掃描,分析其在運(yùn)行中會(huì)應(yīng)用到的類(lèi)信 息,并將應(yīng)用到的類(lèi)信息從預(yù)先存儲(chǔ)的java類(lèi)庫(kù)中找到; (2)預(yù)處理中心加載至該應(yīng)用程序文件的對(duì)應(yīng)位置后得到可執(zhí)行應(yīng)用程序文件;
(3)預(yù)處理中心提供的可執(zhí)行應(yīng)用程序可預(yù)先固化在執(zhí)行平臺(tái)內(nèi),通過(guò)執(zhí)行平臺(tái)
裝入通信終端中或者由通信終端直接從預(yù)處理中心下載后保存至應(yīng)用程序文件列表中;
(4)當(dāng)某一可執(zhí)行應(yīng)用程序被執(zhí)行時(shí),執(zhí)行平臺(tái)直接執(zhí)行應(yīng)用程序文件。 依照本發(fā)明較佳實(shí)施例所述的方法,其步驟(1)和步驟(2)之間包括 將找到的java類(lèi)信息進(jìn)行排序,包括每個(gè)類(lèi)的成員變量排序、每個(gè)類(lèi)的成員方法
排序、每個(gè)類(lèi)名排序; 將排序后的類(lèi)信息進(jìn)行映射,包括映射對(duì)每個(gè)類(lèi)名、每個(gè)類(lèi)的成員變量以及成員 方法按照預(yù)先設(shè)定的規(guī)則分別對(duì)應(yīng)一個(gè)序號(hào); 將對(duì)應(yīng)的序號(hào)加載至該應(yīng)用程序文件的對(duì)應(yīng)位置后得到可執(zhí)行應(yīng)用程序文件。 依照本發(fā)明較佳實(shí)施例所述的方法,步驟(4)還包括 將可執(zhí)行應(yīng)用程序文件中的序號(hào)轉(zhuǎn)換成對(duì)應(yīng)的類(lèi)信息后進(jìn)行執(zhí)行。 本發(fā)明通過(guò)預(yù)處理中心對(duì)Java類(lèi)程序文件進(jìn)行靜態(tài)連接器預(yù)處理,在pc上分擔(dān)
了應(yīng)用程序在通信終端上的工作,程序運(yùn)行前先在pc上分析好類(lèi)信息,并把應(yīng)用程序真正
應(yīng)用到的類(lèi)進(jìn)行靜態(tài)連接處理生成可執(zhí)行應(yīng)用程序文件,通信終端上的虛擬機(jī)直接運(yùn)行可
執(zhí)行應(yīng)用程序文件,不必再將整個(gè)java類(lèi)庫(kù)內(nèi)置到通信終端中,減少了對(duì)通信終端內(nèi)存空
間的占用,并且,啟動(dòng)時(shí)應(yīng)用程序時(shí)無(wú)需再將應(yīng)用程序涉及到的類(lèi)通過(guò)類(lèi)加載器從java類(lèi)
庫(kù)中進(jìn)行加載,提高了運(yùn)行速度。另外,本發(fā)明將類(lèi)信息的字符串信息替換成二進(jìn)制代碼,
進(jìn)一步減少了內(nèi)存的開(kāi)銷(xiāo),大大提高了運(yùn)行速度。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下的有益
效果 1、本發(fā)明使應(yīng)用程序運(yùn)行時(shí)占用通信終端內(nèi)存空間少、啟動(dòng)速度快、加載效率高、 用戶(hù)體驗(yàn)好。 2、本發(fā)明使應(yīng)用程序可在低端通信終端(如CPU處理速度慢(ARM7的速度),內(nèi)存 小(1M以下)的通信終端)上流暢運(yùn)行,適用范圍廣泛。 3、本發(fā)明得到的可執(zhí)行應(yīng)用程序文件無(wú)法被反編譯,無(wú)法破解網(wǎng)絡(luò)協(xié)議,有利于應(yīng)用程序提供商的知識(shí)產(chǎn)權(quán)保護(hù)。
圖1為現(xiàn)有安裝安裝J2ME平臺(tái)的通信終端的結(jié)構(gòu)示意圖;
圖2為本發(fā)明第一種Java類(lèi)預(yù)處理通信系統(tǒng)的原理結(jié)構(gòu)示意圖;
圖3為本發(fā)明第一種Java類(lèi)預(yù)處理方法的原理流程圖;
圖4為本發(fā)明第二種Java類(lèi)預(yù)處理通信系統(tǒng)的原理結(jié)構(gòu)示意圖;
圖5為本發(fā)明第二種Java類(lèi)預(yù)處理方法的原理流程圖。
具體實(shí)施例方式以下結(jié)和附圖,具體說(shuō)明本發(fā)明。 請(qǐng)參閱圖2,其為本發(fā)明java類(lèi)預(yù)處理通信系統(tǒng)的一種實(shí)施方式的原理結(jié)構(gòu)示意 圖。該系統(tǒng)包括預(yù)處理中心21和若干通信終端22,該預(yù)處理中心21和通信終端22通過(guò) 無(wú)線(xiàn)網(wǎng)絡(luò)連接。其中, 預(yù)處理中心21用以對(duì)Java類(lèi)程序文件進(jìn)行預(yù)處理,得到可執(zhí)行應(yīng)用程序文件,其 進(jìn)一步包括一預(yù)處理服務(wù)器211,預(yù)處理服務(wù)器211包括 java類(lèi)庫(kù)存儲(chǔ)區(qū)212,用于存儲(chǔ)包括類(lèi)名稱(chēng)、成員變量、成員方法在內(nèi)的java類(lèi)信 息。 掃描處理單元213,用以對(duì)java類(lèi)程序文件進(jìn)行掃描,分析其在運(yùn)行中會(huì)應(yīng)用到 的類(lèi)信息,并將應(yīng)用到的類(lèi)信息從預(yù)先存儲(chǔ)的Java類(lèi)庫(kù)中找到。 加載單元214,用以加載至該應(yīng)用程序文件的對(duì)應(yīng)位置后得到可執(zhí)行應(yīng)用程序文 件。 通信終端22上設(shè)置有執(zhí)行平臺(tái)221,執(zhí)行平臺(tái)221包括虛擬機(jī)222、應(yīng)用程序文件 列表223和接口單元224,應(yīng)用程序文件列表223包括多個(gè)可執(zhí)行應(yīng)用程序文件。其中,
應(yīng)用程序文件列表223,用于存儲(chǔ)多個(gè)可執(zhí)行應(yīng)用程序文件,預(yù)處理中心21提供 的可執(zhí)行應(yīng)用程序文件可預(yù)先固化在執(zhí)行平臺(tái)221內(nèi)或者從預(yù)處理中心21下載保存至應(yīng) 用程序文件列表223中。 虛擬機(jī)222,用于執(zhí)行應(yīng)用程序文件列表223中的某一可執(zhí)行應(yīng)用程序文件。
接口單元224,用于建立執(zhí)行平臺(tái)221與通信終端22的其它單元的通訊。
基于上述系統(tǒng),本發(fā)明提供一種java類(lèi)預(yù)處理方法,請(qǐng)參閱圖3,該java類(lèi)預(yù)處理 方法包括以下步驟 Sll :預(yù)處理中心對(duì)java類(lèi)程序文件進(jìn)行掃描,分析其在運(yùn)行中會(huì)應(yīng)用到的類(lèi)信 息,并將應(yīng)用到的類(lèi)信息從預(yù)先存儲(chǔ)的java類(lèi)庫(kù)中找到。 S12 :預(yù)處理中心加載至該應(yīng)用程序文件的對(duì)應(yīng)位置后得到可執(zhí)行應(yīng)用程序文件。
S13 :預(yù)處理中心提供的可執(zhí)行應(yīng)用程序可預(yù)先固化在執(zhí)行平臺(tái)內(nèi),通過(guò)執(zhí)行平臺(tái) 裝入通信終端中或者由通信終端直接從預(yù)處理中心下載后保存至應(yīng)用程序文件列表中。
S14:當(dāng)某一可執(zhí)行應(yīng)用程序被執(zhí)行時(shí),執(zhí)行平臺(tái)直接執(zhí)行應(yīng)用程序文件。上述的 方案,是本發(fā)明采用的一個(gè)較佳的實(shí)施方式。java類(lèi)預(yù)處理通信系統(tǒng)根據(jù)應(yīng)用程序真正應(yīng) 用到的類(lèi)先在pc上對(duì)應(yīng)用程序應(yīng)用到的類(lèi)進(jìn)行提取,并加載至該應(yīng)用程序文件的對(duì)應(yīng)位置后得到可執(zhí)行應(yīng)用程序文件,不必再把整個(gè)Java類(lèi)庫(kù)內(nèi)置到通信終端中,通信終端上運(yùn) 行的是應(yīng)用程序真正用到的資源。因此,本發(fā)明使應(yīng)用程序在通信終端上的內(nèi)存需求小、啟 動(dòng)和運(yùn)行速度快,即使是在低端通信終端上也可流暢運(yùn)行。 請(qǐng)參閱圖4,本發(fā)明的java類(lèi)預(yù)處理通信系統(tǒng)的另一種實(shí)施方式的原理結(jié)構(gòu)示意
圖。與上述方案相比,上述的預(yù)處理服務(wù)器211還包括連接器和索引存儲(chǔ)單元218,連接器
包括排序處理單元215、映射處理單元216和組合處理單元217。其中, 排序處理單元215,設(shè)置在掃描處理單元213和加載單元214之間,用以將找到的
java類(lèi)信息進(jìn)行排序,包括每個(gè)類(lèi)的成員變量排序、每個(gè)類(lèi)的成員方法排序、每個(gè)類(lèi)名排序。 映射處理單元216,與排序處理單元215連接,用以將排序后的類(lèi)信息進(jìn)行映射, 包括映射對(duì)每個(gè)類(lèi)名、每個(gè)類(lèi)的成員變量以及成員方法按照預(yù)先設(shè)定的規(guī)則分別對(duì)應(yīng)一個(gè) 序號(hào)。在本發(fā)明的一較佳實(shí)施例中,各序號(hào)為二進(jìn)制代碼。 組合處理單元217,用以將對(duì)應(yīng)的序號(hào)發(fā)送至加載單元214,以便將對(duì)應(yīng)的序號(hào)加
載至該應(yīng)用程序文件的對(duì)應(yīng)位置后得到可執(zhí)行應(yīng)用程序文件。 索引存儲(chǔ)單元218,用于存儲(chǔ)類(lèi)信息與序號(hào)的對(duì)應(yīng)關(guān)系。 在本實(shí)施例中,執(zhí)行平臺(tái)還包括一轉(zhuǎn)換單元225,轉(zhuǎn)換單元225用于將可執(zhí)行應(yīng)用 程序文件中的序號(hào)轉(zhuǎn)換成對(duì)應(yīng)的類(lèi)信息。當(dāng)運(yùn)行某一應(yīng)用程序時(shí),轉(zhuǎn)換單元225先將可執(zhí) 行應(yīng)用程序文件中的序號(hào)轉(zhuǎn)換成對(duì)應(yīng)的類(lèi)信息再由虛擬機(jī)222執(zhí)行應(yīng)用程序文件,從而運(yùn) 行應(yīng)用程序。 本實(shí)施例的其他結(jié)構(gòu)均與上述的第一種實(shí)施方式相同,在此不再贅述。 基于上述的系統(tǒng),本發(fā)明又提供一種java類(lèi)預(yù)處理方法,請(qǐng)參閱圖5,該java類(lèi)預(yù)
處理方法包括以下步驟 S21 :預(yù)處理中心對(duì)java類(lèi)程序文件進(jìn)行掃描,分析其在運(yùn)行中會(huì)應(yīng)用到的類(lèi)信 息,并將應(yīng)用到的類(lèi)信息從預(yù)先存儲(chǔ)的java類(lèi)庫(kù)中找到。 S22 :將找到的java類(lèi)信息進(jìn)行排序,包括每個(gè)類(lèi)的成員變量排序、每個(gè)類(lèi)的成員 方法排序、每個(gè)類(lèi)名排序。 S23:將排序后的類(lèi)信息進(jìn)行映射,包括映射對(duì)每個(gè)類(lèi)名、每個(gè)類(lèi)的成員變量以及 成員方法按照預(yù)先設(shè)定的規(guī)則分別對(duì)應(yīng)一個(gè)序號(hào)。 S24:將對(duì)應(yīng)的序號(hào)加載至該應(yīng)用程序文件的對(duì)應(yīng)位置后得到可執(zhí)行應(yīng)用程序文 件。 S25 :預(yù)處理中心提供的可執(zhí)行應(yīng)用程序文件可預(yù)先固化在執(zhí)行平臺(tái)內(nèi),通過(guò)執(zhí)行 平臺(tái)裝入通信終端中或者由通信終端直接從預(yù)處理中心下載后保存至應(yīng)用程序文件列表 中。 S26 :當(dāng)某一可執(zhí)行應(yīng)用程序被執(zhí)行時(shí),執(zhí)行平臺(tái)將可執(zhí)行應(yīng)用程序文件中的序號(hào) 轉(zhuǎn)換成對(duì)應(yīng)的類(lèi)信息后進(jìn)行執(zhí)行。 上述的方案,是本發(fā)明采用的一個(gè)最佳實(shí)施例。預(yù)處理中心210進(jìn)一步對(duì)類(lèi)信息 進(jìn)行映射處理,去除類(lèi)信息的字符描述信息,進(jìn)一步減小內(nèi)存的開(kāi)銷(xiāo),提高運(yùn)行速度。
名稱(chēng)在程序運(yùn)行的過(guò)程中只是一個(gè)標(biāo)識(shí),只要唯一不沖突程序照樣能運(yùn)行的很 好,所以上述實(shí)施例的做法就是把名稱(chēng)都替換成唯一的ID號(hào),同樣程序能運(yùn)行正常。通常情況下,一個(gè)類(lèi)信息的字符串信息占了 50%左右,因此名稱(chēng)替換成ID號(hào)后減少了內(nèi)存的開(kāi) 銷(xiāo)。同時(shí),將名稱(chēng)替換成ID號(hào)后,如果要訪(fǎng)問(wèn)方法或者函數(shù)有關(guān)信息的時(shí)候就是數(shù)組索引 的,而不再是字符串查找匹配,因此啟動(dòng)速度大大提高。 在上述兩個(gè)方案中,預(yù)處理中心21和通信終端22都是通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò)連接,但是, 需要說(shuō)明的是,本發(fā)明并不限定預(yù)處理中心21和通信終端22的具體連接方式,現(xiàn)有技術(shù)中 任何能夠?qū)崿F(xiàn)預(yù)處理中心21和通信終端22之間進(jìn)行通信的技術(shù)均應(yīng)落在本發(fā)明的保護(hù)范 圍內(nèi)。 針對(duì)上述的java類(lèi)預(yù)處理通信系統(tǒng),本發(fā)明還提供一種通信終端,用于執(zhí)行對(duì) java類(lèi)程序文件進(jìn)行預(yù)處理得到的可執(zhí)行應(yīng)用程序文件,通信終端上設(shè)置有執(zhí)行平臺(tái),執(zhí) 行平臺(tái)包括虛擬機(jī)、應(yīng)用程序文件列表和接口單元,應(yīng)用程序文件列表包括多個(gè)可執(zhí)行應(yīng) 用程序文件,其中, 應(yīng)用程序文件列表用于存儲(chǔ)多個(gè)可執(zhí)行應(yīng)用程序文件,可執(zhí)行應(yīng)用程序文件由 一預(yù)處理中心提供,其可預(yù)先固化在執(zhí)行平臺(tái)內(nèi)或者從預(yù)處理中心下載保存至應(yīng)用程序文 件列表中; 虛擬機(jī)用于執(zhí)行應(yīng)用程序文件列表中的某一可執(zhí)行應(yīng)用程序文件;
接口單元用于建立執(zhí)行平臺(tái)與通信終端的其它單元的通訊。 除上述的結(jié)構(gòu)外,在本發(fā)明的一實(shí)施例中,執(zhí)行平臺(tái)還包括一轉(zhuǎn)換單元,用于將可 執(zhí)行應(yīng)用程序文件中的序號(hào)轉(zhuǎn)換成對(duì)應(yīng)的類(lèi)信息。 本發(fā)明通過(guò)預(yù)處理中心對(duì)Java類(lèi)程序文件進(jìn)行靜態(tài)連接器預(yù)處理,在pc上分擔(dān) 了應(yīng)用程序在通信終端上的工作,程序運(yùn)行前先在pc上分析好類(lèi)信息,并把應(yīng)用程序真正 應(yīng)用到的類(lèi)進(jìn)行靜態(tài)連接處理生成可執(zhí)行應(yīng)用程序文件,通信終端上的虛擬機(jī)直接運(yùn)行可 執(zhí)行應(yīng)用程序文件,不必再將整個(gè)java類(lèi)庫(kù)內(nèi)置到通信終端中,減少了對(duì)通信終端內(nèi)存空 間的占用,并且,啟動(dòng)時(shí)應(yīng)用程序時(shí)無(wú)需再將應(yīng)用程序涉及到的類(lèi)通過(guò)類(lèi)加載器從java類(lèi) 庫(kù)中進(jìn)行加載,提高了運(yùn)行速度。另外,本發(fā)明將類(lèi)信息的字符串信息替換成二進(jìn)制代碼, 進(jìn)一步減少了內(nèi)存的開(kāi)銷(xiāo),大大提高了運(yùn)行速度。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下的有益 效果 1、本發(fā)明使應(yīng)用程序運(yùn)行時(shí)占用通信終端內(nèi)存空間少、啟動(dòng)速度快、加載效率高、 用戶(hù)體驗(yàn)好。 2、本發(fā)明使應(yīng)用程序可在低端通信終端(如CPU處理速度慢(ARM7的速度),內(nèi)存 小(1M以下)的通信終端)上流暢運(yùn)行,適用范圍廣泛。 3、本發(fā)明得到的可執(zhí)行應(yīng)用程序文件無(wú)法被反編譯,無(wú)法破解網(wǎng)絡(luò)協(xié)議,有利于 應(yīng)用程序提供商的知識(shí)產(chǎn)權(quán)保護(hù)。 以上公開(kāi)的僅為本發(fā)明的幾個(gè)具體實(shí)施例,但本發(fā)明并非局限于此,任何本領(lǐng)域 的技術(shù)人員能思之的變化,都應(yīng)落在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
一種java類(lèi)預(yù)處理通信系統(tǒng),其特征在于,包括預(yù)處理中心和若干通信終端,所述預(yù)處理中心用以對(duì)java類(lèi)程序文件進(jìn)行預(yù)處理,得到可執(zhí)行應(yīng)用程序文件,其進(jìn)一步包括一預(yù)處理服務(wù)器,所述預(yù)處理服務(wù)器包括java類(lèi)庫(kù)存儲(chǔ)區(qū)用于存儲(chǔ)包括類(lèi)名稱(chēng)、成員變量、成員方法在內(nèi)的java類(lèi)信息;掃描處理單元用以對(duì)java類(lèi)程序文件進(jìn)行掃描,分析其在運(yùn)行中會(huì)應(yīng)用到的類(lèi)信息,并將應(yīng)用到的類(lèi)信息從預(yù)先存儲(chǔ)的java類(lèi)庫(kù)中找到;加載單元用以加載至該應(yīng)用程序文件的對(duì)應(yīng)位置后得到可執(zhí)行應(yīng)用程序文件;所述通信終端上設(shè)置有執(zhí)行平臺(tái),執(zhí)行平臺(tái)包括虛擬機(jī)、應(yīng)用程序文件列表和接口單元,所述應(yīng)用程序文件列表包括多個(gè)可執(zhí)行應(yīng)用程序文件,其中,應(yīng)用程序文件列表用于存儲(chǔ)多個(gè)所述可執(zhí)行應(yīng)用程序文件,預(yù)處理中心提供的可執(zhí)行應(yīng)用程序文件可預(yù)先固化在所述執(zhí)行平臺(tái)內(nèi)或者從預(yù)處理中心下載保存至應(yīng)用程序文件列表中;虛擬機(jī)用于執(zhí)行所述應(yīng)用程序文件列表中的某一可執(zhí)行應(yīng)用程序文件;接口單元用于建立執(zhí)行平臺(tái)與通信終端的其它單元的通訊。
2. 如權(quán)利要求1所述的系統(tǒng),其特征在于,預(yù)處理服務(wù)器還進(jìn)一步包括連接器,其連接 器進(jìn)一步包括排序處理單元設(shè)置在掃描處理單元和加載單元之間,用以將找到的Java類(lèi)信息進(jìn)行 排序,包括每個(gè)類(lèi)的成員變量排序、每個(gè)類(lèi)的成員方法排序、每個(gè)類(lèi)名排序;映射處理單元與所述排序處理單元連接,用以將排序后的類(lèi)信息進(jìn)行映射,包括映射 對(duì)每個(gè)類(lèi)名、每個(gè)類(lèi)的成員變量以及成員方法按照預(yù)先設(shè)定的規(guī)則分別對(duì)應(yīng)一個(gè)序號(hào);組合處理單元用以將對(duì)應(yīng)的序號(hào)發(fā)送至加載單元,以便將對(duì)應(yīng)的序號(hào)加載至該應(yīng)用 程序文件的對(duì)應(yīng)位置后得到可執(zhí)行應(yīng)用程序文件。
3. 如權(quán)利要求2所述的系統(tǒng),其特征在于,預(yù)處理服務(wù)器還包括 索引存儲(chǔ)單元,用于存儲(chǔ)類(lèi)信息與序號(hào)的對(duì)應(yīng)關(guān)系。
4. 如權(quán)利要求3所述的系統(tǒng),其特征在于,執(zhí)行平臺(tái)還包括 轉(zhuǎn)換單元,用于將可執(zhí)行應(yīng)用程序文件中的序號(hào)轉(zhuǎn)換成對(duì)應(yīng)的類(lèi)信息。
5. 如權(quán)利要求2所述的系統(tǒng),其特征在于,所述序號(hào)為二進(jìn)制代碼。
6. —種通信終端,用于執(zhí)行對(duì)java類(lèi)程序文件進(jìn)行預(yù)處理得到的可執(zhí)行應(yīng)用程序文 件,其特征在于,所述通信終端上設(shè)置有執(zhí)行平臺(tái),所述執(zhí)行平臺(tái)包括虛擬機(jī)和應(yīng)用程序文 件列表,所述應(yīng)用程序文件列表包括多個(gè)可執(zhí)行應(yīng)用程序文件,其中,應(yīng)用程序文件列表用于存儲(chǔ)多個(gè)所述可執(zhí)行應(yīng)用程序文件,所述可執(zhí)行應(yīng)用程序文 件由一預(yù)處理中心提供,其可預(yù)先固化在所述執(zhí)行平臺(tái)內(nèi)或者從預(yù)處理中心下載保存至應(yīng) 用程序文件列表中;虛擬機(jī)用于執(zhí)行所述應(yīng)用程序文件列表中的某一可執(zhí)行應(yīng)用程序文件;接口單元用于建立執(zhí)行平臺(tái)與通信終端的其它單元的通訊。
7. 如權(quán)利要求6所述的通信終端,其特征在于,所述執(zhí)行平臺(tái)還包括 轉(zhuǎn)換單元,用于將可執(zhí)行應(yīng)用程序文件中的序號(hào)轉(zhuǎn)換成對(duì)應(yīng)的類(lèi)信息。
8. —種java類(lèi)預(yù)處理方法,其特征在于,包括以下步驟(1)預(yù)處理中心對(duì)java類(lèi)程序文件進(jìn)行掃描,分析其在運(yùn)行中會(huì)應(yīng)用到的類(lèi)信息,并將應(yīng)用到的類(lèi)信息從預(yù)先存儲(chǔ)的Java類(lèi)庫(kù)中找到;(2) 預(yù)處理中心加載至該應(yīng)用程序文件的對(duì)應(yīng)位置后得到可執(zhí)行應(yīng)用程序文件;(3) 預(yù)處理中心提供的可執(zhí)行應(yīng)用程序可預(yù)先固化在執(zhí)行平臺(tái)內(nèi),通過(guò)執(zhí)行平臺(tái)裝入 通信終端中或者由通信終端直接從預(yù)處理中心下載后保存至應(yīng)用程序文件列表中;(4) 當(dāng)某一可執(zhí)行應(yīng)用程序被執(zhí)行時(shí),執(zhí)行平臺(tái)直接執(zhí)行所述應(yīng)用程序文件。
9. 如權(quán)利要求8所述的方法,其特征在于,步驟(1)和步驟(2)之間包括 將找到的java類(lèi)信息進(jìn)行排序,包括每個(gè)類(lèi)的成員變量排序、每個(gè)類(lèi)的成員方法排序、每個(gè)類(lèi)名排序;將排序后的類(lèi)信息進(jìn)行映射,包括映射對(duì)每個(gè)類(lèi)名、每個(gè)類(lèi)的成員變量以及成員方法 按照預(yù)先設(shè)定的規(guī)則分別對(duì)應(yīng)一個(gè)序號(hào);將對(duì)應(yīng)的序號(hào)加載至該應(yīng)用程序文件的對(duì)應(yīng)位置后得到可執(zhí)行應(yīng)用程序文件。
10. 如權(quán)利要求9所述的方法,其特征在于,步驟(4)還包括 將可執(zhí)行應(yīng)用程序文件中的序號(hào)轉(zhuǎn)換成對(duì)應(yīng)的類(lèi)信息后進(jìn)行執(zhí)行。
全文摘要
一種java類(lèi)預(yù)處理通信系統(tǒng),包括預(yù)處理中心和若干通信終端,預(yù)處理中心和通信終端通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò)連接,預(yù)處理中心用以對(duì)java類(lèi)程序文件進(jìn)行預(yù)處理,得到可執(zhí)行應(yīng)用程序文件,通信終端上安裝有執(zhí)行平臺(tái),可執(zhí)行預(yù)處理中心提供的可執(zhí)行應(yīng)用程序文件。本發(fā)明通過(guò)預(yù)處理中心在pc上分擔(dān)了應(yīng)用程序在通信終端上的工作,程序運(yùn)行前先在pc上分析好應(yīng)用到的類(lèi),并對(duì)類(lèi)信息進(jìn)行排序,把類(lèi)信息連接好進(jìn)行映射處理,去除類(lèi)信息的字符描述信息,使應(yīng)用程序在通信終端上的內(nèi)存需求小、啟動(dòng)和運(yùn)行速度快。
文檔編號(hào)G06F9/445GK101763257SQ20091019608
公開(kāi)日2010年6月30日 申請(qǐng)日期2009年9月22日 優(yōu)先權(quán)日2009年9月22日
發(fā)明者董希成 申請(qǐng)人:浙江數(shù)芳科技有限公司