odex文件生成方法及装置与流程

文档序号:11627657阅读:471来源:国知局
odex文件生成方法及装置与流程

本发明涉及通信领域,具体而言,涉及一种odex文件生成方法及装置。



背景技术:

安卓(android)5.0引入安卓运行时(androidruntime,简称为art)虚拟机后,需要将apk中的class.dex文件转换成art可识别的odex文件才能运行。这个转化过程可以在版本编译的时候执行,也可以在设备第一次开机的时候执行,图1是相关技术中转化odex文件的流程图,如图1所示,该流程包括如下步骤:

步骤s102,启动版本编译;

步骤s104,判断apk是否要预编码出odex文件,在判断结果为是的情况下,进入步骤s106,否则进入步骤s110;

步骤s106,扫描出所有apk;

步骤s108,运行dex2oat生成odex文件;

步骤s110,完成版本编译;

步骤s112,将版本下载到设备中;

步骤s114,设备第一次开机播放开机动画;

步骤s116,判断是否已经存在odex文件,在判断结果为是的情况下,进入步骤s122,否则进入步骤s118;

步骤s118,扫描出所有apk;

步骤s120,运行dex2oat生成odex文件;

步骤s122,启动完成进入待机界面;

步骤s124,从主菜单点出应用图标;

步骤s126,开始使用apk。

在上述流程中,采用两种方式来生成odex文件:第一种,是在版本编译的时候一次性扫描所有apk并生成odex文件,即上述步骤s104至步骤s108;第二种,是在第一次开机时一次性扫描所有apk并生成odex文件,即上述步骤s116至步骤s120。

然而,在上述两种方式中,一种方式中,由于需要在编译的时候完成所有apk的odex文件生成,导致编译时间变长;其次,版本中会多出很多odex文件,导致版本变大,需要占用设备更多的存储空间。而另一种方式中,由于需要在第一次开机的时候扫描apk并生成所有 odex文件,导致第一次开机等待时间显著增加,而且预制的apk越多时间越长。

因此,在相关技术中,生成odex文件存在时间成本高,耗费存储空间大,导致用户体验低的问题。



技术实现要素:

本发明提供了一种odex文件生成及装置,以至少解决相关技术中生成odex文件存在时间成本高,耗费存储空间大,导致用户体验低的问题。

根据本发明的一个方面,提供了一种odex文件生成方法,包括:确定单个待运行文件;判断所述单个待运行文件的文件类型是否为odex类型;在判断结果为否的情况下,将所述单个待运行文件生成odex文件。

优选地,所述单个待运行文件包括以下至少之一:开机系统文件、应用程序文件。

优选地,在所述单个待运行文件为所述应用程序文件的情况下,通过以下方式,确定所述单个待运行文件:接收对应用图标的点击操作,其中,所述应用图标为所述应用程序文件对应的应用程序的图标,所述点击操作用于启动所述应用程序文件对应的所述应用程序。

优选地,判断所述单个待运行文件的文件类型是否为所述odex类型包括:判断所述单个待运行文件是否是第一次被运行;当所述单个待运行文件是第一次被运行的情况下,判断所述单个待运行文件中是否包括扩展名为.doex的文件;当所述单个待运行文件中包括扩展名为.doex的文件的情况下,确定所述单个待运行文件的文件类型为所述odex类型;和/或,当所述单个待运行文件中不包括扩展名为.doex的文件的情况下,确定所述单个待运行文件的文件类型不为所述odex类型。

优选地,该方法还包括:在判断所述单个待运行文件的文件类型为所述odex类型的情况下,运行所述单个待运行文件;和/或,在将所述单个待运行文件生成所述odex文件之后,运行生成的所述odex文件。

根据本发明的另一方面,提供了一种odex文件生成装置,包括:确定模块,用于确定单个待运行文件;判断模块,用于判断所述单个待运行文件的文件类型是否为odex类型;生成模块,用于在判断结果为否的情况下,将所述单个待运行文件生成odex文件。

