国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于支持類的標識來下載Java應用的方法、系統(tǒng)和計算機程序產品的制作方法

      文檔序號:6455578閱讀:190來源:國知局
      專利名稱:基于支持類的標識來下載Java應用的方法、系統(tǒng)和計算機程序產品的制作方法
      技術領域
      本發(fā)明涉及下載應用的方法、系統(tǒng)和計算機程序產品,更具體地說, 涉及下載Java應用的方法、系統(tǒng)和程序產品。
      背景技術
      目前已經(jīng)提出了類型繁多的能夠通過不同類型的網(wǎng)絡彼此通信的數(shù) 據(jù)處理裝置。另外,各種有線和無線網(wǎng)絡利用允許在利用諸如網(wǎng)際協(xié)議
      (IP)的協(xié)議的不同網(wǎng)絡上的不同裝置之間進行通信的標準來工作。針 對這種通信的普通方法涉及客戶機-服務器模型,其中,客戶機通常運行 向遠程服務器應用請求并從它接收數(shù)據(jù)的瀏覽器應用。按客戶機-服務器 關系模型從服務器裝置下載的數(shù)據(jù)可以采用例如超文本標記語言
      (HTML)頁面的形式,該頁面可以包括嵌入式Java應用。
      Java應用還可以通過其它方式從服務器裝置下載和^^安裝在多種客 戶機裝置上。Java應用經(jīng)常被用在像應用通常不鏈接至特定類型的平臺 硬件或操作系統(tǒng)這樣的網(wǎng)絡環(huán)境中。而且,Java應用通常具有一套關聯(lián) 的標準包(package) /庫(library),其可以提供可通過不同Java應用而 使用的功能。同樣地,普通Java應用可以在多種處理平臺上運行。
      對于諸如移動終端的任何特定硬件平臺來說,Java應用可以通過平 臺的賣方來提供,該Java應用通常被該硬件平臺充分地支持,以使用戶 在下載這種賣方提供的Java應用并將其安裝在移動終端上時通常不會遭 遇問題。然而,通常還可以利用不同計算平臺來下載并安裝并非由該平 臺的賣方所提供的第三方Java應用。結果,可以從許多源來下載Java應 用。這種下載的Java應用通常需要該硬件平臺所支持的特定應用編程接 口 (API)或Java類(dass),否則下載的Java應用通常將不能成功運行。 必需的API可以通過Java包/庫和/或通過Java類來指定。必需的API的示例包括移動信息設備框架(MIDP)、各種Java規(guī)范請求(JSR)、操作 員特定API (如Nokia Sound)等。
      如果將Java應用安裝在不支持所有必需API的裝置上,則該應用通 常將不能運行。這種下載Java應用之后的故障在該應用被下載、安裝并 起動之后的運行時間之前通常不會被用戶觀察到。有時這種故障在起動 了該應用并且用戶訪問該應用的需要不支持的API的特定特征之前可能 不會發(fā)生。同樣地,用戶在下載和安裝無功能應用時可能會浪費時間。 結果,該用戶會感到失望,并且可能產生對下載了該Java應用的裝置的 消極印象。

      發(fā)明內容
      本發(fā)明的實施方式包括控制向移動終端下載Java應用的方法。接收 向移動終端下載Java應用的請求。下載與該Java應用相關聯(lián)的描述符。 獲取該描述符中所標識的API屬性列表。該API屬性列表標識了該Java 應用所引用(reference)的所有Java類文件。將該API屬性列表與該移 動終端所支持的Java類文件的列表進行比較,以確定該移動終端是否支 持該Java應用?;谠揂PI屬性列表與該移動終端所支持的Java類文件 的列表的比較來控制對該Java應用的下載??刂葡螺d包括當該移動終 端支持該Java應用時下載該Java應用,而當該移動終端不支持該Java 應用時向該移動終端的用戶通知該移動終端不支持該Java應用。
      在一些實施方式中,獲取描述符中所標識的API屬性列表的步驟包 括基于從該描述符中獲取的標識來下載該Java應用中包括的Java類文 件;以及從下載的Java類文件中獲取API屬性列表。在其它實施方式中, 獲取描述符中所標識的API屬性列表的步驟包括獲取該描述符中包括的 API屬性列表。
      在另一些實施方式中,當確定描述符不包括API屬性列表時,下載 Java應用。標識與Java應用相關聯(lián)的所有Java類文件,并且對所標識的 java類文件進行格式化以生成驗證(validation) API屬性列表。在這種 實施方式中,比較API屬性列表的步驟包括將該驗證API屬性列表與移動終端所支持的Java類文件的列表進行比較,以確定該移動終端是否 支持該Java應用。
      在其它實施方式中,標識與Java應用相關聯(lián)的所有Java類文件的步 驟包括標識Java應用中包含的所有Java類文件;以及標識Java應用中 包含的Java類文件中所引用的所有Java類文件。描述符可以是Java應用 描述符(JAD),而Java應用可以包括Java檔(JAR)文件,并且標識Java 應用中包含的所有Java類文件的步驟可以包括標識JAR文件中包含的所 有Java類文件。標識JAR文件中包含的所有Java類文件的步驟可以包括 檢查JAR文件中包含的所有Java類文件的常量池(constant pool)域、 超類(super class)域和接口 (interface)域。對所標識的Java類文件進 行格式化以生成驗證API屬性列表的步驟可以包括生成API屬性列表以 標識所引用的Java類文件而不需要標識Java應用中包含的Java類文件。
      在另一些實施方式中,標識java應用中包含的所有Java類文件的步
      驟包括生成Java應用中包含的所有Java類文件的列表,并且在標識Java 應用中包含的Java類文件中所引用的所有Java類文件之前將所有必需的 類的列表和所有必需的束(bundle)的列表初始化成空集。對于每個所引 用的Java類文件來說,對所標識的Java類文件進行格式化的步驟都包括 確定所引用的Java類文件是否被包括在Java應用中包含的所有Java類文 件的列表中;當所引用的Java類文件沒有被包括在Java應用中包含的所 有Java類文件的列表中時,確定所引用的Java類文件是否被包括在所有 必需束的列表中所包括的任何束中;當所引用的Java類文件沒有被包括 在所有必需束的列表中所包括的任何束中時,確定所引用的Java類文件 是否被包括在移動終端己知(即,支持)的束中;當確定所引用的Java 類文件被包括在移動終端己知的束中時,將移動終端已知的束添加至所 有必需束的列表中;而當確定出所標識的Java類文件沒有被包括在所有 必需束的列表中所包括的任何束中或者移動終端已知的束中或者Java應 用中包含的所有Java類文件的列表中時,將所引用的Java類文件添加至 所有必需類的列表中。對所標識的Java類文件進行格式化的步驟還包括 基于必需束的列表和必需類的列表來生成驗證API屬性列表。必需束的
      ii列表和/或已知束的列表可以包括Java包的標識。
      在其它實施方式中,所標識的Java類文件具有關聯(lián)版本,并且將所 標識的Java類文件添加至列表中的步驟包括添加該關聯(lián)版本的標識。確 定所標識的Java類文件是否包括在所有必需束的列表中包括的任何束中 的步驟和確定所標識的Java類文件是否包括在移動終端已知的束中的步 驟基于該關聯(lián)版本。添加標識的步驟可以包括添加與所標識的Java類文 件相關聯(lián)的方法類型簽名。
      在另一些實施方式中,所標識的Java類文件被標識為可選或必需 (require),并且在移動終端支持該Java應用時下載該Java應用的步驟 包括在移動終端支持所有被標識為必需和可選的Java類文件時自動下載 Java應用。在移動終端支持所有被標識為必需的Java類文件和并非所有 被標識為可選的Java類文件時下載Java應用的步驟包括在下載該Java 應用之前向移動終端的用戶通知可能會下載功能受限的Java應用。向移 動終端的用戶通知移動終端不支持該Java應用的步驟包括當移動終端并 不支持所有被標識為必需的Java類文件時向移動終端的用戶通知移動終 端不支持該Java應用。
      在其它實施方式中,在當JAD不包括API屬性列表時下載Java應用 的步驟之前,將下載的描述符中包括的字段所標識的任何束與移動終端 所支持的Java類文件的列表進行比較。當下載的描述符中包括的字段所 標識的任何束都沒有被包括在移動終端所支持的Java應用的列表中時, 不下載Java應用,并且向用戶通知移動終端不支持該Java應用。
      在另一些實施方式中,移動終端支持的Java類文件的列表包括至少 一個束標識,并且API屬性列表包括至少一個束標識。比較API屬性列 表的步驟包括將API屬性列表中標識的至少一個束與移動終端支持的 Java類文件的列表中標識的至少一個束進行比較。換句話說,移動終端 支持的Java類文件的標識可以通過Java包和/或束的標識來提供。
      在其它實施方式中,生成Java應用的API屬性列表的方法包括以下 步驟獲得已知束的列表,該列表標識了對于各個已知束已知的所有類; 將^f有必需類的列表和所有必需束的列表初始化成空集并且標識該Java應用所引用的所有Java類文件。對所標識的Java類文件進行格式化以生 成API屬性列表。對于每個所標識的Java類文件來說,對所標識的Java 類文件進行格式化的步驟都包括確定所標識的Java類文件是否被包含 在該Java應用中;當所標識的Java類文件沒有被包含在該Java應用中時, 確定所標識的Java類文件是否被包括在所有必需束的列表中所包括的任 何束中;當所標識的Java類文件沒有被包括在所有必需束的列表中所包 括的任何束中時,確定所標識的Java類文件是否對于己知束的列表中列 出的己知束之一是已知的;當確定出所標識的Java類文件對于所述列出 的已知束之一是已知的并且沒有包含在該Java應用中時,將所述列出的 己知束之一添加至所有必需束的列表中;以及當確定出所標識的Java類 文件沒有包括在所有必需束的列表中所包括的任何束中或者對于列出的 已知束之一是已知的或者包含在該Java應用中時,將所標識的Java類文 件添加至所有必需類的列表中。對所標識的Java類文件進行格式化的步 驟還可以包括基于必需束的列表和必需類的列表來生成API屬性列表。 Java應用可以包括Java應用描述符(JAD)和Java檔(JAR)文件,并 且標識Java應用中包含的所有Java類文件的步驟包括標識JAR文件中 包含的所有Java類文件,并且在生成API屬性列表之后可以將API屬性 列表并入JAD中。標識Java應用所引用的所有Java類文件的步驟可以 包括以下步驟標識Java應用中包含的Java類文件;以及標識該Java 應用中包含的Java類文件所引用的所有Java類文件。
      在另一些實施方式中, 一種移動終端包括用戶界面,該用戶界面被
      設置用于接收下載Java應用的用戶請求,并且在移動終端不支持所請求 的Java應用時通知用戶。該移動終端還包括通信接口,該通信接口被設 置用于響應于用戶請求和該移動終端支持的Java類文件的列表來下載 Java應用。另外,該移動終端還包括控制器,該控制器被設置用于標識 Java應用必需的所有Java類文件,并且基于該移動終端支持的Java類文 件的列表與該Java應用必需的Java類文件的比較來控制利用通信端口對 該Java應用的下載,控制下載包括當移動終端支持的Java類文件的列表 包括該Java應用必需的所有標識的Java類文件時下載該Java應用,而在移動終端支持的Java類文件的列表不包括該Java應用必需的所有標識的 Java類文件時通過該用戶界面向用戶提供通知。
      在其它實施方式中,該控制器被設置成,通過利用該通信接口下載 與該Java應用相關聯(lián)的描述符并且獲取該描述符中包括的API屬性列表 來標識該Java應用必需的所有Java類文件,該API屬性列表標識了該Java 應用必需的所有Java類文件。該控制器可以被設置成,當該描述符不包 括API屬性列表時利用該通信接口來下載該Java應用,并且根據(jù)所下載 的Java應用來生成API屬性列表。
      在其它實施方式中, 一種用于生成Java應用的API屬性列表的計算 機系統(tǒng)包括己知束的列表,該列表標識了對于各個已知束己知的所有 類;所有必需類的列表和所有必需束的列表。該計算機系統(tǒng)還包括必 需類標識模塊,其被設置成標識Java應用引用的所有Java類文件;和 API屬性列表生成模塊。該API屬性列表生成模塊被設置成,將所有必 需類的列表和所有必需束的列表初始化成空集,并且通過下列步驟,針 對每個所標識的Java類文件來格式化所標識的Java類文件1)確定所 標識的Java類文件是否被包括在所有必需束的列表中所包括的任何束 中;2)當所標識的Java類文件沒有被包括在所有必需束的列表中所包括 的任何束時,確定所標識的Java類文件是否對于已知束的列表中列出的 已知束之一是已知的;3)當確定出所標識的Java類文件對于所述列出的 已知束之一是已知的并且不是該Java應用中所包含的Java類文件時,將 所述列出的己知束之一添加至所有必需束的列表中;以及4)當確定出所 標識的Java類文件沒有包括在所有必需束的列表中所包括的任何束中或 者對于列出的已知束之一是己知的或者包含在該Java應用中時,將所標 識的Java類文件添加至所有必需類的列表中;并且該API屬性列表生成 模塊還被設置成基于必需束的列表和必需類的列表來生成API屬性列表。
      在另一些實施方式中,提供了一種Java應用文件。該Java應用文件 包括Java應用描述符文件和多個Java類文件。該Java應用描述符文件包 括Java應用文件必需的、在該Java應用描述符文件中沒有另外標識的所 有Java類文件的標識。在其它實施方式中,提供了一種Java應用文件。該Java應用文件包 括多個Java類文件。該Java應用文件還包括這多個Java類文件中的至少 一個Java類文件中的、標識了該Java應用文件必需的Java類文件的API 屬性列表,該Java應用文件必需的Java類文件包括被這些Java類文件中 的至少一個其它Java類文件引用而沒有被包括該API屬性列表的所述至 少一個Java類文件引用的Java類文件。


      圖1是適于在本發(fā)明的一些實施方式中使用的數(shù)據(jù)處理系統(tǒng)的框圖。
      圖2是根據(jù)本發(fā)明一些實施方式的通信系統(tǒng)的框圖。
      圖3是例示根據(jù)本發(fā)明一些實施方式的下載Java應用的流程圖。
      圖4是例示根據(jù)本發(fā)明一些實施方式的生成API屬性列表的流程圖。
      圖5是例示根據(jù)本發(fā)明其它實施方式的下載Java應用的流程圖。
      具體實施例方式
      下面參照附圖,對本發(fā)明的具體示范實施方式進行描述。然而,本 發(fā)明可以按許多不同形式來具體實施,而不應視為限于在此闡述的實施 方式,相反,提供這些實施方式是為了使本公開詳盡且完整,并且向本 領域技術人員全面?zhèn)鬟_本發(fā)明的范圍。在附圖中例示的特定示范實施方 式的詳細描述中所使用的術語不意味著對本發(fā)明的限制。在這些圖中, 相同標號指代相同部件。
      除非另外明確規(guī)定,此處使用的單數(shù)形式"一"和"該"也包括復
      數(shù)形式。還應明白,措辭"包括"和域"包含"在本說明書中使用時指 定了所述特征、整數(shù)、步驟、操作、部件和/或組件的存在,而并不排除 存在或增加一個或更多個其它特征、整數(shù)、步驟、操作、部件、組件和/ 或它們的組合。應當明白,當我們說某一部件"連接至"或"耦接至" 另一部件時,它可以直接連接至或耦接至另一部件,也可能存在中間部 件。而且,此處使用的"連接至"或"耦接至"可以包括無線連接或耦
      15接。此處使用的措辭"和/或"包括關聯(lián)列出項中的一個或更多個的任何 組合和所有組合。
      除非另外限定,此處使用的所有術語(包括技術和科學術語)具有 和本發(fā)明所屬領域的普通技術人員通常理解的含義相同的含義。還應當 明白,除非在此明確定義,諸如在通用詞典中定義的那些術語的術語應 被解釋為具有與它們在相關領域和本說明書的語境中的含義一致的含 義,而不應按理想化或過度形式化的意義來解釋。
      此處使用的"終端"既包括僅具有無線信號接收器而沒有發(fā)送能力 的裝置又包括具有能夠通過雙向通信鏈路進行雙向通信的接收和發(fā)送硬 件的裝置。這種裝置可以包括有或沒有多線路顯示器的蜂窩或其它通 信裝置;可以兼?zhèn)湔Z音和數(shù)據(jù)處理、傳真和/或數(shù)據(jù)通信能力的個人通信 系統(tǒng)(PCS)終端;可以包括射頻接收器和尋呼機、互聯(lián)網(wǎng)/內聯(lián)網(wǎng)接入、
      Web瀏覽器、記事簿、日歷和/或全球定位系統(tǒng)(GPS)接收器的個人數(shù)
      字助理(PDA);和/或常規(guī)膝上型和/或掌上型計算機或包括射頻接收器
      的其它設備。此處使用的"移動終端"可以是便攜式、移動式、安裝在 交通工具(航空、海上或陸上)中,或者定位于和/或被設置成在本地運 轉和/或在地上和/或空間中的任何其它位置處按分布方式運轉。 下面參照圖1,對示范性裝置實施方式(例如,根據(jù)本發(fā)明一些示
      范實施方式而構成的個人計算機系統(tǒng)等或其它數(shù)據(jù)處理系統(tǒng)130)進行討 論。數(shù)據(jù)處理系統(tǒng)130 (它例如可以并入在個人計算機、服務器計算機、 PDA、無線終端/電話等中)可以包括用戶界面144 (例如包括諸如 鍵盤或鍵區(qū)的輸入裝置、顯示器、揚聲器和/或麥克風),和與處理器138 通信的存儲器136。該數(shù)據(jù)處理系統(tǒng)130還可以包括也與處理器138通信 的I/0數(shù)據(jù)端口 146。 1/0數(shù)據(jù)端口 146可以被用于,例如利用網(wǎng)際協(xié)議 (IP)連接,在數(shù)據(jù)處理系統(tǒng)130與可以關聯(lián)服務供應商或用戶通信裝 置的另一計算機系統(tǒng)或網(wǎng)絡之間傳遞信息。這些組件可以是諸如許多常 規(guī)數(shù)據(jù)處理系統(tǒng)中使用的組件的常規(guī)組件,它們可以被設置成按照此處 描述的方式來運轉。
      如圖1的實施方式中所示,存儲器136包括必需束列表162、必需類列表150、已知束列表155、 API列表生成模塊160和必需類標識模塊 161。雖然在圖1的實施方式中被表示為駐留在存儲器136中,但應當明 白,相應數(shù)據(jù)庫和模塊特征(包括API列表生成模塊160和類標識模塊 161)例如可以被實現(xiàn)為數(shù)據(jù)處理系統(tǒng)130的操作系統(tǒng)、應用程序、動態(tài) 鏈接庫的組件的一部分等,從而全部或部分地由處理器138來執(zhí)行。因 此,圖l例示的模塊的特定組合完全是出于說明本發(fā)明的目的。
      在本發(fā)明的一些實施方式中,API屬性列表生成模塊160被設置成, 將所有必需類列表150和所有必需束列表162都初始化成空集,格式化 一組與該Java應用相關聯(lián)的Java類文件,并將其標識為API屬性列表, 其可以包括有與該Java應用相關聯(lián)的描述符。更具體地說,API屬性列 表生成模塊160可以被設置成,通過執(zhí)行將參照圖4來描述的操作而生 成API屬性列表。
      在本發(fā)明的一些實施方式中,類標識模塊161被設置成,標識與Java 應用相關聯(lián)的所有Java類文件。類標識模塊161可以被設置成,標識Java 應用中包含的所有Java類文件并標識該Java應用中包含的Java類文件中 所引用的所有Java類文件。如此處要針對一些實施方式描述的,Java應 用中包含的Java類文件不需要包括在API屬性列表中,因為它們被包含 在Java應用中,由此,在Java應用被下載時就是被下載裝置支持的。類 似的是,也包含在Java應用中的被引用Java類文件也不需要被包括在 API屬性列表中。
      作為背景,java類文件通常包含可執(zhí)行字節(jié)碼。例如,J2ME Java 應用通常存儲在Java架構(JAR)文件中,其通常包含幾個類文件和其 它資源。每個類文件內部通常都包括與該類所引用的任何其它類有關的 信息。同樣地,在本發(fā)明的一些實施方式中,可以通過檢查JAR文件中 的域(如常量池域、超類域、接口域)來生成必需類列表。
      還應明白,在一些實施方式中,任何指定記錄的Java類都可以存在 一個或更多個不同版本。類的實現(xiàn)在裝置之間可能不同,并且不同類實 現(xiàn)或版本可以支持不同公共的(public)和保護的(protected)方法和域。 同樣地,在本發(fā)明的一些實施方式中,必需類標識模塊161還確定必需
      17類的版本。這種信息可以作為類或束定義的方法/域的簽名而獲得。
      下面參照圖2所示框圖,對根據(jù)本發(fā)明的一些實施方式的諸如移動
      終端的通信系統(tǒng)進行描述。如圖2的實施方式所示,被設置成下載Java 應用的通信系統(tǒng)200可以包括用于與其它終端、服務器等進行通信的網(wǎng) 絡收發(fā)器225。網(wǎng)絡收發(fā)器225通常包括發(fā)送器電路250和接收器電路 245,它們分別經(jīng)由天線265向服務器272、 274發(fā)送出局射頻信號和從 服務器272、 274接收入局射頻信號。雖然圖2示出了單個天線265,但 應當明白,可以基于接收的信號的類型來利用多個天線和/或不同類型的 天線。在通信系統(tǒng)200與服務器272、 274之間傳輸?shù)纳漕l信號可以包括 業(yè)務信號和控制信號(例如,尋呼信號/用于入局呼叫的消息),這些信號 被用于建立和保持與另一方或目的地的通信,并且可以提供上行鏈路和/ 或下行鏈路通信。
      如圖2的實施方式中進一步示出的,通信系統(tǒng)200包括耦接至收發(fā) 器225的處理器240。處理器240還耦接至可用于存儲該處理器240在執(zhí) 行此處將進一步描述的操作時所使用的數(shù)據(jù)、程序等的存儲器230。另外, 還示出了耦接至處理器240的多個操作電路(operationalcircuit),包括必 需類標識模塊215和API屬性列表生成模塊235。雖然在圖2的實施方式 中被示出為分離的模塊,但應當明白,在本發(fā)明的各種實施方式中,模 塊215 、235可以全部或部分地實現(xiàn)為存儲在存儲器230中并由處理器240 執(zhí)行的編程代碼。
      在本發(fā)明的一些實施方式中,API列表生成模塊160和必需類標識 模塊215可以大致如先前針對必需類標識模塊161描述的那樣,被設置 成對下載至通信系統(tǒng)200的Java應用進行操作。類似的是,API屬性列 表生成模塊235可以大致如先前針對API列表生成模塊160描述的那樣, 被設置成對下載至通信系統(tǒng)200的Java應用進行操作。如圖2的實施方 式中進一步示出的,存儲器230包括必需束列表231、必需類列表232以 及已知束列表233,它們可以大致如先前針對必需束列表162、必需類列 表150以及已知束列表155描述的那樣設置和使用。
      雖然參照模塊之間的特定劃分在圖2中例示了本發(fā)明的實施方式,但本發(fā)明不應被視為限于圖2的構造,而是要涵蓋能夠執(zhí)行此處描述的
      操作的任何構造。而且,此處描述的功能例如可以通過插件(plug-in)
      或其它輔助代碼來提供,以便為已有應用提供功能。
      下面參照圖3所示流程圖,對根據(jù)本發(fā)明一些實施方式的用于控制 對Java應用的下載的操作進行描述。對于圖3所示實施方式來說,操作 以接收到向移動終端等下載Java應用的請求而開始(框300)。下載與Java 應用相關聯(lián)的描述符(框305)。例如,在一些實施方式中,描述符是Java 應用描述符(JAD)。
      獲取描述符中包括的API屬性列表(框310)。 API屬性列表標識了 Java應用所引用的所有Java類文件。例如,在本發(fā)明的一些實施方式中, 將API屬性文件添加至該應用的JAD文件中。對于指定Java應用(如 MIDlet)來說,API屬性列表可以提供所有必需API (類)的列表。如將 進一步描述的,API的列表可以由服務器自動生成,服務器分析JAR文 件等中的每個類文件。例如,API屬性列表可能包括下列各項 java.lang.Boolean、 java,lang.Btye、 …、javax.microedition.midlet.MIDlet、 javax.microedition.io.Connection、 …、javax.microedition.media.Player、 … com.mascotcapsule.micro3d.v3. Vector3D 。
      還應理解的是,列出的API或Java類的標識通常會包括一個或更多 個包標識,其中,該包標識了對應的類集。己知的是,將Java類組織成 包。這禾中已知Java類包的示例包括java.io、com.sun.io禾口 com.sonyericsson. j2me.sdk。這種包(有時稱為庫)是對相關類進行分組的一種方式。類通 常由其完全合格類名(其通常包括后面跟著類名的包名)來唯一地標識。 例如,java.io.InputStream標識了作為java.io包的成員的InputStream類。 此處使用的術語"束"包括但不限于Java包。
      使用束標識而不是單獨列出API屬性列表中的每個類,這可以潛在 地提供對API屬性列表的長度的顯著縮短,API屬性列表的長度因其列 出了 Java應用所引用的所有單個類而有可能相當冗長。因而,為了縮短 屬性列表的長度,可以利用API束的概念。例如,Mascot Capsule v3 API 通常包括下列類ActionTable、 AffineTrans 、 Effect3D 、 Figure 、FigureLayout、 Graphics3D、 Light、 Texture、 Util3D, Vector3D??梢詫?類集關聯(lián)為(reference as)束,而不是列出每個單獨的類。示例性束標識 是com.mascotcapsule.micro3d.v3.[REVA],其中[REVA]是指包括類集的 API的特定修訂。再舉一個例子,如果某一應用需要CLDC1.1和MIDP2.0, 則可以將API屬性設置成Javax.microedition.[CLDCl,l] 、 javax. microedition.[MIDP2.0],它們指出了必需的Java和Javax包中的所有類。
      將獲取的API屬性列表與移動終端支持的Java類文件列表進行比 較,以確定移動終端是否支持該Java應用(框315)。下面參照框320到 330,對基于框315處的比較來控制下載Java應用的操作進行描述。如果 移動終端支持該Java應用(框320),則下載該Java應用(框325)。如 果移動終端不支持該Java應用(框320),則通知移動終端的用戶,移動 終端不支持該Java應用(框330)。
      下面參照圖4所示流程圖,對根據(jù)本發(fā)明一些實施方式的生成Java 應用的API屬性列表的方法進行描述。如圖4的實施方式所示,操作以 獲得標識了對于各個束而言已知的所有類的已知束列表而開始(框400)。 換句話說,生成API屬性列表的裝置或服務器可以擁有或從多個不同供 應商源獲得束信息,包括對于這種束而言已知的所有類的標識。將所有 必需類列表和所有必需束列表都初始化成空集(框405)。
      下面參照框410和415,對涉及標識與Java應用相關聯(lián)的所有Java 類文件的操作進行描述。標識Java應用中包含的所有Java類文件(框 410)。還標識Java應用中包含的Java類文件所引用的所有Java類文件(框 415)。然后針對在框415處標識的每一個引用Java類文件來執(zhí)行要參照 框418至lj440而描述的操作。
      在本發(fā)明的特定實施方式中,將Java應用存儲在Java檔(JAR)文 件中,JAR文件包含幾個Java類文件和其它資源。另外,每個類文件內 部都可以是與列出的類所弓I用的任何其它類有關的信息。更具體地說, 在本發(fā)明的一些實施方式中,在框410和415處獲得的必需類列表可以 通過檢査JAR文件中的類文件的域(包括常量池域、超類域、接口域) 而導出。下面,針對本發(fā)明的一些實施方式,參照框418到440,對格式化 所標識的Java類文件以生成API屬性列表的操作進行描述。在一些實施 方式中,針對框415處標識的每個引用Java類文件,執(zhí)行框418到440 的操作。應當明白,參照框418到440所述的格式化操作可以在對Java 類文件作出改變或者不作出改變的情況下執(zhí)行。例如,如果將AH屬性 列表設置在JAD文件中,則可以不對Java類文件進行改動。然而,類似 API標識符屬性還可以可選地設置在每個Java類文件內,并且例如被用 于當JAD文件中不存在API屬性列表時加速生成API屬性列表的處理。 無論如何,用于標識必需類的處理都無需包括改變類文件。
      下面參照圖4,針對所標識的引用Java類文件,確定引用的Java類 文件是否還是包含在Java應用中的類文件(框418)。如果是(框418), 則可以跳過框425到435的操作。否則,如果引用的Java類文件不是包 括在Java應用中的Java類文件(框41S),則確定所標識的Java類文件 是否包括在必需束列表中包括的任何束中或必需類列表中包括的類中 (框420)。如果所標識的Java類文件未包括在所有必需束列表中包括的 任何束中或者必需類列表中包括的任何類中(框420),則確定所標識的 Java類文件是否對于已知束列表中列出的已知束之一是已知的(框425)。 否則(框420),操作移至框440。
      如果確定出所標識的Java類文件對于列出的已知束之一是已知的 (框425),則將該列出的已知束之一添加至所有必需束列表中(框430)。 如果確定出所標識的Java類文件對于列出的已知束之一不是己知的(框 425),則將所標識的Java類文件添加至所有必需束列表中(435)。如果 還存在另外的所標識的引用類(框440),則重復框418到440的操作。
      基于必需束列表和必需類列表來生成Java類的API屬性列表(框 445)??梢詫PI屬性列表并入描述符(如JAD)中(框450)。可以將 API屬性列表插入到Java類文件中。例如,當JAD不存在并且通過網(wǎng) 絡一次一個類地下載Java應用時,在一些實施方式中可能希望將API 屬性列表插入到Java類文件中。這可以使下載裝置能夠在僅下載單個類 文^(牛(即,包含應用入口點的類文件)之后即可確定該裝置是否支持該
      21應用。
      下面參照圖5所示流程圖,對根據(jù)本發(fā)明另一些實施方式的控制向
      移動終端下載java應用的方法進行描述。應當明白,雖然參照圖5中的 相應框示出了多種不同操作,但本發(fā)明的特定實施方式可以包括這些操 作的不同組合,并且本發(fā)明的其它實施方式中不必包括所有這些操作。 對于圖5所示的特定實施方式,操作以接收到向移動終端等下載java應 用的請求而開始(框500)。下載與該Java應用相關聯(lián)的諸如JAD的描述 符(框505)。
      下面參照圖5的其他框,對用于控制下載的操作進行進一步描述。 如果下載的描述符包括API屬性列表(框510),則獲取該API屬性列表 (框515)。如果描述符不包括API屬性列表(框510),則確定請求下載 該Java應用的移動終端所支持的Java類文件列表中是否包括由下載的描 述符的除了 API屬性列表以外的其它域所標識的束,以確定移動終端是 否支持該Java應用(框520)。
      例如,Java應用描述符(JAD)文件通常包含表示必需配置和框架 (profile)支持的MicroEdition-Configuration禾卩MicroEdition-Profile的屬 性,例如,CLDCl.O、 CLDCl.l、 MIDP1.0以及MIDP2.0。盡管許多應用 需要CLDC和MIDP以上和以外的其它API,但這些域名稱可以提供與 必需的核心API (類)有關的信息。盡管如此,如在此描述和在框520 處執(zhí)行的,對于本發(fā)明的某些實施方式,可以暗示在下載的描述符的其 它域中找到的根據(jù)標準配置和框架屬性(如CLDC1.0、CLDC1.1 、MIDP2.0 禾口/或MIDP1.0)的必需束。當API屬性列表如參照框545、 550以及540 進一步描述的那樣尚未存在時,在本發(fā)明的一些實施方式中,這可以用 于通過不在API屬性列表中重新標識這種束來縮短生成的API屬性列表 的長度,和/或可以用于避免Java應用的不必要下載。
      如果通過檢查描述符中的其它域沒有標識下載裝置所不支持的必需 束(框520),則下載該Java應用本身(框525)。同樣地, 一旦在框525 處下載了 Java應用,下載裝置本身可以按照諸如先前參照圖4的實施方 式描述的用于生成用于包括在描述符中的API屬性列表的方式來生成API屬性列表。同樣地,下載裝置可以在框530處生成API屬性列表, 以在下載裝置上建立驗證API屬性列表,以進行如參照圖3所述的關于 裝置是否支持該Java應用的評估。換句話說,如果API屬性在JAD文件 中缺失,則仍可以在框520和525處下載JAR文件之前檢査配置和框架 API。雖然下載JAR文件或Java應用可避開降低對于下載不支持應用的 需要的益處,但盡管如此,在安裝應用之前,下載裝置仍可以檢査JAR 文件中的類,并且確定下載裝置是否支持所有必需類。在安裝應用之前 還可以執(zhí)行類似的API支持檢査。如果這種驗證API檢查失敗,則可以 通知用戶,該應用與裝置不兼容(即,無法得到必需API或類)。因而, 雖然仍可以下載不支持的Java應用,但可以在用戶嘗試安裝和操作該 Java應用之前,通過通知該用戶該應用不兼容來向該用戶提供裝置性能 的更好審視。
      一些實施方式可能基于是服務器還是客戶機裝置來生成API屬性列 表而有所不同。例如,客戶機裝置通常明確了解它所支持的應用。在一 些實施方式中,服務器了解不同的可能下載客戶機裝置所支持的超集, 于是可以在生成API屬性列表時執(zhí)行最佳配合操作。換句話說,類可能 包括在幾個束中,并且在幾個束當中進行選擇時,可以首先選擇包括最 少數(shù)量類的束。隨后,如果添加了作為先前添加的束的超集的第二束, 則該第二束可以替換第一束和/或可以提供與該應用以哪一個裝置為目標 有關的額外信息。而且,雖然API屬性(對于整個應用來說)可能在JAD 文件中缺失,但可能已經(jīng)將這個信息添加到單獨Java類文件的內部,這 使得移動客戶機能夠更容易生成API屬性列表。
      對于一些Java應用來說,與Java應用相關聯(lián)的引用類既可以是必需 API (類)也可以是可選API (類)。換句話說,盡管可以改變和/或限制 不支持可選API/類的Java應用的性能和特征,但所標識的Java類或API 可以是可選的。因而,在本發(fā)明的一些實施方式中,可以在必需的與可 選的API/類之間進行區(qū)別,如下面參照框535-550描述的。針對這種實 施方式,生成的API屬性列表等向生成API屬性列表的下載裝置或服務 器提供將特定的列出類/API指定為可選或必需的必要信息。在圖5的實施方式中可以看出,進一步評估框520或535處的任何 不支持的標識類,以確定它是否為可選的(框545)。如果所標識的類或 束是可選的(框545),則確定是否應當無論如何,換句話說,不管下載 裝置不支持所標識的可選類的事實而下載該Java應用(框550)。例如, 在本發(fā)明的一些實施方式中,框550處的操作包括在下載Java應用之前 通知移動終端的用戶可能下載功能受限的Java應用。接著,可以自動進 行下載,或者可以根據(jù)希望下載功能受限的應用的用戶所進行的選擇而 定。在一些實施方式中,下載裝置可以被設置成,預先根據(jù)預定規(guī)則集 (如用戶選擇)進行下載決定,以繼續(xù)進行或不繼續(xù)進行下載不支持可 選類/API的Java應用。如果要下載不支持可選類的應用(框550),則在 沒有預先下載的情況下下載所請求的Java應用(框540)。類似的是,如 果沒有標識不支持的類(框535),則在沒有預先下載的情況下在框540 處下載所請求的Java應用。換句話說,如果在框525處已經(jīng)下載了 Java 應用文件,則不需要在框540處再次下載。
      還應明白,在一些實施方式中,所標識的Java類文件具有關聯(lián)版本, 并且必需類和束的列表可以包括關聯(lián)版本的對應標識。與確定所標識的 Java類文件是否包括在任何束中或包括在對于移動終端而言己知的束中 有關的操作可以類似地基于關聯(lián)版本號。換句話說,類或束可以對下載 裝置而言是已知的,不過僅僅是版本號比已經(jīng)被標識為要下載的Java應 用所必需的類和/或束的版本早的下載裝置。因此,在版本號不匹配的情 況下,Java應用可能會因所需版本號不支持而被標識為不被下載裝置支 持。例如,方法/域簽名可以與列出的束或類定義相關聯(lián),以確保在要下 載的Java應用中標識的類的正確版本被下載裝置支持。這可以被表示在 API屬性列表和束定義中,作為帶有方法的類型簽名(類型和/或次序和/ 或參數(shù))的方法列表。
      因而,根據(jù)本發(fā)明的一些實施方式,可以提供經(jīng)修改的安裝處理,
      其中,下載裝置接收用戶對于要下載的應用的選擇,并且開始向下載裝 置下載/傳遞該應用,包括首先下載描述符文件,如包含API屬性的JAD 文f^。下載裝置可以讀取JAD文件并將API屬性列表中列出的束和/或Java庫與下載裝置所支持的束和/或Java庫的集合進行比較。如果下載裝 置不支持所有的必需API,則可以通知用戶,該應用與這個下載裝置不兼 容,并且可以終止安裝處理。如果下載裝置不支持所有可選API,則可以 通知用戶,可以安裝該應用,但因為不支持所有API而功能受到限制。 如果下載裝置支持所有必需和可選API,則可以繼續(xù)下載Java應用(如 JAR文件)并且安裝該應用。安裝處理隨后可以正常地繼續(xù)。在描述符 JAD文件中不存在API屬性列表的情況下, 一些實施方式繼續(xù)進行正常 安裝而不需要驗證兼容性,或者可用通過生成用于檢查下載裝置本身的 驗證API屬性列表而如參照框525和530所描述地進行經(jīng)修改的安裝處 理。
      因而,如上參照不同實施方式所述,本發(fā)明的一些實施方式在下載、 安裝和運行應用之前為標識不支持的應用作準備。這種操作可以限制或 防止終端用戶受挫于體驗無功能應用以及與下載和安裝無功能應用相關 聯(lián)的潛在的時間及資源浪費。
      如上通常所述,當開始生成針對指定Java應用的API屬性列表時, 首先將必需束列表和必需類列表設置成空集,從而可以利用針對特定 Java應用的所有必需類的標識和束標識來構建它們。還獲得已知束信息, 從而由于利用了束標識而非每個類的單獨類標識列表而可能縮小API屬 性列表的長度和尺寸。針對一些特定實施方式,可以保持注冊的已知束, 從而在定義新API束時,可以對它們進行標準化和版本控制。例如,可 以將這個信息設置在公共服務器上,以使應用服務器、應用開發(fā)方和/或 裝置制造方能夠更新和/或引用這種束信息。
      而且,如上所述,在一些實施方式中,可以讀取針對Java應用的JAR 文件,以創(chuàng)建該JAR文件中包含的所有類文件的列表,并且針對該JAR 文件中的每個類,可以檢查該類并且可以創(chuàng)建引用類列表。針對每個引 用類,可以確定引用類是否已經(jīng)包括在該JAR文件中所包含的類列表中, 如果是,則為了避免冗余,操作可以跳至下一個類。還確定引用類是否 包括在必需束列表中的任何束中,如果是,則可以跳過該引用類。如果 引用類包括在已知束列表中列出的任何束中,則可以將該束添加至必需
      25束列表中。如果引用類既未存在于必需類列表中,也不與任何已知或列 出必需束相關聯(lián),則可以將它添加至必需類列表中。換句話說,引用的
      或者與Java應用文件相關聯(lián)的類可以作為已知該類的已知束/庫的一部分 被優(yōu)先包括在API屬性列表中,而如果得不到這種已知束,則可以在API 屬性列表文件中單獨列出。因而,如上所述,服務器或其它裝置可以生 成針對現(xiàn)有Java應用的API屬性列表,并將這個屬性列表添加至諸如JAD 文件的描述符中,而無需人的干預。
      本領域技術人員應當清楚,本發(fā)明可以具體實施為方法、系統(tǒng)、移 動終端或計算機程序產品。因此,本發(fā)明可以采取全部硬件實施方式、 全部軟件實施方式或組合了軟件和硬件方面的實施方式的形式,在此通 稱為"電路"或"模塊"。
      用于執(zhí)行本發(fā)明的操作的計算機程序代碼可以采用面向對象的編程 語言(如Java 、 Smalltalk或C++)、常規(guī)過程化編程語言(如"C"編 程語言)或低級代碼(如匯編語言和/或微代碼)來編寫。程序代碼可以 作為獨立軟件包或作為另一軟件包的一部分全部在單個處理器上和/或通 過多個處理器來執(zhí)行。
      上面參照根據(jù)本發(fā)明的實施方式的方法、裝置(系統(tǒng))以及計算機 程序產品的流程圖例示和/或框和/或流程圖,對本發(fā)明進行了描述。應當 明白,這些流程圖例示和/或框圖的每一個框,以及這些流程圖例示和/ 或框圖中的框的組合都可以通過計算機程序指令來實現(xiàn)??梢詫⑦@些計 算機程序指令提供給通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝 置的處理器,以生成機器,使得經(jīng)由計算機或其它可編程數(shù)據(jù)處理裝置 的處理器執(zhí)行的這些指令能夠創(chuàng)建用于實現(xiàn)這些流程圖和/或框和/或流 程圖框或多個框中所指定的功能的裝置。
      還可以將這些計算機程序指令存儲在可以指引計算機或其它可編程 處理器以按特定方式工作的計算機可讀存儲器中,從而存儲在計算機可 讀存儲器中的指令可以生成包括實現(xiàn)這些流程圖和/或框圖框或多個框中 所指定的功能的指令裝置的制品。
      還可以將這些計算機程序指令加載到計算機或其它可編程數(shù)據(jù)處理器上,以使在該計算機或其它可編程處理器上執(zhí)行一系列操作步驟,來 生成計算機實現(xiàn)的處理,使得在該計算機或其它可編程處理器上執(zhí)行的 指令能夠提供用于實現(xiàn)這些流程圖和/或框圖框或多個框中所指定的功能 或動作的步驟。
      附圖和說明書中已經(jīng)公開了本發(fā)明的示范實施方式。盡管采用了特 定術語,但是它們僅按一般且描述性意義來使用,而非出于限制的目的, 本發(fā)明的范圍通過下列權利要求來限定。
      權利要求
      1、一種控制向移動終端下載Java應用的方法,該方法包括以下步驟接收向所述移動終端下載所述Java應用的請求;下載與所述Java應用相關聯(lián)的描述符;獲取所述描述符中標識的API屬性列表,該API屬性列表標識了被所述Java應用引用的所有Java類文件;將所述API屬性列表與所述移動終端所支持的Java類文件的列表進行比較,以確定所述移動終端是否支持所述Java應用;以及基于所述API屬性列表與所述移動終端所支持的Java類文件的列表的比較來控制下載所述Java應用,包括在所述移動終端支持所述Java應用時下載所述Java應用,而在所述移動終端不支持所述Java應用時通知所述移動終端的用戶所述移動終端不支持所述Java應用。
      2、 根據(jù)權利要求1所述的方法,其中,獲取所述描述符中標識的 API屬性列表的步驟包括基于從所述描述符中獲取的標識來下載所述Java應用中包括的Java 類文件;以及從下載的Java類文件中獲取所述API屬性列表。
      3、 根據(jù)權利要求1所述的方法,其中獲取所述描述符中標識的API 屬性列表的步驟包括獲取所述描述符中包括的API屬性列表。
      4、 根據(jù)權利要求3所述的方法,該方法還包括以下步驟確定所述 描述符不包括所述API屬性列表,其中,當所述描述符不包括所述API 屬性列表時,控制下載的步驟包括下載所述Java應用;標識與所述Java應用相關聯(lián)的所有Java類文件;以及 對所標識的Java類文件進行格式化以生成驗證API屬性列表; 其中,比較API屬性列表的步驟包括將所述驗證AH屬性列表與所 述移動終端所支持的Java類文件的列表進行比較,以確定所述移動終端是否支持所述Java應用。
      5、 根據(jù)權利要求4所述的方法,其中,標識與所述Java應用相關 聯(lián)的所有Java類文件的步驟包括標識所述Java應用中包含的所有Java類文件;以及標識所述Java應用中包含的Java類文件中所引用的所有Java類文件。
      6、 根據(jù)權利要求5所述的方法,其中,對所標識的Java類文件進 行格式化以生成驗證API屬性列表的步驟包括生成所述API屬性列表 以標識所引用的Java類文件而無需標識所述Java應用中包含的Java類文 件。
      7、 根據(jù)權利要求5所述的方法,其中,所述描述符包括Java應用 描述符(JAD),而所述Java應用包括Java檔(JAR)文件,并且其中, 標識所述Java應用中包含的所有Java類文件的步驟包括標識所述JAR 文件中包含的所有Java類文件。
      8、 根據(jù)權利要求5所述的方法,其中,標識所述Java應用中包含 的所有Java類文件的步驟包括生成所述Java應用中包含的所有Java 類文件的列表,并且其中,在標識所述Java應用中包含的Java類文件中 所引用的所有Java類文件之前將所有必需類的列表和所有必需束的列表 都初始化成空集,并且其中,對所標識的Java類文件進行格式化的步驟 包括針對每個所引用的Java類文件確定所引用的Java類文件是否被包括在所述Java應用中包含的所有 Java類文件的列表中;當所引用的Java類文件沒有被包括在所述Java應用中包含的所有 Java類文件的列表中時,確定所引用的Java類文件是否被包括在所述所 有必需束的列表中所包括的任何束中;當所引用的Java類文件沒有被包括在所述所有必需束的列表中所包 括的任何束中時,確定所引用的Java類文件是否被包括在對于所述移動 終端而言已知的束中;當確定出所引用的Java類文件被包括在所述對于所述移動終端而言已知的束中時,將所述對于所述移動終端而言已知的束添加至所述所有必需束的列表中;以及當確定出所標識的Java類文件沒有被包括在所述所有必需束的列表 中所包括的任何束中或對于所述移動終端而言已知的束中或所述Java應 用中包含的所有Java類文件的列表中時,將所引用的Java類文件添加至 所述所有必需類的列表中;并且其中,對所標識的Java類文件進行格式化的步驟還包括基于所述 必需束的列表和所述必需類的列表來生成所述驗證API屬性列表。
      9、 根據(jù)權利要求8所述的方法,其中,所述必需束的列表和/或所 述已知束的列表包括Java包的標識。
      10、 根據(jù)權利要求8所述的方法,其中,所引用的Java類文件具有 關聯(lián)版本,并且其中將所引用的Java類文件添加至所述列表中的步驟包 括添加所述關聯(lián)版本的標識,并且其中,確定所引用的Java類文件是 否包括在所述所有必需束的列表中包括的任何束中的步驟和確定所引用 的Java類文件是否包括在對于所述移動終端而言已知的束中的步驟是基 于所述關聯(lián)版本來執(zhí)行的。
      11、 根據(jù)權利要求IO所述的方法,其中,添加標識的步驟包括添 加與所引用的Java類文件相關聯(lián)的方法類型簽名。
      12、 根據(jù)權利要求8所述的方法,其中,所述描述符包括Java應用 描述符(JAD)而所述Java應用包括Java檔(JAR)文件,并且其中, 標識所述Java應用中包含的所有Java類文件的步驟包括檢査所述JAR 文件中包含的所有Java類文件的常量池域、超類域以及接口域。
      13、 根據(jù)權利要求8所述的方法,其中,所標識的Java類文件被標 識為可選或必需的,并且其中,當所述移動終端支持所述Java應用時下 載所述Java應用的步驟包括當所述移動終端支持所有被標識為必需和 所有被標識為可選的Java類文件時自動下載所述Java應用,并且其中, 當所述移動終端支持所有被標識為必需的Java類文件和并非所有被標識 為可選的Java類文件時下載所述Java應用的步驟包括可以在下載所述 Java應用之前通知所述移動終端的用戶可能會下載功能受限的所述Java應用,并且其中,通知所述移動終端的用戶所述移動終端不支持所述Java 應用的步驟包括當所述移動終端并不支持所有被標識為必需的Java類 文件時,通知所述移動終端的用戶所述移動終端不支持所述Java應用。
      14、 根據(jù)權利要求8所述的方法,其中,在當所述JAD不包括所述 API屬性列表時下載所述Java應用之前將下載的描述符中包括的域所標 識的任何束與所述移動終端支持的Java類文件的列表進行比較,并且其 中,當下載的描述符中包括的域所標識的任何束都沒有包括在所述移動 終端支持的Java應用的列表中時,不下載所述Java應用,并且通知所述 用戶所述移動終端不支持所述Java應用。
      15、 根據(jù)權利要求3所述的方法,其中,比較所述API屬性列表的 步驟包括確定下載的描述符中包括的除所述API屬性列表以外的其它 域所標識的任何束是否包括在所述移動終端支持的Java類文件的列表 中,以確定所述移動終端是否支持所述Java應用。
      16、 根據(jù)權利要求3所述的方法,其中,所述移動終端支持的Java 類文件的列表包括至少一個束標識,并且所述API屬性列表包括至少一 個束標識,并且其中,比較所述API屬性列表的步驟包括將所述API 屬性列表中標識的所述至少一個束與所述移動終端支持的Java類文件的 列表中標識的所述至少一個束進行比較。
      17、 一種用于控制向移動終端下載Java應用的計算機程序產品,該 計算機程序產品包括體現(xiàn)為計算機可讀介質形式的計算機程序代碼,所 述計算機程序代碼包括被設置用于執(zhí)行權利要求1所述的方法的程序代 碼。
      18、 一種被設置用于執(zhí)行權利要求1所述的方法的通信系統(tǒng)。
      19、 一種用于生成Java應用的API屬性列表的方法,該方法包括以 下步驟獲得已知束的列表,該已知束的列表標識了對于各個已知束而言己 知的所有類;將所有必需類的列表和所有必需束的列表都初始化成空集; 標識所述Java應用所引用的所有Java類文件;以及對所標識的Java類文件進行格式化以生成所述API屬性列表,其中, 對所標識的Java類文件進行格式化的步驟包括對于每個所標識的Java類 文件-確定所標識的Java類文件是否被包含在所述Java應用中; 當所標識的Java類文件沒有被包含在所述Java應用中時,確定所標識的Java類文件是否被包括在所述所有必需束的列表中所包括的任何束中;當所標識的Java類文件沒有被包括在所述所有必需束的列表中所包 括的任何束中時,確定所標識的Java類文件是否對于已知束的列表中所 列出的已知束之一而言是已知的;當確定出所標識的Java類文件對于所述列出的已知束之一而言是已 知的并且沒有被包含在所述Java應用中時,將所述列出的已知束之一添 加至所述所有必需束的列表中;以及當確定出所標識的Java類文件沒有被包括在所述所有必需束的列表中所包括的任何束中或對于列出的已知束之一而言是已知的或包含在所 述Java應用中時,將所標識的Java類文件添加至所述所有必需類的列表 中;并且其中,對所標識的Java類文件進行格式化的步驟還包括基于所需 束的列表和所需類的列表來生成所述API屬性列表。
      20、 根據(jù)權利要求19所述的方法,其中,標識所述Java應用所引 用的所有Java類文件的步驟包括-標識所述Java應用中包含的所述Java類文件;以及標識所述Java應用中包含的Java類文件所引用的所有Java類文件。
      21、 根據(jù)權利要求20所述的方法,其中,所述Java應用包括Java 應用描述符(JAD)和Java檔(JAR)文件,并且其中,標識所述Java 應用中包含的所有Java類文件的步驟包括標識所述JAR文件中包含的 所有Java類文件,并且其中,在生成所述API屬性列表之后將所述API 屬性列表并入所述JAD中。
      22、 一種用于生成Java應用的API屬性列表的計算機程序產品,所述計算機程序產品包括體現(xiàn)為計算機可讀介質形式的計算機程序代碼,所述計算機程序代碼包括被設置用于執(zhí)行權利要求19所述的方法的程序代碼。
      23、 一種被設置用于執(zhí)行權利要求19所述的方法的計算機系統(tǒng)。
      24、 一種移動終端,該移動終端包括用戶界面,其被設置用于接收下載Java應用的用戶請求,并且在所 述移動終端不支持所請求的Java應用時通知用戶;通信接口 ,其被設置用于響應于所述用戶請求而下載所述Java應用;所述移動終端支持的Java類文件的列表;以及控制器,其被設置用于標識所述Java應用必需的所有Java類文件, 并且基于所述移動終端支持的Java類文件的列表與所述Java應用必需的 所有Java類文件的比較來控制下載所述Java應用,所述控制下載包括當 所述移動終端支持的Java類文件的列表包括所述Java應用必需的所有 Java類文件時利用所述通信接口來下載所述Java應用,而在所述移動終 端支持的Java類文件的列表不包括所述Java應用必需的所有Java類文件 時通過所述用戶界面向所述用戶提供通知。
      25、 根據(jù)權利要求24所述的移動終端,其中,所述控制器被設置成, 通過利用所述通信接口下載與所述Java應用相關聯(lián)的描述符并且獲取所 述描述符中包括的API屬性列表來標識所述Java應用必需的Java類文 件,所述API屬性列表標識了所述Java應用必需的所有Java類文件。
      26、 根據(jù)權利要求24所述的移動終端,其中,所述控制器被設置成, 當所述描述符不包括所述API屬性列表時利用所述通信接口下載所述 Java應用,并且根據(jù)下載的Java應用來生成所述API屬性列表。
      27、 一種用于生成Java應用的API屬性列表的計算機系統(tǒng),該計算 機系統(tǒng)包括已知束的列表,該已知束的列表標識了對于各個已知束而言已知的 所有類;所有必需類的列表; 所有必需束的列表;必需類標識模塊,其被設置用于標識所述Java應用所引用的所有Java類文件;以及API屬性列表生成模塊,其被設置用于將所述所有必需類的列表和所述所有必需束的列表都初始化成空集,并且通過對于每個所標識的Java類文件執(zhí)行下列步驟來格式化所標識的Java類文件1)確定所標識的Java類文件是否包括在所述所有必需束的列表中所包括的任何束中;2)當所標識的Java類文件沒有包括在所述所有必需束的列表中所包括的任何束中時,確定所標識的Java類文件是否對于所述已知束的列表中列出的已知束之一而言是已知的;3)當確定出所標識的Java類文件對于所列出的己知束之一而言是已知的并且不是所述Java應用中包含的Java類文件時,將所列出的己知束之一添加至所述所有必需束的列表中;以及4)當確定出所標識的Java類文件沒有包括在所述所有必需束的列表中所包括的任何束中或對于列出的已知束之一而言是已知的或包含在所述Java應用中時,將所標識的Java類文件添加至所述所有必需類的列表中;并且該API屬性列表生成模塊被設置用于基于所述必需束的列表和所述必需類的列表來生成所述API屬性列表。
      28、 一種Java應用文件,該Java應用文件包括多個Java類文件;以及Java應用描述符文件,其包括所述Java應用文件必需的、在所述Java應用描述符文件中沒有另外標識的所有Java類文件的標識。
      29、 一種Java應用文件,該Java應用文件包括多個Java類文件;以及這多個Java類文件中的至少一個Java類文件中的、標識了所述Java應用文件必需的Java類文件的API屬性列表,所述Java應用文件必需的Java類文件包括被這些Java類文件中的至少一個其它Java類文件引用而沒有被包括所述API屬性列表的所述至少一個Java類文件引用的Java類文件。
      全文摘要
      本發(fā)明提供了一種控制向移動終端下載Java應用的方法,該方法包括以下步驟接收向移動終端下載Java應用的請求;下載與該Java應用相關聯(lián)的描述符;若可以得到該描述符,則從中獲取該描述符中標識的API屬性列表,該API屬性列表標識了被該Java應用引用的所有Java類文件;將該API屬性列表與移動終端所支持的Java類文件的列表進行比較,以確定移動終端是否支持該Java應用;以及基于該API屬性列表與移動終端所支持的Java類文件的列表的比較來控制下載該Java應用,包括在移動終端支持該Java應用時下載該Java應用,而在移動終端不支持該Java應用時通知移動終端的用戶該移動終端不支持該Java應用。
      文檔編號G06F9/445GK101495963SQ200780028326
      公開日2009年7月29日 申請日期2007年2月6日 優(yōu)先權日2006年7月28日
      發(fā)明者保羅·H·尼科爾斯 申請人:索尼愛立信移動通訊有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1