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