优选地,所述单个待运行文件包括以下至少之一:开机系统文件、应用程序文件。

优选地,所述确定模块包括:接收单元,用于接收对应用图标的点击操作,其中,所述应用图标为所述应用程序文件对应的应用程序的图标,所述点击操作用于启动所述应用程序文件对应的所述应用程序。

优选地,所述判断模块包括:第一判断单元,用于判断所述单个待运行文件是否是第一次被运行;第二判断单元,用于当所述单个待运行文件是第一次被运行的情况下,判断所述单个待运行文件中是否包括扩展名为.doex的文件;第一确定单元,用于当所述单个待运行文 件中包括扩展名为.doex的文件的情况下,确定所述单个待运行文件的文件类型为所述odex类型;和/或,第二确定单元,用于当所述单个待运行文件中不包括扩展名为.doex的文件的情况下,确定所述单个待运行文件的文件类型不为所述odex类型。

优选地,该装置还包括:运行模块,用于在判断所述单个待运行文件的文件类型为所述odex类型的情况下,运行所述单个待运行文件;和/或,在将所述单个待运行文件生成所述odex文件之后,运行生成的所述odex文件。

通过本发明,采用确定单个待运行文件;判断所述单个待运行文件的文件类型是否为odex类型;在判断结果为否的情况下,将所述单个待运行文件生成odex文件,解决了相关技术中生成odex文件存在时间成本高,耗费存储空间大,导致用户体验低的问题,进而达到了节省时间成本,减少存储空间的占用,从而提高用户体验的效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是相关技术中转化odex文件的流程图;

图2是根据本发明实施例的odex文件生成方法的流程图;

图3是根据本发明实施例的优化使用art虚拟机的方法的流程图;

图4是根据本发明实施例的odex文件生成装置的结构框图;

图5是根据本发明实施例的odex文件生成装置中确定模块42的优选结构框图;

图6是根据本发明实施例的odex文件生成装置中判断模块44的优选结构框图;

图7是根据本发明实施例的odex文件生成装置的优选结构框图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

在本实施例中提供了一种odex文件生成方法,图2是根据本发明实施例的odex文件生成方法的流程图,如图2所示,该流程包括如下步骤:

步骤s202,确定单个待运行文件,其中,该单个待运行文件可以包括以下至少之一:开机系统文件、应用程序文件;

步骤s204,判断单个待运行文件的文件类型是否为odex类型;

步骤s206,在判断结果为否的情况下,将单个待运行文件生成odex文件。

通过上述步骤,采用对单个待运行文件进行判断,而后生成odex文件,相对于相关技术而言,将原有的编译时一次性扫描apk并生成odex文件或开机时一次性扫描apk并生成所有odex文件的方法,改成使用单个apk的时候就生成单个odex文件,将原先一次性odex转化过程变成分散在每个apk使用时的odex转化过程,节省了开机时间,缩短了编译时间,另外,还减少了设备存储空间的占用,还方便了预制apk的调试开发,提升了用户体验。

在确定单个待运行文件时,依据单个待运行文件的类型不同,可以采用不同的处理方式,例如,在单个待运行文件为应用程序文件的情况下,可以通过以下方式确定单个待运行文件:接收对应用图标的点击操作,其中,应用图标为应用程序文件对应的应用程序的图标,点击操作用于启动应用程序文件对应的应用程序。即通过用户点击对应的应用程序的应用图标的方式来确定单个待运行文件。这样由用户来触发的方式,清楚简单。

