应用程序运行方法、装置、终端及计算机可读存储介质与流程

文档序号:11250637阅读:872来源:国知局
应用程序运行方法、装置、终端及计算机可读存储介质与流程

本发明实施例涉及终端应用技术领域,尤其涉及一种应用程序运行方法、装置、终端及计算机可读存储介质。



背景技术:

终端系统的应用程序是以安装包的形式存放于终端中,例如android系统以apk(androidpackage,安卓安装包)的形式存放,ios系统以ipa(iphoneapplication,apple程序应用文件)的形式存放。

以android系统为例,一个常规的apk,其源码结构包括代码、资源文件和入口文件(androidmanifest.xml文件),其中,入口文件配置了程序运行所必要的组件。将上述代码和资源文件通过编译命令或ide工具可编译出apk安装包。当应用程序运行时,会执行代码,在代码执行过程中需要调用资源文件时,一般是根据资源文件的标识从apk中调用资源文件。

发明人在实施本发明的过程中,发现现有技术方案具有以下缺陷:对于已发布的安装包,如果想要更改一小部分的资源文件,比如更改字符串的显示,更改其中一些图片等等,需要在更新资源文件后重新编译一个apk安装包,再进行覆盖安装,耗费大量的资源。



技术实现要素:

本发明提供一种应用程序运行方法、装置、终端及计算机可读存储介质,以实现在面对更改应用程序的资源文件时,不需要重新编译应用程序安装包,减小资源的耗费。

第一方面,本发明实施例提供了一种应用程序运行方法,包括:

在应用程序安装包中的代码运行过程中产生资源文件调用请求时,根据资源文件的标识从资源文件包中调用资源文件;其中,所述资源文件包为与所述应用程序安装包关联的安装包;所述应用程序安装包和所述资源文件包中对应资源文件的标识相同;

若从所述资源文件包中调用资源文件失败,则根据所述资源文件的标识从所述应用程序安装包调用资源文件。

进一步地,所述资源文件包中的入口文件包含有声明本资源文件包与所述应用程序安装包关联的标签;

所述在应用程序安装包中的代码运行过程中产生资源文件调用请求时,根据资源文件的标识从资源文件包中调用资源文件,具体包括:

在各安装包的入口文件中检测是否存在声明标签;

根据所述资源文件的标识从包含有该标签的安装包中调用资源文件。

进一步地,所述若从所述资源文件包中调用资源文件失败,则根据所述资源文件的标识从所述应用程序安装包调用资源文件,具体包括:

若读取不到所述资源文件包,则根据资源文件的标识从所述应用程序安装包调用资源文件;

若读取到所述资源文件包,且根据所述资源文件的标识从所述资源文件包中调用不到所述资源文件,则根据所述资源文件的标识从所述应用程序安装包调用资源文件。

进一步地,所述应用程序运行方法还包括:

在接收到恢复使用所述应用程序安装包中的资源文件的指令时,删除所述资源文件包。

进一步地,所述资源文件为图片文件或字符串文件。

第二方面,本发明实施例还提供了一种应用程序运行装置,该应用程序运行装置包括:

第一调用模块,用于在应用程序安装包中的代码运行过程中产生资源文件调用请求时,根据资源文件的标识从资源文件包中调用资源文件;其中,所述资源文件包为与所述应用程序安装包关联的安装包;所述应用程序安装和所述资源文件包中对应的资源文件的标识相同;

第二调用模块,用于若从所述资源文件包中调用资源文件失败,则根据所述资源文件的标识从所述应用程序安装包调用资源文件。

进一步地,所述第二调用模块包括:

第一原始调用单元,用于若读取不到所述资源文件包,则根据资源文件的标识从所述应用程序安装包调用资源文件;

第二原始调用单元,用于若读取到所述资源文件包,且根据所述资源文件的标识从所述资源文件包中调用不到所述资源文件,则根据所述资源文件的标识从所述应用程序安装包调用资源文件。

进一步地,所述应用程序运行装置还包括:

恢复模块,用于在接收到恢复使用所述应用程序安装包中的资源文件的指令时,删除所述资源文件包。

第三方面,本发明实施例还提供了一种终端,所述终端包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现以上任一所述的应用程序运行方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以上任一所述的应用程序运行方法。

本发明实施例通过将调用资源文件的方法调整为先从资源文件包中调用资源文件,若从资源文件包中调用失败再从应用程序安装包中调用资源文件,使得可以通过增加资源文件包的方式来替代应用程序安装包中资源文件的使用,在需要更新资源文件时无需重新编译整个应用程序安装包,解决现有技术方案需要重新编译应用程序安装包造成资源耗费大的问题,实现修改资源文件方便、节省编译和发布的资源的效果。

附图说明

图1是本发明实施例一中的应用程序运行方法的流程图;

图2是本发明实施例一中的应用程序运行方法的原理图;

图3是本发明实施例二中的应用程序运行方法的流程图;

图4是本发明实施例三中的应用程序运行装置的结构示意图;

