一种应用程序的运行方法和装置与流程

文档序号:16400529发布日期:2018-12-25 20:06阅读:196来源:国知局
一种应用程序的运行方法和装置与流程

本发明涉及计算机技术领域,尤其涉及一种在终端上运行应用程序的方法和装置。

背景技术

随着科技的不断发展,日益繁多的应用程序被开发出来应用在人们的工作和生活中,终端通过运行不同的应用程序来实现不同的功能,从而服务于用户,但目前终端上搭载的操作系统不一致且操作系统的版本随时都在更新,由于不同操作系统运行原理不同,在运行同一个应用程序时的管理方式也不同,因此,应用程序在不同操作系统下运行时可能出现应用兼容性问题。例如:终端上的操作系统主要有安卓系统(谷歌)、ios(苹果)、windowsphone(微软)、塞班系统(诺基亚)等。以安卓系统为例,目前安卓7.0为安卓系统的最新版本,在此之前旧版本还包括安卓6.0、安卓5.0等等,这些不同种类不同版本的操作系统在运行应用程序时无可避免的会存在兼容性问题。目前针对应用程序兼容性问题的解决方案主要有以下几种:1、终端根据不同的操作系统版本采用不同的应用程序编程接口(applicationprogramminginterface,api);2、将应用程序在运行过程中出现错误的地方进行代码规避;3、添加操作系统支持包(如:安卓支持包),使应用程序能调用其他版本的操作系统的控件和接口。对于上述应用程序兼容性问题可以通过应用程序兼容性测试,找出对应的修改方案来解决。

但目前在解决应用程序兼容性问题时,只是针对单个应用程序本身进行问题查找与修改,在解决多个应用程序的兼容性问题时存在工作效率低的问题。



技术实现要素:

为解决上述技术问题,本发明实施例期望提供一种在终端上运行应用程序的方法和装置,提高了解决多个应用程序兼容性问题的工作效率。

本发明的技术方案是这样实现的:

本发明实施例提供了一种在终端上运行应用程序的方法,包括:

所述终端当前的操作系统为主操作系统时,根据至少一个其他操作系统搭建对应的子操作系统,所述子操作系统用于提供应用程序的运行方式,所述其他操作系统是与主操作系统不相同的操作系统;

确定应用程序在所述终端的主操作系统下运行失败后,为所述应用程序选择子操作系统;控制所述应用程序在所选择的子操作系统下运行。

上述方案中,所述为所述应用程序选择子操作系统包括:根据所述应用程序的运行参数选择对应的子操作系统;

或者,接收指示信息,根据所述指示信息,为所述应用程序选择对应的子操作系统。

上述方案中,所述主操作系统为安卓操作系统时,所述运行参数为应用程序编程接口api版本号;

所述根据所述应用程序的运行参数选择对应的子操作系统包括:所述应用程序的api版本号大于或者等于第i阈值,且小于第i+1阈值时,选择第i个子操作系统,i取正整数。

上述方案中,所述主操作系统为安卓操作系统时,所述根据至少一个其他操作系统的特性搭建对应的子操作系统包括:使用所述主操作系统的框架层、虚拟机和内核层搭建所述至少一个其他操作系统对应的子操作系统;所述主操作系统的框架层用于实现其他操作系统对应用程序的启动管理和后台管理;所述主操作系统的框架层和虚拟机共同用于实现其他操作系统对应用程序的安装管理;所述主操作系统的内核层用于实现其他操作系统对应用程序的权限管理。

上述方案中,所述方法还包括:在所述主操作系统更新时,将所述主操作系统更新的内容添加到每个子操作系统中。

本发明实施例还提供了一种在终端上运行应用程序的装置,该装置包括:搭建模块、选择模块和控制模块;其中,

搭建模块,用于在所述终端当前的操作系统为主操作系统时,根据至少一个其他操作系统的特性搭建对应的子操作系统,所述子操作系统用于提供应用程序的运行方式,所述其他操作系统是与主操作系统不相同的操作系统;

