以下使用附图详细说明本发明实施形态。
实施形态1
在采用便携信息终端的程序下载服务中,由于采用Java(TM)结构的设备 已经普及,因此本发明通过将该结构扩展就能够实现。在本说明中,适当掺入 在采用Java(TM)结构时会变成什么样的实施形态内容进行说明。
图1所示为本发明实施形态1的便携信息终端硬件构成图。在图1中,具有 中央处理装置(CPU)1、存储装置2、输入装置3、输出装置4及接收发送装 置5,它们分别通过
系统总线6连接。
存储装置2由ROM、RAM及
硬盘等构成,用作为CPU1进行处理时使用的 存储区及存储程序本身的区域。输入装置3由
键盘或按键、
鼠标器及话筒等构 成,对来自用户的指示进行输入处理。输出装置4由显示器等显示装置及扬声 器等构成,对由CPU1输出的数据进行画面显示或对声音数据进行重放等处理。 接收发送装置5通过无线或有线传送路径进行数据通信,CPU1能够通过接收 发送装置5从外部装置(未图示)下载程序等数据。
图2所示为本实施形态的程序执行处理装置的构成方框图。程序执行处理终 端装置具有程序下载单元101、装入单元102、运行时间节省单元103、预装入 单元104、后装入单元105、解释单元106、控制单元107、程序存储单元301、 暂时运行时间执行形式存储单元302及运行时间执行形式存储单元303。
程序下载单元101从程序传送方接收程序,将接收的程序通过控制单元107 存入程序存储单元301。程序下载单元101可以采用已有的便携信息终端具有 的程序下载结构来实现。
装入单元102根据来自控制单元107的请求,进行将程序存储单元301中存 储的程序变换为运行时间执行形式,并存入运行时间执行形式存储单元303的 处理。又,通知解释单元106开始执行程序。再将变换的运行时间执行形式通 知运行时间节省单元103,请求进行运行时间节省处理。
运行时间节省单元103根据来自装入单元102的请求,进行将运行时间执行 形式存储单元303中存储的运行时间执行形式变换为暂时运行时间执行形式, 并存入暂时运行时间执行形式存储单元302的处理。
预装入单元104根据来自控制单元107的请求,进行将程序存储单元301 中存储的程序变换为暂时运行时间执行形式,并存入暂时运行时间形式存储单 元302的处理。
后装入单元105进行将暂时运行时间执行形式存储单元302中存储的暂时运 行时间执行形式变换为运行时间执行形式,并存入运行时间执行形式存储单元 303的处理。又通知解释单元106开始执行程序。
解释单元106根据来自装入单元102或后装入单元105的执行开始通知,对 运行时间执行形式存储单元303中存储的运行时间执行形式进行解释执行。在 采用Java(TM)结构的情况下,该解释单元106可以采用已有的Java(TM) 虚拟机来实现。
控制单元107在有进行程序起动的指示时,判断在暂时运行时间执行形式存 储单元302中是否存在起动对象程序的暂时运行时间执行形式,不存在时,请 求装入单元102使其变换为运行时间执行形式,存在时,请求后装入单元105 使其变换为运行时间执行形式。为了将暂时运行时间执行形式变换为运行时间 执行形式,如下面所述,只要将大部分的数据建议拷贝,同时仅进行将间接参 照表现的地址数据变换为实际地址即可,因此与将程序变换为运行时间执行形 式的情况相比,处理时间短。通过这样,对于已经保持运行时间执行形式的程 序,就能够缩短起动时间。
程序存储单元301存储有程序下载单元101从程序传送方接收的程序。另外, 在利用以闪速存储器等为代表的
非易失性存储器、即便携信息终端的电源即使 切断也能够继续保持记录的器件来实现时,能够防止便携信息终端的电源切断 时再下载程序。另外,不仅是下载的程序,也可以存储预先确定的程序。再有, 也可以采用ROM等存储数据不能删除的存储器,预先存储的程序是固定的。
运行时间执行形式存储单元303存储有装入单元102或后装入单元105变 换的运行时间执行形式。由于运行时间执行形式是作为进行解释执行的对象, 解释单元106直接进行
访问的存储区,因此最好利用能够高速访问的存储器件 来实现。例如它可使用易失性的RAM等。
暂时运行时间执行形式存储单元302存储有运行时间节省单元103变换的暂 时运行时间执行形式。暂时运行时间执行形式存储单元302不特别注意是易失 性或非易失性。为了缩短程序起动时间,与实现程序存储单元301所用的器件 相比,最好采用数据访问速度更高的存储器件。另外,作为暂时运行时间执行 形式存储单元302,如果采
用例如闪速存储那样的非易失性存储器,则由于能 够将刚切断便携信息终端电源之前存入暂时运行时间执行形式存储单元302的 暂时运行时间执行形式,在一旦切断电源之后,下一次接通电源时加以利用, 因此比较理想。
另外,在本实施形态中,是假设同时具有运行时间节省单元103及预装入单 元104,但本发明不限定于此。也就是说,也可以只具有某一单元。在这种情 况下也与本实施形态相同,能够缩短程序的起动时间。
图3所示为用装入单元102、运行时间节省单元103、预装入单元104及后 装入105等各处理单元进行的数据流的一个例子。所示为从程序传送方下载程 序201之后到对运行时间执行形式203进行解释执行为止的数据变换流。
首先,程序下载单元101接收从程序传送方发送的程序201,存入程序存储 单元301。
然后,一旦有启动程序201的指示,就根据来自控制单元107的指示,装入 单元102将程序201变换为运行时间执行形式203,解释单元106对运行时间 执行形式203进行解释执行。而且同时运行时间节省单元103将运行时间执行 形式203变换为暂时运行时间执行形式202,将其存入暂时运行时间执行形式 存储单元302。若再次得到程序201的起动指示,就根据来自控制单元107的 指示,后装入105将暂时运行时间执行形式202变换为运行时间执行形式203, 解释单元106对运行时间执行形式203进行解释执行。
还有,以下是表示进行预装入处理时的数据变换流。预装入单元104将程序 201变换为暂时运行时间执行形式202,存入暂时运行时间执行形式存储单元 302。若得到进行程序201起动的指示,就根据来自控制单元107的指示,后 装入105将暂时运行时间执行形式202变换为运行时间执行形式203,解释单 元106对运行时间执行形式203进行解释执行。
图4至图8所示为图3中说明的程序201、运行时间执行形式203及暂时运 行时间执行形式202的结构的一个例子。以下依次进行说明。
程序201能够作为具有可利用移动电话解释执行的形式的数据获得。在移动 电话中采用Java(TM)结构时,下载Java(TM)的执行形式、即类文件作为 程序201。
图4所示为程序201的结构的一个例子。图4仿照C语言将程序201中记 录的数据内容用结构表现。u1型、u2型及u4型分别表现为无符号的1字节、 2字节和4字节的数据量。在Java(TM)中,程序201通常是由1个及1个以 上的类文件构成,而类文件本身的结构无论什么类文件都相同。类文件结构本 身在文献(Tim Lindholm and Frank Yellin:“The Java(TM)Virtual Machine Specification”,Addison-Wesley,1997)中有详细说明。
接着,图5及图6所示为运行时间执行形式203的结构的一个例子。运行时 间执行形式203作为运行时间执行形式存储单元303中存储的连续的存储器图 像实现。类文件格式本身如前所述规定,但关于运行时间形式的格式,则取决 于Java(TM)虚拟机的安装,没有进行任何规定。
在图5及图6中,将运行时间执行形式203作为以类为单位的存储器图像表 示。Java(TM)的实际程序虽然由2个或2个以上的类文件构成的情况也比较 多,但在那种情况下同样的存储器图像仅生成类文件的数目。表现类的存储器 图像,其中包含更低层结构、即常数池结构的运行时间形式、接口结构的运行 时间形式、信息组(field)结构的运行时间形式、方法结构的运行时间形式及 属性结构的运行时间形式。
在图5及图6的存储器图像中用白色方框表示的数据意味着图4的同名数据 值被原封不动加以纪录。在图5及图6的存储器图像中用网格表现的数据是表 现指向该数据在存储器图像中的其它数据存储地点的地址的参照值(
指针)。 具体如下所示。
“*constant_pool”是指向常数池结构的运行时间形式的头部的指针, “(constant_pool*)this_class”及“(constant_pool*)super_class”是指向常数池 结构中的入口地址的指针,“*interfaces”是指向接口结构的运行时间形式的头 部的指针,“*fields”是指向信息组结构的运行时间形式的头部的指针, “*methods”是指向方法结构的运行时间形式的头部的指针。“*attributes”是 指向属性结构的运行时间形式的头部的指针。
另外,指针值不一定指向与包含该指针的相同类的存储器图像中的结构,也 有指向其它类的存储器图像的结构的情况。
运行时间执行形式203的存储器图像包含指针,该指针值不在存储器图像生 成时决定为一定值(这是由于指针值因在运行时间执行形式存储单元303中的 存储器图像的配置
位置而相应变化)。
更详细来说,在图5及图6中所画出的指针以外,在常数池结构中的入口、 接口结构中的入口、信息组结构中的入口、方法结构中的入口、以及属性结构 中的入口的各数据中也有可能包含指针值,但在本说明中加以省略。
接着,图7及图8所示为暂时运行时间执行形式202的结构的一个例子。暂 时运行时间执行形式202存入暂时运行时间执行形式存储单元302。可以作为 存储器图像加以记录,也可以作为将数据以字节串形式的文件加以记录,任何 一种形式均可,但这里决定表示作为与图5及图6的表现一样的存储器图像。 这里所示的是与图5及图6所示的运行时间执行形式203的实施形态相对应的 暂时运行时间执行形式202的实现例子。
在图7及图8的存储器图像中,与图5及图6相比,在头部新加入了以下的 数据。
“class_id”是对存储器图像以类为单位唯一提供的识别数据(类的识别号)。 在生成多个类的存储器图像的情况下,该class_id的值不可重复。 “runtime_image_size”是记录由本暂时运行时间执行形式生成的运行时间执行 形式的存储器大小。
另外,在图7及图8的存储器图像中,与图5与图6不同,没有指针值。在 图5及图6中作为指针表现的数据全部变换为下面的2个数据的组(在图7及 图8中去掉网格的部分)。
“ref_class_id”
指定类的识别号。在其后续数据中一定跟着入口号。“入口 号”表示常数池结构/接口结构/信息组结构/方法结构/属性结构中的数据的入口 号。
在暂时运行时间执行形式202的实施形态中,将运行时间执行形式203中作 为指针表现的部分全部变换为“类ID”+“入口号”的形式(间接参照表现) 进行记录。
如前所述,运行时间执行形式203中的指针表现,在有的情况下指别的类的 储存器图像结构。为了确定是哪一个类的存储器图像结构,入口号一定以与 class-id组合的形式表现。
由于暂时运行时间执行形式203的存储器图像不包含指针,因此不取决于暂 时运行时间执行形式存储单元302中的存储器图像的配置位置,而由存储器图 像生成时唯一的数据串决定。即,表现某类的暂时运行时间执行形式的记录内 容始终保持所谓唯一的状态。
以上是有关各数据形式的结构的说明。
下面说明图2的构成图中所画的各处理单元进行的处理内容。
图9所示为装入单元102中的数据变换处理流程的一个例子。
首先,计算利用装入单元102生成的运行时间执行形式203的存储器使用量 (步骤601)。这可以检查程序201中包含的类文件,并根据表示 constant_pool_count、interfaces_count、fields_count、methods_count、 attributes_count等各结构的入口数的数值及各结构的入口的大小算出。
根据在步骤601计算出的值,检查运行时间执行形式203的存储地点、即运 行时间执行形式存储单元303中是否存在保存存储区域的空白区(步骤602)。 在不存在空白区时(步骤602为N),判断为不能够继续利用装入单元102进 行数据变换处理,取消装入处理本身,通知用户程序不可能起动,并结束处理 (步骤603)。另外,在存在空白区时(步骤602为Y),则在运行时间执行 形式存储单元303中确保步骤601中计算的值的份额的存储器区域(步骤604)。
接着,检查类文件,将运行时间执行形式203中作为指针值表现的部分以外 的数据加以拷贝,以此将数据存入运行时间执行形式存储单元303(步骤605)。 这相当于图5与图6的存储器图像中用白色方框表示的数据。
最后,根据类文件计算运行时间执行形式203中作为指针值表现的数据,将 计算出的数据存入运行时间执行形式存储单元303,然后结束从程序201向运 行时间执行形式203的变换处理(步骤606)。这相当于图5及图6的存储器 图像中的用网格表现的方框所表示的数据。
图10所示为运行时间节省单元103中的数据变换处理流程的一个例子。
首先,计算利用运行时间节省单元103生成的暂时运行时间执行形式202 的存储器使用量(步骤701)。这可以检查运行时间执行形式203,并根据表 示constant_pool_count、interfaces_count、fields_count、methods_ount、 attributes_count等各结构的入口数的数值及各结构的入口的大小算出。
根据在步骤701计算出的值,检查暂时运行时间执行形式202的存储地点即 暂时执行形式存储单元302是否存在保存存储器区域的空白区(步骤702)。 在不存在空白区时(步骤702为N),则判断为不能够继续利用运行时间节省 单元103进行数据变换处理,则取消运行时间节省处理本身,然后结束处理(步 骤703)。另外,在存在空白区时(步骤702为Y)。则在暂时运行时间执行 形式存储单元302中确保步骤601中计算的值的份额的存储器区域(步骤704)。
接着,对成为运行时间节省处理对象的所有类给予识别号,将数据作为暂时 运行时间执行形式202的class_id数据存入暂时运行时间执行形式存储单元302 (步骤705)。
作为运行时间节省处理的处理源的数据、即运行时间执行形式203,计算在 运行时间执行形式存储单元303中用于其记录的存储器量的数值,作为暂时运 行时间执行形式202的runtime_image_size数据存入暂时运行时间执行形式存 储单元302(步骤706)。
检查运行时间执行形式203的存储器图像,将运行时间执行形式203中作为 指针值表现的部分以外的数据作为暂时运行时间执行形式202的数据进行拷 贝,通过这样将数据存入暂时执行形式存储单元302(步骤707)。这相当于 图7及图8的存储器图像中用白色方框表示的数据。
最后,检查运行时间执行形式的存储器图像,对于运行时间执行形式203 中作为指针值表现的数据进行变换,将变换的数据存入暂时运行时间执行形式 存储单元302,然后结束从运行时间执行形式203向暂时运行时间执行形式202 的变换处理(步骤708)。指针值的数据变换为“包含该指针指向的结构的类 的识别号”及“结构中的入口号”的形式。这相当于图7及图8的存储器图像 中class_id及runtime_image_size以外的用网格表现的方框所表示的数据。
图11所示为预装入单元104中的数据变换处理流程的一个例子。
首先,计算利用预装入单元104生成的的暂时运行时间执行形式202的存储 器使用量(步骤801),这可以检查处理前的类文件,根据constant-pool-count、 interfaces-count、fields-count、methods-count、attributes-count等表示各结构的 入口数的数值及各结构的入口的大小算出。
根据在步骤801计算出的值,检查暂时运行时间执行形式202的存储地点即 暂时运行时间执行形式存储单元302中是否存在保存存储区域的空白区(步骤 802)。在不存在空白区时(步骤802为N),则判断为不能够继续利用预装入 单元104进行数据变换处理,取消预装入处理本身,并结束处理(步骤803)。 而在存在空白区时(步骤802为Y),则在暂时运行时间执行形式存储单元302 中确保步骤801中计算的值的份额的存储器区域(步骤804)。
然后,对成为预装入处理对象的所有类给予识别号,将数据作为暂时运行时 间执行形式202的class_id数据存入暂时运行时间执行形式存储单元302(步 骤805)。
对于成为预装入处理的处理源的数据、即程序201,计算变换为运行时间执 行形式203时使用的存储器量的数值,作为暂时运行时间执行形式202的 runtime_image_size数据存入暂时运行时间执行形式存储单元302(步骤806)。
检查程序201,将暂时运行时间执行202中作为对其它结构的参照值表现的 部分以外的数据作为暂时运行时间执行形式202的数据进行拷贝(步骤807)。 这相当于图7及图8的存储器图像中用白色方框表示的数据。
最后,检查程序201,将暂时运行时间执行形式202中作为对其它结构的参 照值表现的部分的数据变换为“包含参照对象的结构的类的识别号”及“结构 中的入口号”的形式,结束从程序201向暂时运行时间执行形式202的变换处 理(步骤808)。
这相当于图7及图8的存储器图像中class_id及runtime_image_size以外的 用网格方框表示的数据。
图12所示为后装后单元105中的数据变换处理流程的一个例子。
首先,计算利用后装入单元105生成的运行时间执行形式203的存储器使用 量(步骤901)。这通过参照暂时运行时间执行形式202的数据runtime_image_size 能够简单地得到。
根据在步骤901计算出的值,检查运行时间执行形式203的存储地点、即运 行时间执行形式存储单元303中是否存在保存存储器区域的空白区(步骤902)。 在不存在空白区时(步骤902为N),判断为不能够继续利用后装入单元105 进行处理,通知用户取消后装入处理本身,程序不可能起动,并结束处理(步 骤903)。而在存在空白区时(步骤902Y),则在运行时间执行形式存储单元 303中确保步骤901中计算的值的份额的存储器区域(步骤904)。
接着,检查暂时运行时间执行形式202,将运行时间执行形式203中作为指 针值表现的部分以外的数据加以拷贝,通过这样将数据存入运行时间执行形式 存储单元303(步骤905)。这相当于图5及图6的存储器图像中的用白色方 框表示的数据。
最后,计算运行时间执行形式203中作为指针值表现的数据,将计算出的数 据存入运行时间执行形式存储单元303,结束从暂时运行时间执行形式202向 运行时间执行形式203的变换处理(步骤906)。该计算可以通过将暂时运行 时间执行形式202中的参照值、即“包含参照对象的结构的类的识别号”及“结 构中的入口号”的形式的数据变换为指针来实现。该数据相当于图5及图6的 存储器图像中用网格表现的方框所表示的数据。
根据上述,通过预先保持暂时运行时间执行形式,能够仅通过后装入处理来 起动执行程序。通过这样,(1)生成的运行时间执行形式203的存储器使用量的 计算简单;(2)暂时运行时间执行形式202的存储器图像,与程序201(类文件形 式)的数据相比,以非常接近运行时间执行形式203的存储器图像的形式来保存 数据,指针值以外几乎都能够以将存储器图像加以拷贝的形式简单地得到运行 时间执行形式203。利用上述两大效果,能够在大幅度减少图像生成的处理量, 能够缩短程序起动时间。
图13为运行时间节省处理时的画面显示的说明图。
另外,在本发明的实施形态1中,设在程序装入后,继续进行运行时间节省 处理。即运行时间节省单元103在利用装入单元102进行装入处理处理的结束 时刻,生成暂时运行时间执行形式,并检查存储的存储器区域是否存在空白区, 在判断为有空白时,只要立即进行运行时间节省处理即可。
在图13(a)中所示的例子是,改变装入单元102在将程序201变换为运行 时间执行形式203的处理中的便携信息终端的显示画面输出、以及运行时间节 省单元103在将运行时间执行形式203变换为暂时运行时间执行形式202的处 理中的便携信息终端的显示画面输出,并将处理状况通知用户。在这种情况下, 用户将运行时间节省处理看作是多余的处理,在一直到程序开始执行为止的等 待时间内有可能感到格外焦急。
在图13(b)中所示的例子是,不特意改变这两个处理的显示画面输出,使 其为同一画面,不通知用户这些处理的分界线。通过这样,将运行时间节省处 理的处理时间隐藏在装入处理中,可以使用户不增加无谓的焦急。
图14为预装入处理时的画面显示的说明图。
另外,在本发明的实施形态1中,在程序下载时,若生成暂时运行时间执行 形式并存储的存储器区域存在空白区,则无条件地进行预装入处理。即预装入 单元104在下载处理结束后,生成暂时运行时间执行形式并检查存储的存储器 区域是否存在空白区,在判断为有空白区时,只要直接进行预装入处理即可。
在图14(a)中所示的例子是,改变程序下载单元101在将程序201下载的 处理中的便携信息终端的显示画面输出、以及预装入单元104在将程序201变 换为暂时运行时间执行形式202的处理中的便携信息终端的显示画面输出,并 将处理状况通知用户。在这种情况下,用户将预装入处理看作是多余的处理, 在一直到程序开始执行为止的等待时间内有可能感到格外焦急。
在图4(b)中所示的例子是,不必特意改变这两个处理的显示画面输出,使其 为同一画面,不通知用户这些处理的分界线。通过这样,将预装入处理的处理 时间隐藏在下载处理中,可以使用户不增加无谓的焦急。
根据上述,利用运行时间节省单元103或预装入单元104,能够预先保持暂 时运行时间执行形式,能够仅通过后装入处理来解释执行程序,通过这样能够 缩短起动时间。
实施形态2
在本发明的实施形态1中,利用运行时间节省单元进行的运行时间节省处理 是在程序装入之后,继续对装入的程序进行的处理。但是,根据除此以外的判 断基准,可以选择决定运行时间节省处理的对象程序。以下用附图说明详细内 容。
图15所示为本发明实施形态2的程序执行处理终端装置的构成方框图。由 程序下载单元101、装入单元102、预装入单元104、后装入单元105、解释单 元106、控制单元107、运行时间节省单元110、程序存储单元301、暂时运行 时间执行形式存储单元302、运行时间执行形式存储单元303、设定信息存储 单元304及解释履历存储单元305构成。程序下载单元101、装入单元102、 预装入单元104、后装入单元105、解释单元106、控制单元107、程序存储单 元301、暂时运行时间执行形式存储单元302及运行时间执行形式存储单元303 与图2中说明的相同。这里,对于新追加的运行时间节省单元110、设定信息 存储单元304及履历存储单元305进行说明。
运行时间节省单元110根据设定信息存储单元304或解释履历存储单元305 中存储的设定信息或履历信息,选择决定运行时间节省处理的开始时刻及对象 程序。
设定信息存储单元304存储有识别进行运行时间节省处理的对象程序的设 定信息。运行时间节省单元110参照该设定信息,在装入指定为运行时间节省 处理对象的程序(指定高速起动的程序)时,继续进行运行时间节省处理。
设定信息存储单元304中存储的设定信息,是例如根据用户的输入指定来决 定的。图16所示为输入画面的一个例子。用户可以从便携信息终端的显示画 面上显示的程序一览表,对每个程序指定高速起动的ON或OFF。在图16中, “Schedule”及“Memo Pad”的程序指定作为高速起动ON。在指定作为高速 ON的程序装入时,进行运行时间节省处理,在除此以外的程序装入时,不进 行运行时间节省处理。也可以与用户的输入指定无关地,始终对特定的程序指 定高速起动。
解释履历储单元306存储有各程序过去进行解释执行的履历信息。运行时间 节省单元110参照该履历信息,在根据履历信息判断为使用频次高的程序装入 时,继续进行运行时间节省处理。
图17所示为解释履历存储单元305中存储的履历信息的一个例子。在图17 中,对程序存储单元301中存储的全部程序的每个程序,将至今起动了几次的 信息及最后起动的时刻是什么时候这样的信息作为表格加以保持。另外,也可 以包含平均起动时间及起动间隔等其它信息,另外也可以只有例如起动次数这 样的一个信息。在某程序装入时,关于对该程序判断是否进行运行时间节省处 理,可以考虑采用例如以下的判断基准。另外,也可以是采用解释履历存储单 元305的履历信息的其它判断基准。
第1判断基准是,在曾经起动3次及以上的程序装入时,认为该程序频繁使 用,将进行运行时间节省处理。关于选择基准数值也可以不是3次,而是任意 数。
第2判断基准是,在全部程序中,对于至今起动次数最多的前2位的程序, 认为该程序频繁使用,将进行运行时间节省处理。关于选择基准数值也可以不 是前2位,而是任意数。
根据以上所述,能够选择运行时间节省处理的对象程序,能够选择必须高速 起动的程序或使用频次高的程序,实施运行时间节省处理。因此,能够防止因 不需要高速起动的程序或使用频次低的程序的暂时运行时间执行形式而占用 完暂时运行时间执行形式存储单元302的存储区域。即,能够防止因暂时运行 时间执行形式存储单元302的空白存储区域不足而导致必须高速起动的程序或 使用频次高的程序的运行时间节省处理失败地结束,能够实现有效的运行时间 节省处理。
实施形态3
在本发明的实施形态1中,利用预装入单元进行的预装入处理是在程序下载 时,对继续下载的程序进行的处理。但是,可以根据除此以外的判断基准,选 择决定预装入处理的开始时刻及对象程序。
图18所本发明实施形态3的程序执行处理终端装置的构成方框图。由程序 下载单元101、装入单元102、后装入单元105、解释单元106、控制单元107、 运行时间节省单元110、预装入单元111、预装入控制单元112、程序存储单元 301、暂时运行时间执行形式存储单元302、运行时间执行形式存储单元303、 设定信息存储单元304及解释履历存储单元305构成。程序下载单元101、装 入单元102、后装入单元105、解释单元106、控制单元107、运行时间节省单 元110、程序存储单元301暂时运行时间执行形式存储单元302、运行时间执 行形式存储单元303、设定信息存储单元304及解释履历存储单元305、与图 15中说明的相同。这里,对于新追加的预装入单元111及预装入控制单元112 进行说明。
预装入单元111从预装入控制单元112接收通知,通过这样进行将程序存储 单元301中记录的程序变换为暂时运行时间执行形式、并存入暂时运行时间执 行形式存储单元302的预装入处理。特别是在通知了指定特定程序的标识符时, 选择所通知的程序作为预装入处理对象。另外,在从控制单元107接收预装入 开始指示而下载程序时,也可以继续实施预装入处理。另外,根据设定信息存 储单元304或解释履历存储单元305中存储的设定信息或履历信息,选择决定 预装入处理的开始时刻及对象程序。
预装入控制单元112根据便携信息终端的设备状态,决定预装入开始的时 刻,通知预装入单元111开始处理。另外,用预装入控制单元112决定预装入 对象的程序,可以将已决定的程序通知预装入单元111,也可以不指定预装入 对象的程序而仅通知开始的时刻,由预装入单元111来选择处理对象的程序。 另外,作为设备状态,可以考虑采用例如以下的各判断基准。
第1判断基准是,若便携信息终端处于一定时间以上没有接受任何用户输入 操作(等待)的状态,则进行预装入处理。在这种情况下,预装入控制单元112 保持预先设定的时间长度数据(基准时间),测量对便携信息终端没有用户输 入操作(等待)状态的连续时间,通过与基准时间进行比较,来决定开始时刻。
图19所示为预装入控制单元112中的处理流程的一个例子。
首先,将等待状态的连续时间初始化(步骤1501)。
作为便携信息终端的设备状态,检测是否处于一定时间以上没有接受任何的 用户输入(等待)的状态(步骤1502)。在不是等待状态时(步骤1502为N), 则转移至步骤1501,重复进行处理。而在是等待状态时(步骤1502为Y), 则更新等待状态的连续时间(步骤1503),进行该连续时间的长度与基准时间 的比较(步骤1504)。
在等待状态的连续时间超过基准时间之前(步骤1504为N),重复步骤1502 至步骤1504。在等待状态的连续时间超过基准时间时(步骤1504为Y),则 决定为预装入处理的开始时刻,通知预装入单元111开始处理。
另外,基准时间可以通过ROM
固化等方式在便携信息终端中为固定的值, 也可以利用用户输入来改变数值。图20所示为由用户设定时的显示画面的一 个例子。这里,设定15分钟作为基准时间,在等待状态的连续时间超过15分 钟的时刻,开始预装入处理。
若采用第1判断基准,则由于在用户没有操作便携信息终端的期间进行预装 入处理,因此预装入处理对用户来说是被隐藏起来。因而其优点是,不因执行 预装入处理而给用户带来任何焦急心态。
第2判断基准是,在便携信息终端脱离等待状态时进行预装入处理。在这种 情况下,预装入控制单元112通过检测出便携信息终端从等待状态转入用户进 行输入操作等而进入非等待状态、即等待状态已结束的情况,以此决定开始时 刻。
第3判断基准是,在便携信息终端中的内部时刻达到一定值时进行预装入处 理。在这种情况下,预装入控制单元112保持预先设定的时刻数据(基准时刻), 将实际的当前时刻与基准时刻进行比较,根据检测出一致的情况决定开始时 刻。
另外,基准时刻可以通过ROM固化等方式在便携信息终端中为固定的值, 也可以利用用户输入来改变数值。图21所示为由用户设定时的显示画面的一 个例子。这里,设定13时15分作为基准时刻,在实际的当前时刻到达13时 15分的时刻,开始预装入处理。
第4判断基准是,在便携信息终端接通电源时进行预装入处理。在这种情况 下,预装入控制单元112通过电源接通来决定开始时刻。便携信息终端的电源 输入的检测结构本身,可以用从已有的便携信息终端所用的器件来构成的事件 通知等的结构来实现。
第5判断基准是,在便携信息终端是折叠式形状的终端(例如折叠式的移动 电话)时,在由用户开闭折叠式便携信息终端时进行预装入处理。在这种情况 下,预装入控制单元112通过检测便携信息终端从关闭状态变成打开状态或便 携信息终端从打开状态变成关闭状态,来决定开始时刻。便携信息终端的折叠 开闭检测结构本身可以采用从已有的便携信息终端所用的器件来构成事件通 知等结构来实现。
第6判断基准是,在便携信息终端与别的电子设备之间产生通信时进行预装 入处理。在这种情况下,预装入控制单元112通过检测便携信息终端与别的电 子设备之间产生数据通信来决定开始时刻,检测产生通信的结构本身可采用从 已有的移动电话所用的器件构成的事件通知等结构来实现。
这里的所谓通信,具体地说可以认为有声音通话的呼入、用HTTP的数据通 信、用FTP的数据通信、用SSL的数据通信及用IrDA的数据通信等。当然, 也可以是便携信息终端支持的其它种类的通信。另外,根据发生通信而开始的 预装入处理对象程序也可以选择与发生通信的种类相关联的程序。关于该程序 的选择将在后面叙述(图23)。
第7判断基准是,在便携信息终端安装于别的电子设备或从其上卸下时进行 预装入处理。在这种情况下,预装入控制单元112通过检测对便携信息终端上 附加(装上)别的电子设备或将便携信息终端上附加(装上)的别的电子设备 卸下来决定开始时刻。检测有外部设备装卸的情况的结构本身可采用从已有的 便携信息终端所用的外部装置构成的事件通知等结构来实现。
这里的所谓外部装置,具体地说可以认为是SD卡等外部存储装置、蓝牙等 功能扩展单元、USB连接器、
耳机、话筒、电源连接器、充电器及键盘等。当 然,也可是便携信息终端支持的其它种类的外部装置。另外,根据外部装置的 装卸开始的预装入处理对象程序也可以选择与外部装置的种类相关联的程序。 关于该程序的选择将在后面叙述(图23)。
第8判断基准是,在便携信息终端上安装的别的应用程序开始执行或结束执 行时进行预装入处理。在这种情况下,预装入控制单元112通过检测便携信息 终端上安装的别的应用程序开始执行或别的应用程序结束执行,来决定开始时 刻。检测别的应用程序开始或结束执行的结构本身,可采用已有的便携信息终 端所用的软件之间通信的结构来实现。
这里的所谓别的应用程序,具体地说只要是浏览器、邮件程序、记事本、媒 体播放器等便携信息终端中安装的应用程序,则任何应用程序都行。另外,该 别的应用程序也可以是用机器语言(本机的)描述的,也可以利用采用除Java (TM)等的其它执行系统的结构描述的。另外,随着别的应用程序的开始或 结束而进行预装入处理的程序也可以选择有可能由开始执行的应用程序连带 起动等、与该别的应用程序相关联的程序。关于该程序的选择将在后面叙述(图 23)。
第9判断基准是,随着便携信息终端的用户输入操作,在进行一定的画面转 移时进行预装入处理。在这种情况下,预装入控制单元112根据用户的输入操 作,通过检测出便携信息终端内部状态发生转移的情况,决定开始时刻。另外, 对每一内部状态,设定用户可输入操作的指标的组合,在进行特定的输入操作 时,决定接下来的处理动作。即,内部状态是根据用户的输入操作或与外部的 通信状况等依次转移下去的,多数情况下随着内部状态的转移改变显示画面。 预装入控制单元112是在内部状态转移过程中,在进行预先设定的某特定转移 时,对其进行检测。内部状态转移的检测本身可采用已有的便携信息终端所用 的软件之间的通信的结构来实现。
图22所示为内部状态转移的一个例子。在该例子中,表示了“(1)菜单选 择状态”、“(2)应用程序选择状态”、“(3)Java应用程序选择状态“等 三个内部状态。若发生特定的内部状态转移(从图22(2)向(2)的转移), 则预装入控制单元112就检测出该转移,通知预装入单元111开始处理。预装 入单元111接受该通知,就开始程序的预装入处理。另外,随着内部状态转移 而进行预装入处理的程序也可以选择与内部状态转移种类相关联的程序。关于 该程序的选择将在后面叙述(图23)。
利用以上所述,可根据各判断基准来决定预装入处理的开始时刻,不仅在下 载时能够实施有效的预装入处理。
下面说明如何选择作为处理对象的程序。
大致来说有两个选择基准,分为(A)预装入单元111选择程序的情况;(B) 由预装入控制单元112通知处理对象程序的情况。(A)的情况下,可以考虑 采用例如以下的各选择基准。
第1选择基准是从下载给便携信息终端的程序中适当(随机)选择。在这种 情况下,预装入单元111只要从程序存储单元301中记录的程序中适当选择后 进行预装入处理即可。
第2选择基准是根据设定信息存储单元304中存储的设定信息,从下载给便 携信息终端的程序中选择作为指定高速起动的程序而设定的程序,进行预装入 程序。除此以外的程序,则不作为预装入处理的对象。另外,对于设定信息存 储单元304,已经在实施形态2中进行了说明。
第3选择基准是根据解释履历存储单元305中存储的履历信息,选择判断为 使用频度高的程序,进行预装入处理。例如选择起动次数最多的程序或选择最 近刚起动过的程序。另外,关于解释履历存储单元305,已经在实施形态2中 进行了说明。
在(B)的情况下,按照预装入处理开始的条件,预装入控制单元112选择 处理对象程序。在这种情况下,预装入控制单元112保持有预装入处理的开始 条件与处理对象程序的对应表、即预装入处理对应表,根据该对应表,来选择 决定处理对象程序。
图23所示为预装入处理对应表的一个例子。在表中,对开始预装入处理的 条件分配称为条件号的唯一的ID号,对各条件进行识别。另外,在图23中用 文字语句来描述开始条件,而与条件号的意义的对应关系,只要编号不重复即 可。而且是用字符串来表现预装入处理对象程序的标识符,但也可以采用其它 的表现方式。将与各预装入处理开始条件相关性高的、即认为下面执行可能性 大的程序预先记录在预装入处理对应表中,通过这样容易得到利用预装入处理 而使起动高速化的效果。例如,在将本发明用于带电子邮件收发功能的移动电 话的情况下,在移动电话接收电子邮件时,由于估计用户发现接收了电子邮件 后想要看电子邮件,因此比较有效的是设定为,在移动电话接收了电子邮件时, 使其预装入邮件程序。通过这样,能够缩短用户在起动邮件程序时的起动时间。
根据上面所述,能够选择预装入处理的开始时刻及对象程序,能够选择必须 高速起动的程序或使用频度高的程序,实施有效的预装入处理。
实施形态4
图24所示为本发明实施形态4的程序执行处理终端装置的构成方框图。由 程序下载单元101、装入单元102、运行时间节省单元110、后装入单元105、 解释单元106、控制单元107、预装入单元113、其它应用程序指示通知单元 114、程序存储单元301、暂时运行时间执行形式存储单元302、运行时间执行 形式存储单元303、设定信息存储单元304及解释履历存储单元305构成。程 序下载单元101、装入单元102、运行时间节省单元110、后装入单元105、解 释单元106、控制单元107、程序存储单元301、暂时运行时间执行形式存储单 元302、运行时间执行形式存储单元303、设定信息存储单元304及解释履历 存储单元305与图15中说明的相同。这里,对于新追加的预行装入单元113 及其它应用程序指示通知单元114进行说明。
预装入单元113从其它应用程序指示通知单元114接收通知,通过这样进行 将程序存储单元301中记录的程序变换为暂时运行时间执行形式、并存入暂时 运行时间执行形式存储单元302的预装入处理。特别是在通知指定特定程序的 标识符时,选择所通知的程序作为预装入处理对象。另外,通过从控制单元107 接收开始预装入的指示,在下载程序时,也能够继续实施预装入处理。
其它应用程序指示通知单元114,通知预装入单元113,有从便携信息终端 上安装的其它应用程序来的开始预装入的指示。
图25所示为其它应用程序指示开始预装入的情况下的处理概要的一个例 子。
从其它应用程序接收开始预装入的指示的结构本身可以通过在便携信息终 端中具有例如能够从其它应有程序的源代码中调用的API来实现。通过调用该 API,其它应用程序指示通知单元114进行处理,指示预装入单元113开始进 行预装入处理。在图25中,所示的例子是,用preloading_start表示的API起 到从其它应用程序进行调用,并通知预装入单元113开始进行预装入处理的作 用。
另外,进行预装入处理的程序,也可以在API调用时一起指定。在图25中 所示的例子是,作为API的变量指定程序。变量program_id表示程序存储单元 301中存储的程序的标识符,设利用Proloading_start的处理对预装入单元113 进行的通知也包含program_id的信息。预装入单元113接收该program_id的信 息,选择预装入处理的程序。另外,也可以不指定程序,预装入单元113选择 执行下一个预装入的对象程序。
根据以上所述,可以不根据设备状态来决定预装入处理发生的触发动作,而 在正在执行的应用程序中自由指定。即,通过生成调用特定程序的预装入处理 那样的应用程序,在执行该应用程序的便携信息终端中进行对接下来的预定有 效等特定程序进行预装入处理,通过这样能够缩短特定程序的起动时间。
工业上的实用性
采用本发明,在起动利用程序传送服务下载给便携信息终端的例如Java (TM)等编制的程序时,通过进行预装入处理或运行时间节省处理,能够缩 短程序的起动时间。