图5是本发明实施例四提供的一种终端的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的应用程序运行方法的流程图,本实施例可适用于终端操作系统中应用程序运行过程中对资源文件的调取使用,例如在android系统该方法可以通过更改androidframeworks源码runtimeresourceoverlay机制来实现,具体包括如下步骤:

步骤110、在应用程序安装包中的代码运行过程中产生资源文件调用请求时,根据资源文件的标识从资源文件包中调用资源文件;

其中,所述资源文件包为与所述应用程序安装包关联的安装包;所述应用程序安装包和所述资源文件包中对应资源文件的标识相同;具体地,所述应用程序安装包包含该应用程序的代码和一个或多个原始资源文件;所述资源文件包包含一个或多个与所述原始资源文件全部或部分对应的资源文件,具体实施时,可以是做了更新修改的资源文件;此外,以android系统为例,在具体实施时,各安装包除包含代码和/或原始资源代码外,还须包含android应用程序的入口文件androidmanifest.xml,该入口文件配置了应用程序运行所必要的组件;资源文件的标识包括资源文件的身份信息(id)以及配置信息(cfg),根据资源文件的标识可在安装包中找到对应的资源文件;;

步骤120、若从所述资源文件包中调用资源文件失败,则根据所述资源文件的标识从所述应用程序安装包调用资源文件。

图2为本实施例应用程序运行方法的原理图,如图所示,该应用程序运行方法的工作原理为:在应用程序(app)安装包中的代码运行过程中产生调用资源文件23的请求时,根据资源文件的标识(id及cfg)先从包含有更新的资源文件的资源文件包22(overlay.apk)中调用,若调用失败,则到应用程序安装包21(app.apk)中调用,成功调用到资源文件返回至应用程序(app)显示。

本实施例的技术方案,通过将调用资源文件的方法调整为先从资源文件包中调用资源文件,若从资源文件包中调用失败再从应用程序安装包中调用资源文件,使得可以通过增加资源文件包的方式来替代应用程序安装包中的资源文件的使用,在需要更新资源文件时无需重新编译整个应用程序安装包,解决现有技术方案需要重新编译应用程序安装包造成资源耗费大的问题,实现修改资源文件方便、节省编译和发布的资源的效果。并且,资源文件的修改可以和代码的修改分开,不相互影响,提高了应用程序的可维护性,也方便根据不同的需求对应用的资源文件进行配置。

在上述技术方案的基础上,优选地,应用程序运行方法的步骤120具体包括:

若读取不到所述资源文件包,则根据资源文件的标识从所述应用程序安装包调用资源文件;

若读取到所述资源文件包,且根据所述资源文件的标识从所述资源文件包中调用不到所述资源文件,则根据所述资源文件的标识从所述应用程序安装包调用资源文件。

该优选实施方式设置了调用资源文件失败可有两种情况:一、资源文件包不存在;二、资源文件包中不存在应用程序要调用的资源文件。对于该优选实施方式,资源文件包和应用程序安装包中的资源文件可以只是部分对应替代,而无需全部对应替代,使得本领域技术人员在通过增加资源文件包的方式来修改资源文件时,可以在资源文件包中最小化资源文件包的容量,即资源文件包中的资源文件仅包括更新的资源文件,从而进一步减少安装包的编译和发布的资源耗费,也减少文件在终端存储介质中的占用量。

在上述技术方案的基础上,作为查找资源文件包的优选方式,所述资源文件包中的入口文件包含有声明本资源文件包与所述应用程序安装包关联的标签;步骤110、在应用程序调用资源文件时,根据资源文件的标识从资源文件包中调用资源文件,具体包括:

在各安装包的入口文件中检测是否存在声明标签;

根据所述资源文件的标识从包含有该标签的安装包中调用资源文件。

具体地,在android系统中,实施上述优选实施方式可通过在资源文件包的入口文件androidmanifest.xml中增加如下标签以实现与应用程序安装包区分:

其中,package是资源文件包的包名,上述标签指定了targetpackage的值为应用程序安装包的包名,即声明了本安装包与应用程序安装包的关联关系。通过标签的设置区分了资源文件包和应用程序安装包,使得资源文件的管理方法能完善执行。

综上,本实施例的技术方案,解决现有技术方案需要重新编译应用程序安装包造成资源耗费大的问题,实现修改资源文件方便、节省编译和发布的资源的效果。

实施例二

图3为本发明实施例二提供的应用程序运行方法的流程图,本实施例包括上述实施例一的全部特征,并且增加了恢复使用原始资源文件的步骤,同样可适用于终端操作系统中应用程序运行过程中对资源文件的调取使用,例如在android系统该方法可以通过更改androidframeworks源码runtimeresourceoverlay机制来实现,具体包括如下步骤:

步骤310、在应用程序安装包中的代码运行过程中产生资源文件调用请求时,根据资源文件的标识从资源文件包中调用资源文件;其中,所述资源文件包为与所述应用程序安装包关联的安装包,所述应用程序安装包和所述资源文件包中对应资源文件的标识相同;