选择模块,用于确定应用程序在所述终端的主操作系统下运行失败后,为所述应用程序选择子操作系统;

控制模块,用于控制所述应用程序在所选择的子操作系统下运行。

上述方案中,所述选择模块,具体用于根据所述应用程序的运行参数选择对应的子操作系统;或者,接收指示信息,根据所述指示信息,为所述应用程序选择对应的子操作系统。

上述方案中,所述主操作系统为安卓操作系统时,所述运行参数为应用程序编程接口api版本号;

所述选择模块,具体用于在所述应用程序的api版本号大于或者等于第i阈值,且小于第i+1阈值时,选择第i个子操作系统,i取正整数。

上述方案中,所述主操作系统为安卓操作系统时,所述搭建模块,具体用于使用所述主操作系统的框架层、虚拟机和内核层搭建所述至少一个其他操作系统对应的子操作系统;所述主操作系统的框架层用于实现其他操作系统对应用程序的启动管理和后台管理;所述主操作系统的框架层和虚拟机共同用于实现其他操作系统对应用程序的安装管理;所述主操作系统的内核层用于实现其他操作系统对应用程序的权限管理。

上述方案中,所述装置还包括:更新模块;更新模块,用于在所述主操作系统更新时,将所述主操作系统更新的内容添加到每个子操作系统中。

本发明实施例提供的一种在终端上运行应用程序的方法和装置,该方法包括:终端当前的操作系统为主操作系统时,根据至少一个其他操作系统搭建对应的子操作系统,子操作系统用于提供应用程序的运行方式,其他操作系统是与主操作系统不相同的操作系统;确定应用程序在终端的主操作系统下运行失败后,为应用程序选择子操作系统;控制应用程序在所选择的子操作系统下运行。与现有技术相比,通过在终端主操作系统的基础上搭建至少一个子操作系统,当应用程序与主操作系统存在兼容性问题时,可以选择在与应用程序兼容的子操作系统上运行应用程序,保证应用程序的正常运行。如此,针对不同的应用程序均可以采用本发明实施例提供的方法来解决兼容性问题,无需对单个应用程序兼容性问题进行逐个解决,提高了解决多个应用程序兼容性问题的工作效率。

附图说明

图1为本发明在终端上运行应用程序的方法的第一实施例的流程示意图;

图2为本发明实施例中应用程序管理的结构示意图;

图3为本发明实施例中终端操作系统的结构示意图;

图4为本发明在终端上运行应用程序的方法的第二实施例的流程示意图;

图5为本发明实施例中终端的交互示意图;

图6为本发明实施例在终端上运行应用程序的装置的组成结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

第一实施例

图1为本发明在终端上运行应用程序的方法的第一实施例的流程示意图,如图1所示,该方法包括:

步骤101:根据至少一个其他操作系统搭建对应的子操作系统,子操作系统用于提供应用程序的运行方式,其他操作系统是与主操作系统不相同的操作系统。

在实际实施时,终端当前的操作系统为主操作系统,在主操作系统的运行环境中,根据至少一个其他操作系统的特性搭建对应的子操作系统。

示例性的,目前终端上搭载的操作系统有:安卓系统(谷歌)、ios(苹果)、windowsphone(微软)、塞班系统(诺基亚)等,本发明实施例中可以为不同版本的操作系统建立对应的子操作系统。当终端上搭载安卓7.0为主操作系统时,可以在终端上搭建至少一个其他版本的安卓操作系统(如:安卓6.0、安卓5.0等)对应的子操作系统。

这里,子操作系统用于提供应用程序的运行方式,子操作系统能够使终端上至少一个应用程序运行,子操作系统可以具有其他版本的操作系统的全部功能,也可以只具有其他版本的操作系统的部分功能。

步骤102:确定应用程序在终端的主操作系统下运行失败后,为应用程序选择子操作系统;控制应用程序在所选择的子操作系统下运行。

在实际实施时,为应用程序选择子操作系统可以包括:根据应用程序的运行参数选择对应的子操作系统;或者,接收指示信息,根据指示信息,为应用程序选择对应的子操作系统。