在判断单个待运行文件的文件类型是否为odex类型时,也可以依据多种方式来判断,例如,可以依据单个待运行文件的文件扩展名来判断。另外,在采用这种方式判断时,为了提高判断的准确性,可以先对待运行文件的文件类型时行预判,例如,在判断单个待运行文件的文件扩展名之前,先判断单个待运行文件是否是第一次被运行;当单个待运行文件是第一次被运行的情况下,判断单个待运行文件中是否包括扩展名为.doex的文件;当单个待运行文件中包括扩展名为.doex的文件的情况下,确定单个待运行文件的文件类型为odex类型;和/或,当单个待运行文件中不包括扩展名为.doex的文件的情况下,确定单个待运行文件的文件类型不为odex类型。采用这样的方式,即通过两次判断来确定该单个待运行文件的文件类型为odex类型,从而有效地提高了判断的准确性。

优选地,在判断单个待运行文件的文件类型为odex类型的情况下,运行单个待运行文件;和/或,在将单个待运行文件生成odex文件之后,运行生成的odex文件。采用这样的处理,完成对单个待运行文件的运行。

在相关技术中,android5.0开始已经完全切换到art虚拟机,相对于之前的dalvik虚拟机,提高了系统运行时性能、提高了应用启动速度、整体体验更流畅等,不过为了达到这些提升所付出的代价就是需要更大的存储空间、更长的版本编译时间、首次开机时间显著增加、降低了预制apk调试的便利性。为解决上述问题,在本实施例中,基于上述odex文件生成方法,还提供了一种优化使用art虚拟机的方法。

在该方法中,对相关技术中扫描apk并生成odex文件的时机及方式做了调整,将原有的编译时一次性扫描apk并生成odex文件或开机时一次性扫描apk并生成所有odex文件的方法,改成开机后用户第一次使用单个apk的时候就生成单个odex文件,将原有的两种odex生成方式统一成一种方式。即通过分而治之的方式,将原先一次性odex转化过程变成分散在每个apk第一次使用时的odex转化过程,节省了开机时间,缩短了编译时间,另外,还减少了设备存储空间的占用,还方便了预制apk的调试开发,提升了用户体验。

下面对本发明方法实施例的流程作一下说明,图3是根据本发明实施例的优化使用art虚拟机的方法的流程图,如图3所示,该流程包括如下步骤:

步骤s302,在电脑上启动设备版本的编译;

步骤s304,版本编译完成,期间没有执行apk扫描以及odex文件的生成;

步骤s306,将编译好的版本下载到设备中,此时版本里没有包含odex文件;

步骤s308,版本下载完成后开机,开机过程中也没有执行apk扫描以及odex文件的生成;

步骤s310,完成开机过程并进入待机界面;

步骤s312,从主菜单点击应用图标来启动应用;

步骤s314,启动应用时判断此应用对应的文件中是否已经存在odex文件,如果已经存在执行步骤s318,否则执行步骤s316;

步骤s316,运行dex2oat生成此应用的odex文件;

步骤s318,开始正常使用此应用。

在该方法中,与相关技术相比,去掉了相关技术中,编译时一次性扫描apk并生成odex文件的步骤;这样减少了版本编译时间,同时节省了设备的存储空间;去掉了相关技术中第一次开机时一次性扫描apk并生成odex文件的步骤;这样减少了第一次开机时用户漫长的等待时间,提升了用户体验;在用户点击应用图标时增加了判断此apk是否存在odex文件的步骤,如果不存在就运行dex2oat生成odex文件;由于对单个apk生成odex的时间并不会很长,在用户可以接受范围内,因而有效避免了之前长时间等待的情况。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。

在本实施例中还提供了一种odex文件生成装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图4是根据本发明实施例的odex文件生成装置的结构框图,如图4所示,该装置包括确定模块42、判断模块44和生成模块46,下面对该装置进行说明。

确定模块42,用于确定单个待运行文件;判断模块44,连接至上述确定模块42,用于判断单个待运行文件的文件类型是否为odex类型;生成模块46,连接至上述判断模块44,用于 在判断结果为否的情况下,将单个待运行文件生成odex文件。

优选地,单个待运行文件包括以下至少之一:开机系统文件、应用程序文件。

图5是根据本发明实施例的odex文件生成装置中确定模块42的优选结构框图,如图5所示,该确定模块42包括接收单元52,下面对该接收单元52进行说明。