步骤320、若从所述资源文件包中调用资源文件失败,则根据所述资源文件的标识从所述应用程序安装包调用资源文件;

步骤330、在接收到恢复使用所述应用程序安装包中的资源文件的指令时,删除所述资源文件包。

本实施例的技术方案,通过增加资源文件包的方式来替代原始资源文件,无需重新编译整个应用程序安装包,并且,在接收到恢复使用原始文件的指令时,删除所述资源文件包;由于应用程序安装包保留有原始资源文件,因此删除资源文件包即可恢复使用原始资源文件,解决了现有技术中在应用程序安装包中更新了资源文件后无法恢复的问题,实现了恢复简单的效果。

在上述技术方案的基础上,该应用程序运行方法还可以包括:

从服务器接收第二资源文件包;其中,所述第二资源文件包和所述应用程序安装包中对应的标识相同;

删除原有的资源文件包,并以所述第二资源文件包作为当前的资源文件包。

上述改进方案是对资源文件二次修改进行了适应性改进,卸载原有的资源文件安装第二资源文件包可获得最新的资源文件。显然,本实施例将资源文件的修改与代码进行隔离,在二次修改时重新编译和发布资源文件安装包,所损耗的资源远小于整个应用程序安装包进行重新编译和发布所损耗的资源,且通过减少重新编译和发布的次数,可降低由于可能存在不当操作或是编译环境变更所带来的风险。当然,本领域技术人员还可以继续通过更改androidframeworks源码runtimeresourceoverlay机制来调整调用资源文件的方法,使得第二资源文件包与原有的资源文件包共存,资源文件的调用顺序调整为先从第二资源文件包调用,再从原有的资源文件包调用,即按照下载时间调整资源文件包调用的优先级;当从所有资源文件包调用都失败时,再从应用程序安装包进行调用。这些方案都不脱离本发明的保护范围。

综上,本实施例的技术方案,在解决现有技术方案需要重新编译应用程序安装包造成资源耗费大的问题的基础上,还解决了现有技术方案中在应用程序安装包中更新了资源文件后无法恢复的问题,实现修改资源文件方便、节省编译和发布的资源、恢复简单的效果。

实施例三

图4为本发明实施例二提供的应用程序运行装置的结构示意图;该装置包括:

第一调用模块,用于在应用程序安装包中的代码运行过程中产生资源文件调用请求时,根据资源文件的标识从资源文件包中调用资源文件;其中,所述资源文件包为与所述应用程序安装包关联的安装包;所述应用程序安装包和所述资源文件包中对应资源文件的标识相同;

第二调用模块,用于若从所述资源文件包中调用资源文件失败,则根据所述资源文件的标识从所述应用程序安装包调用资源文件。

进一步地,所述资源文件包中的入口文件包含有声明本资源文件包与所述应用程序安装包关联的标签;

所述第一调用模块包括:

检测单元,用于在各安装包的入口文件中检测是否存在声明标签;

执行单元,用于根据所述资源文件的标识从包含有该标签的安装包中调用资源文件。

进一步地,所述第二调用模块包括:

第一原始调用单元,用于若读取不到所述资源文件包,则根据资源文件的标识从所述应用程序安装包调用资源文件;

第二原始调用单元,用于若读取到所述资源文件包,且根据所述资源文件的标识从所述资源文件包中调用不到所述资源文件,则根据所述资源文件的标识从所述应用程序安装包调用资源文件。

进一步地,所述应用程序运行装置还包括:

恢复模块430,用于在接收到恢复使用所述应用程序安装包中的资源文件的指令时,删除所述资源文件包。

本发明实施例所提供的应用程序运行装置可执行本发明任意实施例所提供的应用程序运行方法,具备执行方法相应的功能模块和有益效果。

实施例四

图5为本发明实施例四提供的一种终端的结构示意图,如图5所示,该终端包括处理器510、存储器520、输入装置530和输出装置540;终端中处理器510的数量可以是一个或多个,图5中以一个处理器510为例;终端中的处理器510、存储器520、输入装置530和输出装置540可以通过总线或其他方式连接,图5中以通过总线连接为例。

存储器520作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的应用程序运行方法对应的程序指令/模块(例如,应用程序运行装置中的第一调用模块310、第二调用模块320和恢复模块330)。处理器510通过运行存储在存储器520中的软件程序、指令以及模块,从而执行终端的各种功能应用以及数据处理,即实现上述的应用程序运行方法。

作为其中一种实施方式,该终端为安卓智能电视。

存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器520可进一步包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置530可用于接收输入的数字或字符信息,以及产生与终端的用户设置以及功能控制有关的键信号输入。输出装置540可包括显示屏等显示设备。

实施例五

本发明实施例五还提供一种包含计算机可执行指令的存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例所述的应用程序运行方法。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的应用程序运行方法中的相关操作.

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

值得注意的是,上述应用程序运行装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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