具体的,在应用程序出现兼容性问题时,可以通过终端自行选择支持应用程序运行的兼容模式(兼容模式即为可以支持应用程序运行的操作系统版本,也就是本发明实施例搭建的子操作系统),也可以通过设置应用程序的兼容模式,由用户来自主选择应用程序对应的兼容模式。

在终端自行选择支持应用程序运行的兼容模式时,终端会对应用程序的api版本号进行检测,并且选择最适合当前应用程序的兼容模式去运行该应用。示例性的,主操作系统为安卓操作系统时,运行参数为应用程序编程接口api版本号;根据应用程序的运行参数选择对应的子操作系统包括:应用程序的api版本号大于或者等于第i阈值,且小于第i+1阈值时,选择第i个子操作系统,i取正整数,第i+1阈值大于第i阈值。

在由用户来自主选择应用程序对应的兼容模式时,用户可以根据当前应用程序的运行标准,为当前应用程序设置合适的兼容模式。示例性的,用户在对应用程序的兼容模式设置完成后,终端会接收到一条指示信息,并根据指示信息,为应用程序选择对应的子操作系统。

在实际实施时,主操作系统为安卓操作系统时,在终端的主操作系统下运行应用程序时可以包括:对应用程序进行启动管理、后台管理、安装管理和权限管理。相应的,根据至少一个其他操作系统的特性搭建对应的子操作系统可以包括:使用主操作系统的框架层、虚拟机和内核层搭建至少一个其他操作系统对应的子操作系统;主操作系统的框架层用于实现其他操作系统对应用程序的启动管理和后台管理;主操作系统的框架层和虚拟机共同用于实现对应用程序的安装管理;主操作系统的内核层用于实现对应用程序的权限管理。

本发明实施例中,还可以包括对子操作系统的优化,即在主操作系统更新时,将主操作系统更新的内容添加到每个子操作系统中。

可以理解的是,由于子操作系统是依据其他操作系统的特性搭建的,因此在搭建过程中要完全熟悉其他操作系统的运行特性,可以将其他操作系统的运行模式以扩展的方式在主操作系统下实现,使得主操作系统也能具有其他操作系统的运行特性,且子操作系统不会影响主操作系统本身的运行方式。

图2为本发明实施例中应用程序管理的结构示意图,如图2所示,本发明中应用程序的管理主要包括:启动管理、后台管理、安装管理和权限管理,其中终端的主操作系统的框架层用于实现对应用程序的启动管理、后台管理和一部分安装管理;主操作系统的虚拟机用于实现对应用程序的另一部分安装管理;由于虚拟机主要用于实现应用程序的安装管理,应用程序在安装过程中对于数据的解析和odex化都需要虚拟机去处理,然后将处理结果传给框架层,最终展现给用户。因此,应用程序的安装管理的主要操作在虚拟机实现,框架层主要是获取安装管理的结果。主操作系统的内核层用于实现对应用程序的权限管理,用于解析应用程序申请的应用是否符合操作系统的安全要求。

图3为本发明实施例中终端操作系统的结构示意图,如图3所示,终端上主操作系统为安卓7.0时,由于安卓7.0对应用程序的管理主要包含了启动管理、后台管理、安装管理、权限管理这几个方面,而且目前操作系统对应用程序的兼容性问题也主要发生在这几方面。因此,在安卓7.0的基础上,终端内部搭建多个子操作系统可以包括:安卓6.0、安卓5.0和其他子操作系统。每一个子操作系统均可以实现对应用程序的启动管理、后台管理、安装管理和权限管理。当应用程序与主操作系统不兼容时,可选择使用某一个子操作系统去运行该应用程序,保证应用程序的正常运行。