接收单元52,用于接收对应用图标的点击操作,其中,应用图标为应用程序文件对应的应用程序的图标,点击操作用于启动应用程序文件对应的应用程序。

图6是根据本发明实施例的odex文件生成装置中判断模块44的优选结构框图,如图6所示,该判断模块44包括:第一判断单元62、第二判断单元64、第一确定单元66和第二确定单元68,下面对该判断模块44进行说明。

第一判断单元62,用于判断单个待运行文件是否是第一次被运行;第二判断单元64,连接至上述第一判断单元62,用于当单个待运行文件是第一次被运行的情况下,判断单个待运行文件中是否包括扩展名为.doex的文件;第一确定单元66,连接至上述第二判断单元64,用于当单个待运行文件中包括扩展名为.doex的文件的情况下,确定单个待运行文件的文件类型为odex类型;和/或,第二确定单元68,连接至上述第二判断单元64,用于当单个待运行文件中不包括扩展名为.doex的文件的情况下,确定单个待运行文件的文件类型不为odex类型。

图7是根据本发明实施例的odex文件生成装置的优选结构框图,如图7所示,该装置除包括图4所示的所有结构外,还包括:运行模块72,下面对该运行模块72进行说明。

运行模块72,连接至上述判断模块44和生成模块46,用于在判断单个待运行文件的文件类型为odex类型的情况下,运行单个待运行文件;和/或,在将单个待运行文件生成odex文件之后,运行生成的odex文件。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:

s1,确定单个待运行文件;

s2,判断单个待运行文件的文件类型是否为odex类型;

s3,在判断结果为否的情况下,将单个待运行文件生成odex文件。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:

s1,单个待运行文件包括以下至少之一:开机系统文件、应用程序文件。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:

s1,在单个待运行文件为应用程序文件的情况下,通过以下方式,确定单个待运行文件:接收对应用图标的点击操作,其中,应用图标为应用程序文件对应的应用程序的图标,点击操作用于启动应用程序文件对应的应用程序。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:判断单个待运行文件的文件类型是否为odex类型包括:

s1,判断单个待运行文件是否是第一次被运行;

s2,当单个待运行文件是第一次被运行的情况下,判断单个待运行文件中是否包括扩展名为.doex的文件;

s3,当单个待运行文件中包括扩展名为.doex的文件的情况下,确定单个待运行文件的文件类型为odex类型;和/或,当单个待运行文件中不包括扩展名为.doex的文件的情况下,确定单个待运行文件的文件类型不为odex类型。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:

s1,在判断单个待运行文件的文件类型为odex类型的情况下,运行单个待运行文件;和/或,在将单个待运行文件生成odex文件之后,运行生成的odex文件。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:确定单个待运行文件;判断单个待运行文件的文件类型是否为odex类型;在判断结果为否的情况下,将单个待运行文件生成odex文件。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:单个待运行文件包括以下至少之一:开机系统文件、应用程序文件。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:在单个待运行文件为应用程序文件的情况下,通过以下方式,确定单个待运行文件:接收对应用图标的点击操作,其中,应用图标为应用程序文件对应的应用程序的图标,点击操作用于启动应用程序文件对应的应用程序。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:判断单个待运行文件的文件类型是否为odex类型包括:判断单个待运行文件是否是第一次被运行;当单个待运行文件是第一次被运行的情况下,判断单个待运行文件中是否包括扩展名为.doex的文件;当单个待运行文件中包括扩展名为.doex的文件的情况下,确定单个待运行文件的文件类型为odex类型;和/或,当单个待运行文件中不包括扩展名为.doex的文件的情况下,确定单个待运行文件的文件类型不为odex类型。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:在判断单个待 运行文件的文件类型为odex类型的情况下,运行单个待运行文件;和/或,在将单个待运行文件生成odex文件之后,运行生成的odex文件。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1