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