本发明实施例中,终端当前的操作系统为主操作系统时,根据至少一个其他操作系统的特性搭建对应的子操作系统,子操作系统用于提供应用程序的运行方式,其他操作系统是与主操作系统不相同的操作系统;确定应用程序在终端的主操作系统下运行失败后,为应用程序选择子操作系统;控制应用程序在所选择的子操作系统下运行。与现有技术相比,通过在终端主操作系统的基础上搭建至少一个子操作系统,当应用程序与主操作系统存在兼容性问题时,可以选择在与应用程序兼容的子操作系统上运行应用程序,保证应用程序的正常运行。如此,针对不同的应用程序均可以采用本发明实施例提供的方法来解决兼容性问题,无需对单个应用程序兼容性问题进行逐个解决,提高了解决多个应用程序兼容性问题的工作效率。

第二实施例

为了能更加体现本发明的目的,在本发明第一实施例的基础上,进行进一步的举例说明。

图4为本发明在终端上运行应用程序的方法的第二实施例的流程示意图,该方法包括:

步骤401:根据至少一个其他操作系统的特性搭建对应的子操作系统。

步骤402:启动应用程序在主操作系统下运行。

步骤403:判断应用程序是否正常运行,如果是,执行步骤404;如果否,执行步骤405。

在实际实施时,终端可以根据获得的“无响应”提示消息,确定应用程序无法正常运行。

步骤404:在主操作系统下完成应用程序的运行。

步骤405:终端按照预设的选择策略为应用程序选择子操作系统。

示例性的,预设的选择策略包括:通过检测应用程序的api版本号,确定能够运行当前应用程序的子操作系统。

示例性的,在安卓7.0系统中可运行的应用程序的api版本号为大于或者等于26,安卓6.0系统中可运行的应用程序的api版本号为大于或者等于23,且小于26;安卓5.0系统中可运行的应用程序的api版本号为大于或者等于20,且小于23。在当前应用程序的api版本号为24时,为当前应用程序选择的子操作系统为安卓6.0。

步骤406:判断应用程序在当前子操作系统下是否正常运行,如果是,执行步骤407;如果否,执行步骤408。

本步骤中,判断应用程序在当前由终端自行选择的子操作系统下是否正常运行,如果正常运行,在当前选择子操作系统下完成应用程序的运行。

步骤407:在当前子操作系统下完成应用程序的运行。

步骤408:发出运行失败提醒后,通过指示信息为应用程序重新选择子操作系统。

在实际实施时,应用程序在终端选择的子操作系统下也无法成功运行时,可由用户为当前应用程序选择对应的子操作系统,用户可根据当前应用程序的运行标准或者对当前应用程序的使用经验,选择合适的子操作系统。例如,应用程序a经常在操作系统a上来运行,可以为应用程序a选择操作系统a对应的子操作系统。

图5为本发明实施例中终端的交互示意图,在应用程序的管理菜单栏中添加一栏“兼容模式”(图5左图所示),当应用程序出现兼容性问题时,通过“兼容模式”下的子菜单选择不同的子操作系统(图5右图所示)。例如,应用程序a在运行失败后,向用户发送提醒消息,用户在获知应用程序a在主操作系统下运行失败后,选择android版本6.0来运行应用程序a并生成指示消息,终端根据该指示消息调用android版本6.0重新运行应用程序a。

需要说明的是,步骤405至步骤408中两种子操作系统的选择方法的先后顺序不受本发明实施例的限制,可以先利用步骤408中的指示信息进行子操作系统的选择,后利用步骤405由终端自行选择;或者仅采用其中一种选择方法。

步骤409:判断应用程序在当前子操作系统下是否正常运行,如果是,执行步骤407;如果否,执行步骤410。

本步骤中,判断应用程序在当前根据指示信息选择的子操作系统下是否正常运行,如果正常运行,执行步骤410在当前选择子操作系统下完成应用程序的运行。

步骤410:确定应用程序本身存在异常。

需要说明的是,如果应用程序在不同的子操作系统上仍然无法正常运行,可以确定当前应用程序本身存在异常,通过上报判断结果,提醒用户应用程序运行失败的准确原因,并保留应用程序运行失败原因作为日后查询依据。

第三实施例

