CN101495963A - 基于支持类的标识来下载Java应用的方法、系统和计算机程序产品 - Google Patents
基于支持类的标识来下载Java应用的方法、系统和计算机程序产品 Download PDFInfo
- Publication number
- CN101495963A CN101495963A CNA2007800283263A CN200780028326A CN101495963A CN 101495963 A CN101495963 A CN 101495963A CN A2007800283263 A CNA2007800283263 A CN A2007800283263A CN 200780028326 A CN200780028326 A CN 200780028326A CN 101495963 A CN101495963 A CN 101495963A
- Authority
- CN
- China
- Prior art keywords
- java
- java class
- file
- class file
- tabulation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/72406—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明提供了一种控制向移动终端下载Java应用的方法,该方法包括以下步骤:接收向移动终端下载Java应用的请求;下载与该Java应用相关联的描述符;若可以得到该描述符,则从中获取该描述符中标识的API属性列表,该API属性列表标识了被该Java应用引用的所有Java类文件;将该API属性列表与移动终端所支持的Java类文件的列表进行比较,以确定移动终端是否支持该Java应用;以及基于该API属性列表与移动终端所支持的Java类文件的列表的比较来控制下载该Java应用,包括在移动终端支持该Java应用时下载该Java应用,而在移动终端不支持该Java应用时通知移动终端的用户该移动终端不支持该Java应用。
Description
技术领域
本发明涉及下载应用的方法、系统和计算机程序产品,更具体地说,涉及下载Java应用的方法、系统和程序产品。
背景技术
目前已经提出了类型繁多的能够通过不同类型的网络彼此通信的数据处理装置。另外,各种有线和无线网络利用允许在利用诸如网际协议(IP)的协议的不同网络上的不同装置之间进行通信的标准来工作。针对这种通信的普通方法涉及客户机-服务器模型,其中,客户机通常运行向远程服务器应用请求并从它接收数据的浏览器应用。按客户机-服务器关系模型从服务器装置下载的数据可以采用例如超文本标记语言(HTML)页面的形式,该页面可以包括嵌入式Java应用。
Java应用还可以通过其它方式从服务器装置下载和/或安装在多种客户机装置上。Java应用经常被用在像应用通常不链接至特定类型的平台硬件或操作系统这样的网络环境中。而且,Java应用通常具有一套关联的标准包(package)/库(library),其可以提供可通过不同Java应用而使用的功能。同样地,普通Java应用可以在多种处理平台上运行。
对于诸如移动终端的任何特定硬件平台来说,Java应用可以通过平台的卖方来提供,该Java应用通常被该硬件平台充分地支持,以使用户在下载这种卖方提供的Java应用并将其安装在移动终端上时通常不会遭遇问题。然而,通常还可以利用不同计算平台来下载并安装并非由该平台的卖方所提供的第三方Java应用。结果,可以从许多源来下载Java应用。这种下载的Java应用通常需要该硬件平台所支持的特定应用编程接口(API)或Java类(class),否则下载的Java应用通常将不能成功运行。必需的API可以通过Java包/库和/或通过Java类来指定。必需的API的示例包括移动信息设备框架(MIDP)、各种Java规范请求(JSR)、操作员特定API(如Nokia Sound)等。
如果将Java应用安装在不支持所有必需API的装置上,则该应用通常将不能运行。这种下载Java应用之后的故障在该应用被下载、安装并起动之后的运行时间之前通常不会被用户观察到。有时这种故障在起动了该应用并且用户访问该应用的需要不支持的API的特定特征之前可能不会发生。同样地,用户在下载和安装无功能应用时可能会浪费时间。结果,该用户会感到失望,并且可能产生对下载了该Java应用的装置的消极印象。
发明内容
本发明的实施方式包括控制向移动终端下载Java应用的方法。接收向移动终端下载Java应用的请求。下载与该Java应用相关联的描述符。获取该描述符中所标识的API属性列表。该API属性列表标识了该Java应用所引用(reference)的所有Java类文件。将该API属性列表与该移动终端所支持的Java类文件的列表进行比较,以确定该移动终端是否支持该Java应用。基于该API属性列表与该移动终端所支持的Java类文件的列表的比较来控制对该Java应用的下载。控制下载包括:当该移动终端支持该Java应用时下载该Java应用,而当该移动终端不支持该Java应用时向该移动终端的用户通知该移动终端不支持该Java应用。
在一些实施方式中,获取描述符中所标识的API属性列表的步骤包括:基于从该描述符中获取的标识来下载该Java应用中包括的Java类文件;以及从下载的Java类文件中获取API属性列表。在其它实施方式中,获取描述符中所标识的API属性列表的步骤包括获取该描述符中包括的API属性列表。
在另一些实施方式中,当确定描述符不包括API属性列表时,下载Java应用。标识与Java应用相关联的所有Java类文件,并且对所标识的Java类文件进行格式化以生成验证(validation)API属性列表。在这种实施方式中,比较API属性列表的步骤包括:将该验证API属性列表与移动终端所支持的Java类文件的列表进行比较,以确定该移动终端是否支持该Java应用。
在其它实施方式中,标识与Java应用相关联的所有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属性列表。必需束的列表和/或已知束的列表可以包括Java包的标识。
在其它实施方式中,所标识的Java类文件具有关联版本,并且将所标识的Java类文件添加至列表中的步骤包括添加该关联版本的标识。确定所标识的Java类文件是否包括在所有必需束的列表中包括的任何束中的步骤和确定所标识的Java类文件是否包括在移动终端已知的束中的步骤基于该关联版本。添加标识的步骤可以包括添加与所标识的Java类文件相关联的方法类型签名。
在另一些实施方式中,所标识的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属性列表的方法包括以下步骤:获得已知束的列表,该列表标识了对于各个已知束已知的所有类;将所有必需类的列表和所有必需束的列表初始化成空集并且标识该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应用相关联的描述符并且获取该描述符中包括的API属性列表来标识该Java应用必需的所有Java类文件,该API属性列表标识了该Java应用必需的所有Java类文件。该控制器可以被设置成,当该描述符不包括API属性列表时利用该通信接口来下载该Java应用,并且根据所下载的Java应用来生成API属性列表。
在其它实施方式中,一种用于生成Java应用的API属性列表的计算机系统包括:已知束的列表,该列表标识了对于各个已知束已知的所有类;所有必需类的列表和所有必需束的列表。该计算机系统还包括:必需类标识模块,其被设置成标识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是适于在本发明的一些实施方式中使用的数据处理系统的框图。
图2是根据本发明一些实施方式的通信系统的框图。
图3是例示根据本发明一些实施方式的下载Java应用的流程图。
图4是例示根据本发明一些实施方式的生成API属性列表的流程图。
图5是例示根据本发明其它实施方式的下载Java应用的流程图。
具体实施方式
下面参照附图,对本发明的具体示范实施方式进行描述。然而,本发明可以按许多不同形式来具体实施,而不应视为限于在此阐述的实施方式,相反,提供这些实施方式是为了使本公开详尽且完整,并且向本领域技术人员全面传达本发明的范围。在附图中例示的特定示范实施方式的详细描述中所使用的术语不意味着对本发明的限制。在这些图中,相同标号指代相同部件。
除非另外明确规定,此处使用的单数形式“一”和“该”也包括复数形式。还应明白,措辞“包括”和/或“包含”在本说明书中使用时指定了所述特征、整数、步骤、操作、部件和/或组件的存在,而并不排除存在或增加一个或更多个其它特征、整数、步骤、操作、部件、组件和/或它们的组合。应当明白,当我们说某一部件“连接至”或“耦接至”另一部件时,它可以直接连接至或耦接至另一部件,也可能存在中间部件。而且,此处使用的“连接至”或“耦接至”可以包括无线连接或耦接。此处使用的措辞“和/或”包括关联列出项中的一个或更多个的任何组合和所有组合。
除非另外限定,此处使用的所有术语(包括技术和科学术语)具有和本发明所属领域的普通技术人员通常理解的含义相同的含义。还应当明白,除非在此明确定义,诸如在通用词典中定义的那些术语的术语应被解释为具有与它们在相关领域和本说明书的语境中的含义一致的含义,而不应按理想化或过度形式化的意义来解释。
此处使用的“终端”既包括仅具有无线信号接收器而没有发送能力的装置又包括具有能够通过双向通信链路进行双向通信的接收和发送硬件的装置。这种装置可以包括:有或没有多线路显示器的蜂窝或其它通信装置;可以兼备语音和数据处理、传真和/或数据通信能力的个人通信系统(PCS)终端;可以包括射频接收器和寻呼机、互联网/内联网接入、Web浏览器、记事簿、日历和/或全球定位系统(GPS)接收器的个人数字助理(PDA);和/或常规膝上型和/或掌上型计算机或包括射频接收器的其它设备。此处使用的“移动终端”可以是便携式、移动式、安装在交通工具(航空、海上或陆上)中,或者定位于和/或被设置成在本地运转和/或在地上和/或空间中的任何其它位置处按分布方式运转。
下面参照图1,对示范性装置实施方式(例如,根据本发明一些示范实施方式而构成的个人计算机系统等或其它数据处理系统130)进行讨论。数据处理系统130(它例如可以并入在个人计算机、服务器计算机、PDA、无线终端/电话等中)可以包括:用户界面144(例如包括:诸如键盘或键区的输入装置、显示器、扬声器和/或麦克风),和与处理器138通信的存储器136。该数据处理系统130还可以包括也与处理器138通信的I/O数据端口146。I/O数据端口146可以被用于,例如利用网际协议(IP)连接,在数据处理系统130与可以关联服务供应商或用户通信装置的另一计算机系统或网络之间传递信息。这些组件可以是诸如许多常规数据处理系统中使用的组件的常规组件,它们可以被设置成按照此处描述的方式来运转。
如图1的实施方式中所示,存储器136包括必需束列表162、必需类列表150、已知束列表155、API列表生成模块160和必需类标识模块161。虽然在图1的实施方式中被表示为驻留在存储器136中,但应当明白,相应数据库和模块特征(包括API列表生成模块160和类标识模块161)例如可以被实现为数据处理系统130的操作系统、应用程序、动态链接库的组件的一部分等,从而全部或部分地由处理器138来执行。因此,图1例示的模块的特定组合完全是出于说明本发明的目的。
在本发明的一些实施方式中,API属性列表生成模块160被设置成,将所有必需类列表150和所有必需束列表162都初始化成空集,格式化一组与该Java应用相关联的Java类文件,并将其标识为API属性列表,其可以包括有与该Java应用相关联的描述符。更具体地说,API属性列表生成模块160可以被设置成,通过执行将参照图4来描述的操作而生成API属性列表。
在本发明的一些实施方式中,类标识模块161被设置成,标识与Java应用相关联的所有Java类文件。类标识模块161可以被设置成,标识Java应用中包含的所有Java类文件并标识该Java应用中包含的Java类文件中所引用的所有Java类文件。如此处要针对一些实施方式描述的,Java应用中包含的Java类文件不需要包括在API属性列表中,因为它们被包含在Java应用中,由此,在Java应用被下载时就是被下载装置支持的。类似的是,也包含在Java应用中的被引用Java类文件也不需要被包括在API属性列表中。
作为背景,Java类文件通常包含可执行字节码。例如,J2ME Java应用通常存储在Java架构(JAR)文件中,其通常包含几个类文件和其它资源。每个类文件内部通常都包括与该类所引用的任何其它类有关的信息。同样地,在本发明的一些实施方式中,可以通过检查JAR文件中的域(如常量池域、超类域、接口域)来生成必需类列表。
还应明白,在一些实施方式中,任何指定记录的Java类都可以存在一个或更多个不同版本。类的实现在装置之间可能不同,并且不同类实现或版本可以支持不同公共的(public)和保护的(protected)方法和域。同样地,在本发明的一些实施方式中,必需类标识模块161还确定必需类的版本。这种信息可以作为类或束定义的方法/域的签名而获得。
下面参照图2所示框图,对根据本发明的一些实施方式的诸如移动终端的通信系统进行描述。如图2的实施方式所示,被设置成下载Java应用的通信系统200可以包括用于与其它终端、服务器等进行通信的网络收发器225。网络收发器225通常包括发送器电路250和接收器电路245,它们分别经由天线265向服务器272、274发送出局射频信号和从服务器272、274接收入局射频信号。虽然图2示出了单个天线265,但应当明白,可以基于接收的信号的类型来利用多个天线和/或不同类型的天线。在通信系统200与服务器272、274之间传输的射频信号可以包括业务信号和控制信号(例如,寻呼信号/用于入局呼叫的消息),这些信号被用于建立和保持与另一方或目的地的通信,并且可以提供上行链路和/或下行链路通信。
如图2的实施方式中进一步示出的,通信系统200包括耦接至收发器225的处理器240。处理器240还耦接至可用于存储该处理器240在执行此处将进一步描述的操作时所使用的数据、程序等的存储器230。另外,还示出了耦接至处理器240的多个操作电路(operational circuit),包括必需类标识模块215和API属性列表生成模块235。虽然在图2的实施方式中被示出为分离的模块,但应当明白,在本发明的各种实施方式中,模块215、235可以全部或部分地实现为存储在存储器230中并由处理器240执行的编程代码。
在本发明的一些实施方式中,API列表生成模块160和必需类标识模块215可以大致如先前针对必需类标识模块161描述的那样,被设置成对下载至通信系统200的Java应用进行操作。类似的是,API属性列表生成模块235可以大致如先前针对API列表生成模块160描述的那样,被设置成对下载至通信系统200的Java应用进行操作。如图2的实施方式中进一步示出的,存储器230包括必需束列表231、必需类列表232以及已知束列表233,它们可以大致如先前针对必需束列表162、必需类列表150以及已知束列表155描述的那样设置和使用。
虽然参照模块之间的特定划分在图2中例示了本发明的实施方式,但本发明不应被视为限于图2的构造,而是要涵盖能够执行此处描述的操作的任何构造。而且,此处描述的功能例如可以通过插件(plug-in)或其它辅助代码来提供,以便为已有应用提供功能。
下面参照图3所示流程图,对根据本发明一些实施方式的用于控制对Java应用的下载的操作进行描述。对于图3所示实施方式来说,操作以接收到向移动终端等下载Java应用的请求而开始(框300)。下载与Java应用相关联的描述符(框305)。例如,在一些实施方式中,描述符是Java应用描述符(JAD)。
获取描述符中包括的API属性列表(框310)。API属性列表标识了Java应用所引用的所有Java类文件。例如,在本发明的一些实施方式中,将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。可以将类集关联为(reference as)束,而不是列出每个单独的类。示例性束标识是:com.mascotcapsule.micro3d.v3.[REVA],其中[REVA]是指包括类集的API的特定修订。再举一个例子,如果某一应用需要CLDC1.1和MIDP2.0,则可以将API属性设置成Javax.microedition.[CLDC1.1]、javax.microedition.[MIDP2.0],它们指出了必需的Java和Javax包中的所有类。
将获取的API属性列表与移动终端支持的Java类文件列表进行比较,以确定移动终端是否支持该Java应用(框315)。下面参照框320到330,对基于框315处的比较来控制下载Java应用的操作进行描述。如果移动终端支持该Java应用(框320),则下载该Java应用(框325)。如果移动终端不支持该Java应用(框320),则通知移动终端的用户,移动终端不支持该Java应用(框330)。
下面参照图4所示流程图,对根据本发明一些实施方式的生成Java应用的API属性列表的方法进行描述。如图4的实施方式所示,操作以获得标识了对于各个束而言已知的所有类的已知束列表而开始(框400)。换句话说,生成API属性列表的装置或服务器可以拥有或从多个不同供应商源获得束信息,包括对于这种束而言已知的所有类的标识。将所有必需类列表和所有必需束列表都初始化成空集(框405)。
下面参照框410和415,对涉及标识与Java应用相关联的所有Java类文件的操作进行描述。标识Java应用中包含的所有Java类文件(框410)。还标识Java应用中包含的Java类文件所引用的所有Java类文件(框415)。然后针对在框415处标识的每一个引用Java类文件来执行要参照框418到440而描述的操作。
在本发明的特定实施方式中,将Java应用存储在Java档(JAR)文件中,JAR文件包含几个Java类文件和其它资源。另外,每个类文件内部都可以是与列出的类所引用的任何其它类有关的信息。更具体地说,在本发明的一些实施方式中,在框410和415处获得的必需类列表可以通过检查JAR文件中的类文件的域(包括常量池域、超类域、接口域)而导出。
下面,针对本发明的一些实施方式,参照框418到440,对格式化所标识的Java类文件以生成API属性列表的操作进行描述。在一些实施方式中,针对框415处标识的每个引用Java类文件,执行框418到440的操作。应当明白,参照框418到440所述的格式化操作可以在对Java类文件作出改变或者不作出改变的情况下执行。例如,如果将API属性列表设置在JAD文件中,则可以不对Java类文件进行改动。然而,类似API标识符属性还可以可选地设置在每个Java类文件内,并且例如被用于当JAD文件中不存在API属性列表时加速生成API属性列表的处理。无论如何,用于标识必需类的处理都无需包括改变类文件。
下面参照图4,针对所标识的引用Java类文件,确定引用的Java类文件是否还是包含在Java应用中的类文件(框418)。如果是(框418),则可以跳过框425到435的操作。否则,如果引用的Java类文件不是包括在Java应用中的Java类文件(框418),则确定所标识的Java类文件是否包括在必需束列表中包括的任何束中或必需类列表中包括的类中(框420)。如果所标识的Java类文件未包括在所有必需束列表中包括的任何束中或者必需类列表中包括的任何类中(框420),则确定所标识的Java类文件是否对于已知束列表中列出的已知束之一是已知的(框425)。否则(框420),操作移至框440。
如果确定出所标识的Java类文件对于列出的已知束之一是已知的(框425),则将该列出的已知束之一添加至所有必需束列表中(框430)。如果确定出所标识的Java类文件对于列出的已知束之一不是已知的(框425),则将所标识的Java类文件添加至所有必需束列表中(435)。如果还存在另外的所标识的引用类(框440),则重复框418到440的操作。
基于必需束列表和必需类列表来生成Java类的API属性列表(框445)。可以将API属性列表并入描述符(如JAD)中(框450)。可以将API属性列表插入到Java类文件中。例如,当JAD不存在并且通过网络一次一个类地下载Java应用时,在一些实施方式中可能希望将API属性列表插入到Java类文件中。这可以使下载装置能够在仅下载单个类文件(即,包含应用入口点的类文件)之后即可确定该装置是否支持该应用。
下面参照图5所示流程图,对根据本发明另一些实施方式的控制向移动终端下载java应用的方法进行描述。应当明白,虽然参照图5中的相应框示出了多种不同操作,但本发明的特定实施方式可以包括这些操作的不同组合,并且本发明的其它实施方式中不必包括所有这些操作。对于图5所示的特定实施方式,操作以接收到向移动终端等下载java应用的请求而开始(框500)。下载与该Java应用相关联的诸如JAD的描述符(框505)。
下面参照图5的其他框,对用于控制下载的操作进行进一步描述。如果下载的描述符包括API属性列表(框510),则获取该API属性列表(框515)。如果描述符不包括API属性列表(框510),则确定请求下载该Java应用的移动终端所支持的Java类文件列表中是否包括由下载的描述符的除了API属性列表以外的其它域所标识的束,以确定移动终端是否支持该Java应用(框520)。
例如,Java应用描述符(JAD)文件通常包含表示必需配置和框架(profile)支持的MicroEdition-Configuration和MicroEdition-Profile的属性,例如,CLDC1.0、CLDC1.1、MIDP1.0以及MIDP2.0。尽管许多应用需要CLDC和MIDP以上和以外的其它API,但这些域名称可以提供与必需的核心API(类)有关的信息。尽管如此,如在此描述和在框520处执行的,对于本发明的某些实施方式,可以暗示在下载的描述符的其它域中找到的根据标准配置和框架属性(如CLDC1.0、CLDC1.1、MIDP2.0和/或MIDP1.0)的必需束。当API属性列表如参照框545、550以及540进一步描述的那样尚未存在时,在本发明的一些实施方式中,这可以用于通过不在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文件中的类,并且确定下载装置是否支持所有必需类。在安装应用之前还可以执行类似的API支持检查。如果这种验证API检查失败,则可以通知用户,该应用与装置不兼容(即,无法得到必需API或类)。因而,虽然仍可以下载不支持的Java应用,但可以在用户尝试安装和操作该Java应用之前,通过通知该用户该应用不兼容来向该用户提供装置性能的更好审视。
一些实施方式可能基于是服务器还是客户机装置来生成API属性列表而有所不同。例如,客户机装置通常明确了解它所支持的应用。在一些实施方式中,服务器了解不同的可能下载客户机装置所支持的超集,于是可以在生成API属性列表时执行最佳配合操作。换句话说,类可能包括在几个束中,并且在几个束当中进行选择时,可以首先选择包括最少数量类的束。随后,如果添加了作为先前添加的束的超集的第二束,则该第二束可以替换第一束和/或可以提供与该应用以哪一个装置为目标有关的额外信息。而且,虽然API属性(对于整个应用来说)可能在JAD文件中缺失,但可能已经将这个信息添加到单独Java类文件的内部,这使得移动客户机能够更容易生成API属性列表。
对于一些Java应用来说,与Java应用相关联的引用类既可以是必需API(类)也可以是可选API(类)。换句话说,尽管可以改变和/或限制不支持可选API/类的Java应用的性能和特征,但所标识的Java类或API可以是可选的。因而,在本发明的一些实施方式中,可以在必需的与可选的API/类之间进行区别,如下面参照框535-550描述的。针对这种实施方式,生成的API属性列表等向生成API属性列表的下载装置或服务器提供将特定的列出类/API指定为可选或必需的必要信息。
在图5的实施方式中可以看出,进一步评估框520或535处的任何不支持的标识类,以确定它是否为可选的(框545)。如果所标识的类或束是可选的(框545),则确定是否应当无论如何,换句话说,不管下载装置不支持所标识的可选类的事实而下载该Java应用(框550)。例如,在本发明的一些实施方式中,框550处的操作包括在下载Java应用之前通知移动终端的用户可能下载功能受限的Java应用。接着,可以自动进行下载,或者可以根据希望下载功能受限的应用的用户所进行的选择而定。在一些实施方式中,下载装置可以被设置成,预先根据预定规则集(如用户选择)进行下载决定,以继续进行或不继续进行下载不支持可选类/API的Java应用。如果要下载不支持可选类的应用(框550),则在没有预先下载的情况下下载所请求的Java应用(框540)。类似的是,如果没有标识不支持的类(框535),则在没有预先下载的情况下在框540处下载所请求的Java应用。换句话说,如果在框525处已经下载了Java应用文件,则不需要在框540处再次下载。
还应明白,在一些实施方式中,所标识的Java类文件具有关联版本,并且必需类和束的列表可以包括关联版本的对应标识。与确定所标识的Java类文件是否包括在任何束中或包括在对于移动终端而言已知的束中有关的操作可以类似地基于关联版本号。换句话说,类或束可以对下载装置而言是已知的,不过仅仅是版本号比已经被标识为要下载的Java应用所必需的类和/或束的版本早的下载装置。因此,在版本号不匹配的情况下,Java应用可能会因所需版本号不支持而被标识为不被下载装置支持。例如,方法/域签名可以与列出的束或类定义相关联,以确保在要下载的Java应用中标识的类的正确版本被下载装置支持。这可以被表示在API属性列表和束定义中,作为带有方法的类型签名(类型和/或次序和/或参数)的方法列表。
因而,根据本发明的一些实施方式,可以提供经修改的安装处理,其中,下载装置接收用户对于要下载的应用的选择,并且开始向下载装置下载/传递该应用,包括首先下载描述符文件,如包含API属性的JAD文件。下载装置可以读取JAD文件并将API属性列表中列出的束和/或Java库与下载装置所支持的束和/或Java库的集合进行比较。如果下载装置不支持所有的必需API,则可以通知用户,该应用与这个下载装置不兼容,并且可以终止安装处理。如果下载装置不支持所有可选API,则可以通知用户,可以安装该应用,但因为不支持所有API而功能受到限制。如果下载装置支持所有必需和可选API,则可以继续下载Java应用(如JAR文件)并且安装该应用。安装处理随后可以正常地继续。在描述符JAD文件中不存在API属性列表的情况下,一些实施方式继续进行正常安装而不需要验证兼容性,或者可用通过生成用于检查下载装置本身的验证API属性列表而如参照框525和530所描述地进行经修改的安装处理。
因而,如上参照不同实施方式所述,本发明的一些实施方式在下载、安装和运行应用之前为标识不支持的应用作准备。这种操作可以限制或防止终端用户受挫于体验无功能应用以及与下载和安装无功能应用相关联的潜在的时间及资源浪费。
如上通常所述,当开始生成针对指定Java应用的API属性列表时,首先将必需束列表和必需类列表设置成空集,从而可以利用针对特定Java应用的所有必需类的标识和束标识来构建它们。还获得已知束信息,从而由于利用了束标识而非每个类的单独类标识列表而可能缩小API属性列表的长度和尺寸。针对一些特定实施方式,可以保持注册的已知束,从而在定义新API束时,可以对它们进行标准化和版本控制。例如,可以将这个信息设置在公共服务器上,以使应用服务器、应用开发方和/或装置制造方能够更新和/或引用这种束信息。
而且,如上所述,在一些实施方式中,可以读取针对Java应用的JAR文件,以创建该JAR文件中包含的所有类文件的列表,并且针对该JAR文件中的每个类,可以检查该类并且可以创建引用类列表。针对每个引用类,可以确定引用类是否已经包括在该JAR文件中所包含的类列表中,如果是,则为了避免冗余,操作可以跳至下一个类。还确定引用类是否包括在必需束列表中的任何束中,如果是,则可以跳过该引用类。如果引用类包括在已知束列表中列出的任何束中,则可以将该束添加至必需束列表中。如果引用类既未存在于必需类列表中,也不与任何已知或列出必需束相关联,则可以将它添加至必需类列表中。换句话说,引用的或者与Java应用文件相关联的类可以作为已知该类的已知束/库的一部分被优先包括在API属性列表中,而如果得不到这种已知束,则可以在API属性列表文件中单独列出。因而,如上所述,服务器或其它装置可以生成针对现有Java应用的API属性列表,并将这个属性列表添加至诸如JAD文件的描述符中,而无需人的干预。
本领域技术人员应当清楚,本发明可以具体实施为方法、系统、移动终端或计算机程序产品。因此,本发明可以采取全部硬件实施方式、全部软件实施方式或组合了软件和硬件方面的实施方式的形式,在此通称为“电路”或“模块”。
用于执行本发明的操作的计算机程序代码可以采用面向对象的编程语言(如Smalltalk或C++)、常规过程化编程语言(如“C”编程语言)或低级代码(如汇编语言和/或微代码)来编写。程序代码可以作为独立软件包或作为另一软件包的一部分全部在单个处理器上和/或通过多个处理器来执行。
上面参照根据本发明的实施方式的方法、装置(系统)以及计算机程序产品的流程图例示和/或框和/或流程图,对本发明进行了描述。应当明白,这些流程图例示和/或框图的每一个框,以及这些流程图例示和/或框图中的框的组合都可以通过计算机程序指令来实现。可以将这些计算机程序指令提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,以生成机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令能够创建用于实现这些流程图和/或框和/或流程图框或多个框中所指定的功能的装置。
还可以将这些计算机程序指令存储在可以指引计算机或其它可编程处理器以按特定方式工作的计算机可读存储器中,从而存储在计算机可读存储器中的指令可以生成包括实现这些流程图和/或框图框或多个框中所指定的功能的指令装置的制品。
还可以将这些计算机程序指令加载到计算机或其它可编程数据处理器上,以使在该计算机或其它可编程处理器上执行一系列操作步骤,来生成计算机实现的处理,使得在该计算机或其它可编程处理器上执行的指令能够提供用于实现这些流程图和/或框图框或多个框中所指定的功能或动作的步骤。
附图和说明书中已经公开了本发明的示范实施方式。尽管采用了特定术语,但是它们仅按一般且描述性意义来使用,而非出于限制的目的,本发明的范围通过下列权利要求来限定。
Claims (29)
1、一种控制向移动终端下载Java应用的方法,该方法包括以下步骤:
接收向所述移动终端下载所述Java应用的请求;
下载与所述Java应用相关联的描述符;
获取所述描述符中标识的API属性列表,该API属性列表标识了被所述Java应用引用的所有Java类文件;
将所述API属性列表与所述移动终端所支持的Java类文件的列表进行比较,以确定所述移动终端是否支持所述Java应用;以及
基于所述API属性列表与所述移动终端所支持的Java类文件的列表的比较来控制下载所述Java应用,包括在所述移动终端支持所述Java应用时下载所述Java应用,而在所述移动终端不支持所述Java应用时通知所述移动终端的用户所述移动终端不支持所述Java应用。
2、根据权利要求1所述的方法,其中,获取所述描述符中标识的API属性列表的步骤包括:
基于从所述描述符中获取的标识来下载所述Java应用中包括的Java类文件;以及
从下载的Java类文件中获取所述API属性列表。
3、根据权利要求1所述的方法,其中获取所述描述符中标识的API属性列表的步骤包括:获取所述描述符中包括的API属性列表。
4、根据权利要求3所述的方法,该方法还包括以下步骤:确定所述描述符不包括所述API属性列表,其中,当所述描述符不包括所述API属性列表时,控制下载的步骤包括:
下载所述Java应用;
标识与所述Java应用相关联的所有Java类文件;以及
对所标识的Java类文件进行格式化以生成验证API属性列表;
其中,比较API属性列表的步骤包括将所述验证API属性列表与所述移动终端所支持的Java类文件的列表进行比较,以确定所述移动终端是否支持所述Java应用。
5、根据权利要求4所述的方法,其中,标识与所述Java应用相关联的所有Java类文件的步骤包括:
标识所述Java应用中包含的所有Java类文件;以及
标识所述Java应用中包含的Java类文件中所引用的所有Java类文件。
6、根据权利要求5所述的方法,其中,对所标识的Java类文件进行格式化以生成验证API属性列表的步骤包括:生成所述API属性列表以标识所引用的Java类文件而无需标识所述Java应用中包含的Java类文件。
7、根据权利要求5所述的方法,其中,所述描述符包括Java应用描述符(JAD),而所述Java应用包括Java档(JAR)文件,并且其中,标识所述Java应用中包含的所有Java类文件的步骤包括:标识所述JAR文件中包含的所有Java类文件。
8、根据权利要求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、根据权利要求8所述的方法,其中,所述必需束的列表和/或所述已知束的列表包括Java包的标识。
10、根据权利要求8所述的方法,其中,所引用的Java类文件具有关联版本,并且其中将所引用的Java类文件添加至所述列表中的步骤包括:添加所述关联版本的标识,并且其中,确定所引用的Java类文件是否包括在所述所有必需束的列表中包括的任何束中的步骤和确定所引用的Java类文件是否包括在对于所述移动终端而言已知的束中的步骤是基于所述关联版本来执行的。
11、根据权利要求10所述的方法,其中,添加标识的步骤包括:添加与所引用的Java类文件相关联的方法类型签名。
12、根据权利要求8所述的方法,其中,所述描述符包括Java应用描述符(JAD)而所述Java应用包括Java档(JAR)文件,并且其中,标识所述Java应用中包含的所有Java类文件的步骤包括:检查所述JAR文件中包含的所有Java类文件的常量池域、超类域以及接口域。
13、根据权利要求8所述的方法,其中,所标识的Java类文件被标识为可选或必需的,并且其中,当所述移动终端支持所述Java应用时下载所述Java应用的步骤包括:当所述移动终端支持所有被标识为必需和所有被标识为可选的Java类文件时自动下载所述Java应用,并且其中,当所述移动终端支持所有被标识为必需的Java类文件和并非所有被标识为可选的Java类文件时下载所述Java应用的步骤包括:可以在下载所述Java应用之前通知所述移动终端的用户可能会下载功能受限的所述Java应用,并且其中,通知所述移动终端的用户所述移动终端不支持所述Java应用的步骤包括:当所述移动终端并不支持所有被标识为必需的Java类文件时,通知所述移动终端的用户所述移动终端不支持所述Java应用。
14、根据权利要求8所述的方法,其中,在当所述JAD不包括所述API属性列表时下载所述Java应用之前将下载的描述符中包括的域所标识的任何束与所述移动终端支持的Java类文件的列表进行比较,并且其中,当下载的描述符中包括的域所标识的任何束都没有包括在所述移动终端支持的Java应用的列表中时,不下载所述Java应用,并且通知所述用户所述移动终端不支持所述Java应用。
15、根据权利要求3所述的方法,其中,比较所述API属性列表的步骤包括:确定下载的描述符中包括的除所述API属性列表以外的其它域所标识的任何束是否包括在所述移动终端支持的Java类文件的列表中,以确定所述移动终端是否支持所述Java应用。
16、根据权利要求3所述的方法,其中,所述移动终端支持的Java类文件的列表包括至少一个束标识,并且所述API属性列表包括至少一个束标识,并且其中,比较所述API属性列表的步骤包括:将所述API属性列表中标识的所述至少一个束与所述移动终端支持的Java类文件的列表中标识的所述至少一个束进行比较。
17、一种用于控制向移动终端下载Java应用的计算机程序产品,该计算机程序产品包括体现为计算机可读介质形式的计算机程序代码,所述计算机程序代码包括被设置用于执行权利要求1所述的方法的程序代码。
18、一种被设置用于执行权利要求1所述的方法的通信系统。
19、一种用于生成Java应用的API属性列表的方法,该方法包括以下步骤:
获得已知束的列表,该已知束的列表标识了对于各个已知束而言已知的所有类;
将所有必需类的列表和所有必需束的列表都初始化成空集;
标识所述Java应用所引用的所有Java类文件;以及
对所标识的Java类文件进行格式化以生成所述API属性列表,其中,对所标识的Java类文件进行格式化的步骤包括对于每个所标识的Java类文件:
确定所标识的Java类文件是否被包含在所述Java应用中;
当所标识的Java类文件没有被包含在所述Java应用中时,确定所标识的Java类文件是否被包括在所述所有必需束的列表中所包括的任何束中;
当所标识的Java类文件没有被包括在所述所有必需束的列表中所包括的任何束中时,确定所标识的Java类文件是否对于已知束的列表中所列出的已知束之一而言是已知的;
当确定出所标识的Java类文件对于所述列出的已知束之一而言是已知的并且没有被包含在所述Java应用中时,将所述列出的已知束之一添加至所述所有必需束的列表中;以及
当确定出所标识的Java类文件没有被包括在所述所有必需束的列表中所包括的任何束中或对于列出的已知束之一而言是已知的或包含在所述Java应用中时,将所标识的Java类文件添加至所述所有必需类的列表中;并且
其中,对所标识的Java类文件进行格式化的步骤还包括:基于所需束的列表和所需类的列表来生成所述API属性列表。
20、根据权利要求19所述的方法,其中,标识所述Java应用所引用的所有Java类文件的步骤包括:
标识所述Java应用中包含的所述Java类文件;以及
标识所述Java应用中包含的Java类文件所引用的所有Java类文件。
21、根据权利要求20所述的方法,其中,所述Java应用包括Java应用描述符(JAD)和Java档(JAR)文件,并且其中,标识所述Java应用中包含的所有Java类文件的步骤包括:标识所述JAR文件中包含的所有Java类文件,并且其中,在生成所述API属性列表之后将所述API属性列表并入所述JAD中。
22、一种用于生成Java应用的API属性列表的计算机程序产品,所述计算机程序产品包括体现为计算机可读介质形式的计算机程序代码,所述计算机程序代码包括被设置用于执行权利要求19所述的方法的程序代码。
23、一种被设置用于执行权利要求19所述的方法的计算机系统。
24、一种移动终端,该移动终端包括:
用户界面,其被设置用于接收下载Java应用的用户请求,并且在所述移动终端不支持所请求的Java应用时通知用户;
通信接口,其被设置用于响应于所述用户请求而下载所述Java应用;
所述移动终端支持的Java类文件的列表;以及
控制器,其被设置用于标识所述Java应用必需的所有Java类文件,并且基于所述移动终端支持的Java类文件的列表与所述Java应用必需的所有Java类文件的比较来控制下载所述Java应用,所述控制下载包括当所述移动终端支持的Java类文件的列表包括所述Java应用必需的所有Java类文件时利用所述通信接口来下载所述Java应用,而在所述移动终端支持的Java类文件的列表不包括所述Java应用必需的所有Java类文件时通过所述用户界面向所述用户提供通知。
25、根据权利要求24所述的移动终端,其中,所述控制器被设置成,通过利用所述通信接口下载与所述Java应用相关联的描述符并且获取所述描述符中包括的API属性列表来标识所述Java应用必需的Java类文件,所述API属性列表标识了所述Java应用必需的所有Java类文件。
26、根据权利要求24所述的移动终端,其中,所述控制器被设置成,当所述描述符不包括所述API属性列表时利用所述通信接口下载所述Java应用,并且根据下载的Java应用来生成所述API属性列表。
27、一种用于生成Java应用的API属性列表的计算机系统,该计算机系统包括:
已知束的列表,该已知束的列表标识了对于各个已知束而言已知的所有类;
所有必需类的列表;
所有必需束的列表;
必需类标识模块,其被设置用于标识所述Java应用所引用的所有Java类文件;以及
API属性列表生成模块,其被设置用于将所述所有必需类的列表和所述所有必需束的列表都初始化成空集,并且通过对于每个所标识的Java类文件执行下列步骤来格式化所标识的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类文件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/495,982 US20080027945A1 (en) | 2006-07-28 | 2006-07-28 | Methods, systems and computer program products for downloading a Java application based on identification of supported classes |
US11/495,982 | 2006-07-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101495963A true CN101495963A (zh) | 2009-07-29 |
Family
ID=38055306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007800283263A Pending CN101495963A (zh) | 2006-07-28 | 2007-02-06 | 基于支持类的标识来下载Java应用的方法、系统和计算机程序产品 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20080027945A1 (zh) |
EP (1) | EP2047365A1 (zh) |
CN (1) | CN101495963A (zh) |
WO (1) | WO2008013577A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101969617A (zh) * | 2010-10-13 | 2011-02-09 | 中兴通讯股份有限公司 | 一种java应用的方法及系统 |
CN103297516A (zh) * | 2013-05-16 | 2013-09-11 | 北京新思易佳科技有限公司 | 一种应用的多类型提供方法、系统及装置 |
CN103473092A (zh) * | 2013-09-02 | 2013-12-25 | 小米科技有限责任公司 | 一种下载应用的处理方法、装置及终端设备 |
CN107534685A (zh) * | 2016-03-15 | 2018-01-02 | 华为技术有限公司 | 一种业务处理方法及装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9477495B2 (en) * | 2006-08-17 | 2016-10-25 | International Business Machines Corporation | Conservative class preloading for real time Java execution |
KR100902483B1 (ko) | 2007-05-18 | 2009-06-11 | 에스케이 텔레콤주식회사 | 데이터베이스 필드의 동적 확장 기능을 제공하는 이동통신단말기 및 그의 데이터베이스 필드 동적 확장 방법 |
US20090328078A1 (en) * | 2008-06-26 | 2009-12-31 | Frank Siegemund | Execution of Embedded System Applications |
CN101799757B (zh) | 2010-01-22 | 2013-01-16 | 华为终端有限公司 | Java软件集成到移动终端的方法、装置及移动终端 |
CN102833388A (zh) * | 2011-06-15 | 2012-12-19 | 深圳富泰宏精密工业有限公司 | 多重数据连线并存系统及方法 |
US9710247B2 (en) * | 2012-06-26 | 2017-07-18 | Microsoft Technology Licensing, Llc | Identification of host-compatible downloadable applications |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835777A (en) * | 1996-03-20 | 1998-11-10 | Hewlett-Packard Company | Method of automatically generating a software installation package |
US6366876B1 (en) * | 1997-09-29 | 2002-04-02 | Sun Microsystems, Inc. | Method and apparatus for assessing compatibility between platforms and applications |
US6571389B1 (en) | 1999-04-27 | 2003-05-27 | International Business Machines Corporation | System and method for improving the manageability and usability of a Java environment |
US6718364B2 (en) * | 1999-08-10 | 2004-04-06 | Sun Microsystems, Inc. | Method and apparatus for expedited file downloads in an applet environment |
US20020016166A1 (en) | 2000-08-01 | 2002-02-07 | Kazuyuki Uchida | Download system |
EP1340167A2 (en) * | 2000-11-28 | 2003-09-03 | 4thPass Inc. | Method and system for maintaining and distributing wireless applications |
US7243346B1 (en) * | 2001-05-21 | 2007-07-10 | Microsoft Corporation | Customized library management system |
GB2402781A (en) * | 2002-03-22 | 2004-12-15 | Sun Microsystems Inc | Mobile download system |
CN1332301C (zh) * | 2002-04-03 | 2007-08-15 | 株式会社Ntt都科摩 | 传送方法、传送系统和终端设备 |
WO2004008434A1 (en) * | 2002-07-17 | 2004-01-22 | Nokia Corporation | Mobile device having voice user interface, and a methode for testing the compatibility of an application with the mobile device |
EP1387268A3 (en) * | 2002-07-31 | 2005-03-02 | Ricoh Company | Image forming apparatus, information processing apparatus and version check method |
US20050003810A1 (en) * | 2003-05-28 | 2005-01-06 | Sun Microsystems, Inc. | Method and system for optimizing software program start-up time |
FR2878109B1 (fr) * | 2004-11-17 | 2007-02-02 | Gemplus Sa | Procede d'evaluation de la comptabilite entre des applications et des dispositifs de traitement |
US20060161898A1 (en) * | 2005-01-18 | 2006-07-20 | Brian Bauman | Method and system for project library dependency management |
JP4784100B2 (ja) * | 2005-01-21 | 2011-09-28 | 富士ゼロックス株式会社 | 処理装置およびそのファームウェアダウンロード方法。 |
US7640423B2 (en) * | 2005-02-14 | 2009-12-29 | Red Hat, Inc. | System and method for verifying compatibility of computer equipment with a software product |
-
2006
- 2006-07-28 US US11/495,982 patent/US20080027945A1/en not_active Abandoned
-
2007
- 2007-02-06 CN CNA2007800283263A patent/CN101495963A/zh active Pending
- 2007-02-06 WO PCT/US2007/003083 patent/WO2008013577A1/en active Application Filing
- 2007-02-06 EP EP07749985A patent/EP2047365A1/en not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101969617A (zh) * | 2010-10-13 | 2011-02-09 | 中兴通讯股份有限公司 | 一种java应用的方法及系统 |
CN103297516A (zh) * | 2013-05-16 | 2013-09-11 | 北京新思易佳科技有限公司 | 一种应用的多类型提供方法、系统及装置 |
CN103297516B (zh) * | 2013-05-16 | 2016-12-28 | 北京新思易佳科技有限公司 | 一种应用的多类型提供方法、系统及装置 |
CN103473092A (zh) * | 2013-09-02 | 2013-12-25 | 小米科技有限责任公司 | 一种下载应用的处理方法、装置及终端设备 |
CN103473092B (zh) * | 2013-09-02 | 2016-11-23 | 小米科技有限责任公司 | 一种下载应用的处理方法、装置及终端设备 |
CN107534685A (zh) * | 2016-03-15 | 2018-01-02 | 华为技术有限公司 | 一种业务处理方法及装置 |
CN107534685B (zh) * | 2016-03-15 | 2021-04-20 | 华为技术有限公司 | 一种业务处理方法、装置、可读存储介质及芯片系统 |
US11647108B2 (en) | 2016-03-15 | 2023-05-09 | Huawei Technologies Co., Ltd. | Service processing method and apparatus |
Also Published As
Publication number | Publication date |
---|---|
EP2047365A1 (en) | 2009-04-15 |
WO2008013577A1 (en) | 2008-01-31 |
US20080027945A1 (en) | 2008-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101495963A (zh) | 基于支持类的标识来下载Java应用的方法、系统和计算机程序产品 | |
US10664651B2 (en) | Forms conversion and deployment system for mobile devices | |
CN110569130B (zh) | 一种跨进程通信方法、装置及设备 | |
KR100826147B1 (ko) | 무선 컴포넌트 애플리케이션 구축 시스템 및 방법 | |
CN101133665A (zh) | 移动设备通过网页进行诊断、测试、应用程序部署以及更新 | |
US20070233813A1 (en) | Systems and methods for submitting data from a WML-based browser | |
US20060253548A1 (en) | Method and system for hosting and executing a component application | |
US20210337015A1 (en) | Method and system of application development for multiple device client platforms | |
US20060248069A1 (en) | Method and system for implementing customizable container services as component wireless applications | |
CN103678091A (zh) | 应用软件崩溃数据的处理方法和装置 | |
CN102404149B (zh) | 一种业务特性的管理系统和方法 | |
CN103167031A (zh) | Web应用之间的通信 | |
US9286054B2 (en) | Deployment of mobile enterprise application platform | |
US7574712B2 (en) | User interface for configuring web services for remote portlets | |
CN1322421C (zh) | 代理系统、计算机网络以及用于把代理系统从主计算机装载到计算机网络的客户计算机上的方法 | |
CN101271391A (zh) | 软件系统的制作和使用方法 | |
US20120185575A1 (en) | BREW Service Download System and Implementation Method Thereof | |
KR20020009741A (ko) | 휴대전화단말기의 오퍼레이팅 기반환경 구축장치 및 이를이용한 응용프로그램의 무선 업그레이드 방법 | |
CN112346758A (zh) | 一种数字基建业务更新平台、更新方法及电子设备 | |
CN104573495A (zh) | 一种启动项的处理方法和装置 | |
CN106060124A (zh) | 一种应用程序的下载方法及移动终端 | |
CN106488392B (zh) | 数据转移的方法及装置 | |
JP2008027179A (ja) | 携帯電話用のアプリケーション提供システム及びサービス端末 | |
JP2003308397A (ja) | コンテンツの取得状況通知方法、管理装置、プログラムおよび記録媒体 | |
US8504669B2 (en) | System and method for OSGi-based service delivery framework |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20090729 |