基于同一发明构思,本发明实施例还提供了一种在终端上运行应用程序的装置,图6为本发明实施例在终端上运行应用程序的装置的组成结构示意图,如图6所示,该装置包括:搭建模块601、选择模块602和控制模块603;其中,

搭建模块601,用于在终端当前的操作系统为主操作系统时,根据至少一个其他操作系统的特性搭建对应的子操作系统,子操作系统用于提供应用程序的运行方式,其他操作系统是与主操作系统不相同的操作系统;

选择模块602,用于确定应用程序在终端的主操作系统下运行失败后,为应用程序选择子操作系统;

控制模块603,用于控制应用程序在所选择的子操作系统下运行。

示例性的,选择模块602,具体可以用于根据应用程序的运行参数选择对应的子操作系统;或者,接收指示信息,根据指示信息,为应用程序选择对应的子操作系统。示例性的,主操作系统为安卓操作系统时,运行参数可以为应用程序编程接口api版本号;

在实际实施时,选择模块602,具体可以用于在应用程序的api版本号大于或者等于第i阈值,且小于第i+1阈值时,选择第i个子操作系统,i取正整数。

在实际实施时,主操作系统为安卓操作系统时,搭建模块602,具体可以用于使用主操作系统的框架层、虚拟机和内核层搭建至少一个其他操作系统对应的子操作系统;主操作系统的框架层用于实现其他操作系统对应用程序的启动管理和后台管理;主操作系统的框架层和虚拟机共同用于实现其他操作系统对应用程序的安装管理;主操作系统的内核层用于实现其他操作系统对应用程序的权限管理。

一种可选的实施方式中,装置还可以包括:更新模块;更新模块,可以用于在主操作系统更新时,将主操作系统更新的内容添加到每个子操作系统中。

另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,readonlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

具体来讲,本实施例中的一种在终端上运行应用程序的方法对应的计算机程序指令可以被存储在光盘,硬盘,u盘等存储介质上,当存储介质中的与一种在终端上运行应用程序的方法对应的计算机程序指令被一电子设备读取或被执行时,包括如下步骤:

终端当前的操作系统为主操作系统时,根据至少一个其他操作系统搭建对应的子操作系统,子操作系统用于提供应用程序的运行方式,其他操作系统是与主操作系统不相同的操作系统;确定应用程序在终端的主操作系统下运行失败后,为应用程序选择子操作系统;控制应用程序在所选择的子操作系统下运行。

可选的,存储介质中存储的以下步骤:为应用程序选择子操作系统包括:根据应用程序的运行参数选择对应的子操作系统;或者,接收指示信息,根据指示信息,为应用程序选择对应的子操作系统。

可选的,主操作系统为安卓操作系统时,运行参数为应用程序编程接口api版本号;存储介质中存储用于执行以下步骤的指令:根据应用程序的运行参数选择对应的子操作系统包括:应用程序的api版本号大于或者等于第i阈值,且小于第i+1阈值时,选择第i个子操作系统,i取正整数。

可选的,存储介质中存储用于执行以下步骤的指令:主操作系统为安卓操作系统时,根据至少一个其他操作系统的特性搭建对应的子操作系统包括:使用主操作系统的框架层、虚拟机和内核层搭建至少一个其他操作系统对应的子操作系统;主操作系统的框架层用于实现其他操作系统对应用程序的启动管理和后台管理;主操作系统的框架层和虚拟机共同用于实现其他操作系统对应用程序的安装管理;主操作系统的内核层用于实现其他操作系统对应用程序的权限管理。

可选的,存储介质中还存储有:在主操作系统更新时,将主操作系统更新的内容添加到每个子操作系统中。

在实际应用中,搭建模块601、选择模块602和控制模块603均可由位于终端设备中的中央处理器(centralprocessingunit,cpu)、微处理器(microprocessorunit,mpu)、数字信号处理器(digitalsignalprocessor,dsp)、或现场可编程门阵列(fieldprogrammablegatearray,fpga)等实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

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