CN106502717B - 应用程序运行方法及装置 - Google Patents
应用程序运行方法及装置 Download PDFInfo
- Publication number
- CN106502717B CN106502717B CN201610843446.XA CN201610843446A CN106502717B CN 106502717 B CN106502717 B CN 106502717B CN 201610843446 A CN201610843446 A CN 201610843446A CN 106502717 B CN106502717 B CN 106502717B
- Authority
- CN
- China
- Prior art keywords
- application
- application program
- starting
- terminal
- configuration information
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 113
- 238000009434 installation Methods 0.000 claims description 90
- 230000008569 process Effects 0.000 claims description 59
- 238000001514 detection method Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 description 32
- 238000010586 diagram Methods 0.000 description 13
- 238000011084 recovery Methods 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种应用程序运行方法及装置,属于计算机技术领域。所述方法包括:该终端可以在接收到对应用程序的运行指令时,获取该应用程序的配置信息,从而获取到该应用程序的启动路径和应用类型,且由于该应用程序当前可能已经处于后台运行,因此,为了提高该终端运行该应用程序的效率,也避免重复运行该应用程序可能带来的隐患,从而提高该终端运行应用程序的可靠性,该终端可以判断该应用程序当前是否处于后台运行,当该应用程序当前不处于后台运行时,该终端可以基于该配置信息,在与该应用程序的应用类型对应的运行环境中启动该应用程序,从而避免了因运行该应用程序所在的运行环境不兼容可能带来的隐患,提高了该终端运行不同应用类型的应用程序的可靠性。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种应用程序运行方法及装置。
背景技术
随着计算机技术的发展和生活水平的提高,智能电视等终端的应用越来越广泛。该终端通常能够运行智能操作***,该智能操作***用于管理该终端中的资源(包括硬件资源、软件资源和数据资源)、控制应用程序运行、改善人机界面、为应用程序运行提供支撑。
现有技术中,该终端可以在该智能操作***中安装多个web应用类型的应用程序,当该终端基于安装的任一应用程序接收到应用运行指令时,可以运行该应用程序,但由于该终端只能运行web应用这一种应用类型的应用程序,因此不便于对该终端的功能进行扩展,极大地降低了该终端的灵活性,而如果该终端安装或运行其它应用类型的应用程序,也会降低该终端的稳定性。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种应用程序运行方法及装置。所述技术方案如下:
第一方面,提供了一种应用程序运行方法,所述方法包括:
当接收到对应用程序的运行指令时,获取所述应用程序的配置信息,所述配置信息中包括所述应用程序的启动路径和应用类型;
基于所述配置信息,在与所述应用类型对应的运行环境中启动所述应用程序,以运行所述应用程序。
其中,该应用程序运行方法可以用于终端中。
需要说明的是,该应用程序可以是任一应用类型的应用程序,该应用类型可以包括web应用、java应用、native应用以及其他应用类型。
还需要说明的是,该应用配置信息用于说明与启动以及运行该应用程序有关的信息,该配置信息包括可以包括启动路径和应用类型,其中,该启动路径为启动该应用的路径,该终端可以通过该启动路径启动运行该应用,该应用类型用于说明该应用程序的应用类型。当然,在实际应用中,该配置信息还可以包括与该与启动以及运行该应用程序有关的其它信息,比如,该应用程序的安装文件的编码方式等,本发明实施例对此不做具体限定。
在本发明实施例中,该终端可以在接收到对应用程序的运行指令时,获取该应用程序的配置信息,从而获取到该应用程序的启动路径和应用类型,之后,该终端可以基于该配置信息,启动该应用程序,即该终端能够运行多种应用类型的应用程序,提高了该终端的灵活性,且由于是在与该应用程序的应用类型对应的运行环境中启动该应用程序,从而避免了因运行该应用程序所在的运行环境不兼容可能带来的隐患,提高了该终端运行不同应用类型的应用程序的可靠性。
可选地,所述当接收到对应用程序的运行指令时,获取所述应用程序的配置信息,包括:
当接收到对所述应用程序的运行指令时,调用配置信息获取函数;
通过所述配置信息获取函数,获取所述应用程序的配置信息。
在本发明实施例中,可以通过配置信息获取函数来获取该应用程序的配置信息,能够确保该终端获取该应用程序的配置信息的准确性,进而提高该终端运行该应用的可靠性。
可选地,所述基于所述配置信息,在与所述应用类型对应的运行环境中启动所述应用程序,包括:
在已有进程的基础上,创建新的进程;
基于所述应用类型,在所述新的进程中启动与所述应用类型对应的运行环境;
基于所述启动路径,在与所述应用类型对应的启动环境中启动所述应用程序,以运行所述应用程序。
需要说明的是,某一应用类型的应用程序可能没有对应的运行环境,比如native应用,因此,对于该应用类型的应用程序,可以基于该应用程序的启动路径,直接运行该应用程序。
在本发明实施例中,能够创建新的进程,并在该新的进程中启动与该应用类型对应的运行环境,进而在与该应用类型对应的运行环境中启动该应用程序,从而避免因运行该应用程序所在的运行环境不兼容可能带来的隐患,提高了运行该应用的可靠性。
可选地,所述基于所述配置信息,在与所述应用类型对应的运行环境中启动所述应用程序之前,还包括:
判断所述应用程序当前是否处于后台运行;
当所述应用程序当前不处于后台运行时,执行基于所述配置信息,在与所述应用类型对应的运行环境中启动所述应用程序的步骤;
当所述应用程序当前处于后台运行时,将所述应用程序切换至前台运行。
在本发明实施例中,由于是直接将该应用程序切换至前台运行,因此能够提高启动该应用程序的效率,同时能够避免重复运行该应用程序可能带来的隐患,提高运行该应用程序的可靠性。
可选地,所述获取所述应用程序的配置信息之前,还包括:
判断当前是否安装有所述应用程序;
如果当前没有安装所述应用程序,判断包数据库中是否包括所述应用程序的安装文件,所述包数据库中存储有服务器轮播的数据;
如果所述包数据库中包括所述应用程序的安装文件,从所述包数据库中获取所述应用程序的安装文件,所述应用程序的安装文件中携带所述配置信息。
其中,该包数据库中可能会包括该应用程序的安装文件或升级文件。
需要说明的是,该服务器可以是该应用程序的服务器或该终端的服务器,当然,在实际应用中,该服务器还可以是其它服务器,本发明实施例对此不做具体限定。
在本发明实施例中,能够避免重复安装该应用程序的安装文件,提高了该终端的运行效率。
可选地,所述判断当前是否安装有所述应用程序之后,还包括:
如果当前安装有所述应用程序,判断所述包数据库中是否包括所述应用程序的升级文件;
如果所述包数据库中包括所述应用程序的升级文件,从所述包数据库中获取所述应用程序的升级文件。
需要说明的是,在获取该应用程序的升级文件之后,还终端还可以安装该升级文件,进而对该应用程序进行升级。
在本发明实施例中,可以获取应用程序的升级文件,从而确保该终端能够对该应用程序进行升级,提高了运行该应用程序可靠性。
可选地,所述方法还包括:
每隔预设时长,检测服务器是否轮播数据;
当检测到所述服务器轮播数据时,接收所述服务器轮播的数据;
将接收到的数据存储在所述包数据库中。
需要说明的是,该预设时长可以由该终端在检测服务器是否轮播数据之前确定,且本发明实施例对确定该预设时长的方式不做具体限定。
在本发明实施例中,由于是每隔预设时长检测服务器是否轮播数据,从而在检测到该服务器轮播数据时获取轮播的数据,而不是在需要获取该应用程序的安装文件或升级文件时才从该服务器中获取数据,因此能够确保该终端能够及时接收到该服务器轮播的数据,及时获取到该应用程序的安装文件或升级文件,从而及时安装该应用程序或对该应用程序进行升级,同时减少该终端与该服务器的交互次数。
可选地,所述在与所述应用类型对应的运行环境中启动所述应用程序之后,还包括:
在所述应用程序处于前台运行的过程中,当接收到特定操作时,将所述应用程序切换至后台运行;
将桌面启动应用切换至前台运行。
在本发明实施例中,可以将处于前台运行的该应用程序切换至后台运行,提高了运行该应用程序的灵活性。
第二方面,提供了一种应用程序运行装置,所述装置包括多个功能模块,该多个功能模块用于执行上述第一方面所提供的应用程序运行方法。
第三方面,提供了一种应用程序运行装置,所述装置包括:
处理器和存储器;
其中,所述存储器用于存储一个或一个以上的程序,所述一个以上的程序包含本发明实施例提供的应用程序运行方法的指令;
所述处理器用于执行所述存储器存储的指令,以实现本发明实施例提供的应用程序运行方法,所述方法包括:
当接收到对应用程序的运行指令时,获取所述应用程序的配置信息,所述配置信息中包括所述应用程序的启动路径和应用类型;
基于所述配置信息,在与所述应用类型对应的运行环境中启动所述应用程序,以运行所述应用程序。
可选地,所述基于所述配置信息,在与所述应用类型对应的运行环境中启动所述应用程序,包括:
在已有进程的基础上,创建新的进程;
基于所述应用类型,在所述新的进程中启动与所述应用类型对应的运行环境;
基于所述启动路径,在与所述应用类型对应的启动环境中启动所述应用程序,以运行所述应用程序。
可选地,所述获取所述应用程序的配置信息之前,还包括:
判断当前是否安装有所述应用程序;
如果当前没有安装所述应用程序,判断包数据库中是否包括所述应用程序的安装文件,所述包数据库中存储有服务器轮播的数据,所述应用程序的安装文件中携带所述配置信息;
如果所述包数据库中包括所述应用程序的安装文件,从所述包数据库中获取所述应用程序的安装文件。
可选地,所述判断当前是否安装有所述应用程序之后,还包括:
如果当前安装有所述应用程序,判断所述包数据库中是否包括所述应用程序的升级文件;
如果所述包数据库中包括所述应用程序的升级文件,从所述包数据库中获取所述应用程序的升级文件。
可选地,所述在与所述应用类型对应的运行环境中启动所述应用程序之后,所述方法还包括:
对所述应用程序的运行状态进行管理。
本发明实施例提供的技术方案带来的有益效果是:在本发明实施例中,由于该终端可以在接收到对应用程序的运行指令时,获取该应用程序的配置信息,从而获取到该应用程序的启动路径和应用类型,之后,该终端可以基于该配置信息,启动该应用程序,因此,该终端可以运行多种应用类型的应用程序,提高了该终端的灵活性,且由于是在与该应用程序的应用类型对应的运行环境中启动该应用程序,由于是在与该应用程序的应用类型对应的运行环境中启动该应用程序,避免了因运行该应用程序所在的运行环境不兼容可能带来的隐患,提高了该终端运行不同应用类型的应用程序的可靠性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本发明实施例提供的一种应用程序运行***架构图;
图1B是本发明实施例提供的一种智能操作***框图;
图2是本发明实施例提供的一种终端的结构图;
图3A是本发明实施例提供的一种应用程序运行方法流程图;
图3B是本发明实施例提供的一种下载安装文件或升级文件的方法流程图;
图3C是本发明实施例提供的一种运行web应用方法流程图;
图3D是本发明实施例提供的一种运行java应用方法流程图;
图3E是本发明实施例提供的一种运行native应用方法流程图;
图3F是本发明实施例提供的另一种运行web应用方法流程图;
图3G是本发明实施例提供的另一种运行java应用方法流程图;
图3H是本发明实施例提供的另一种运行native应用流程图;
图3I是本发明实施例提供的又一种运行web应用方法流程图;
图3J是本发明实施例提供的又一种运行java应用方法流程图;
图3K是本发明实施例提供的又一种运行native应用方法流程图;
图4A是本发明实施例提供的一种应用程序运行装置框图;
图4B是本发明实施例提供的一种第一获取模块框图;
图4C是本发明实施例提供的一种启动模块框图;
图4D是本发明实施例提供的另一种应用程序运行装置框图;
图4E是本发明实施例提供的又一种应用程序运行装置框图;
图4F是本发明实施例提供的又一种应用程序运行装置框图;
图4G是本发明实施例提供的又一种应用程序运行装置框图;
图4H是本发明实施例提供的又一种应用程序运行装置框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1A是根据一示例性实施例示出的一种应用程序运行***架构图,参照图1A,该应用程序运行***包括终端01和服务器02,该终端01与该服务器02之间可以通过网络连接。该终端01可以安装智能操作***,并从该服务器02中获取至少一个应用程序的安装文件以及与该至少一个应用程序运行有关的其它数据,当该终端01获取到该至少一个应用程序的安装文件时,可以安装并运行该至少一个应用程序,从而实现不同的功能。
其中,参见图1B,该智能操作***包括应用层011、应用框架层012、执行环境层013和组件服务层014。
应用层011包括***用户界面、web应用、java应用和native应用。其中,***用户界面是也可以包括桌面、电子节目指南、***音量设置等,web应用为基于超文本标记语言(Hyper Text Markup Language,HTML)、层叠样式表(Cascading Style Sheets,CSS)或JS(Java Script)等语言开发的应用程序,java应用为基于java语言开发的应用程序,native应用为基于C/C++语言开发的应用程序。
需要说明的是,***用户界面的应用类型为web应用。
还需要说明的是,该应用层011还可以包括其他类型的应用程序,本发明实施例对此不做具体限定。
应用框架层012包括HTML5、JS1.5、JS应用模块和应用包配置模块。其中,JS应用模块用于提供访问应用程序的JS应用程序编程接口(Application Programming Interface,API),应用包配置模块用于配置应用的配置信息。
执行环境层013包括应用调用模块和浏览器引擎模块。
需要说明的是,该执行环境层013中还可以包括其它模块,本发明实施例对此不做具体限定。
组件服务层014包括***总线和应用管理器。其中应用管理器包括包管理模块、应用状态管理模块、下载管理模块、窗口管理模块、服务管理模块、资源管理模块、权限管理模块和数字签名模块等。包管理模块用于安装或卸载应用程序,应用状态管理模块用于管理应用程序的生存周期,下载管理模块用于下载安装包等与该应用程序有关的数据,资源管理模块用于对管理图形处理器(Graphics Processing Unit,GPU)和存储空间等的管理,权限管理模块用于对应用程序的权限进行管理,数字签名模块用于对应用程序的安装文件进行签名检测。
需要说明的是,在实际应用中,该智能操作***可以包括更多或更少的模块来执行本发明实施例所提供的应用程序运行方法,本发明实施例对此不做具体限定。
图2是本发明实施例提供的一种应用程序运行装置,参见图2,该装置200可以被提供为一种终端,比如电脑、智能电视等,上述智能操作***可以安装在该装置200中,该装置可以用于执行本发明实施例中的应用程序运行方法,该装置200包括处理器(CPU)201和存储器202。
该装置200还可以包括***总线203、基本输入/输出***(I/O***)204和网络接口单元205。
其中,***总线203用于实现处理器201、存储器202、基本输入/输出***(I/O***)204和网络接口单元205之间的通信连接。基本输入/输出***204用于计算机内的各个器件之间传输信息,可以包括有用于显示信息的显示器和用于用户输入信息的诸如鼠标、键盘、遥控器之类的输入设备。网络接口单元205用于连接到其他类型的网络或远程计算机***(未示出)。
存储器202用于存储一个或一个以上的程序,该一个以上的程序包含本发明实施例提供的应用程序运行方法的指令,处理器201用于执行该存储器202存储的指令,以实现本发明实施例提供的应用程序运行方法,该方法包括:
当接收到对应用程序的运行指令时,获取该应用程序的配置信息,该配置信息中包括该应用程序的启动路径和应用类型;
基于该配置信息,在与该应用类型对应的运行环境中启动该应用程序,以运行该应用程序。
可选地,基于该配置信息,在与该应用类型对应的运行环境中启动该应用程序,包括:
在已有进程的基础上,创建新的进程;
基于该应用类型,在该新的进程中启动与该应用类型对应的运行环境;
基于该启动路径,在与该应用类型对应的启动环境中启动该应用程序,以运行该应用程序。
可选地,获取该应用程序的配置信息之前,还包括:
判断当前是否安装有该应用程序;
如果当前没有安装该应用程序,判断包数据库中是否包括该应用程序的安装文件,该包数据库中存储有服务器轮播的数据,该应用程序的安装文件中携带该配置信息;
如果该包数据库中包括该应用程序的安装文件,从该包数据库中获取该应用程序的安装文件。
可选地,判断当前是否安装有该应用程序之后,还包括:
如果当前安装有该应用程序,判断该包数据库中是否包括该应用程序的升级文件;
如果该包数据库中包括该应用程序的升级文件,从该包数据库中获取该应用程序的升级文件。
可选地,在与该应用类型对应的运行环境中启动该应用程序之后,该方法还包括:
对该应用程序的运行状态进行管理。
图3A是本发明实施例提供的一种应用程序运行方法的流程图,参见图3A,该方法可以用于图1A所提供的应用程序运行***以及图2所提供的应用程序运行装置中,该方法包括:
301:当终端接收到对应用程序的下载指令时,从包数据库中获取该应用程序的安装文件,该包数据库中存储有服务器轮播的数据。
为了确保该终端能够实现不同的功能,该终端可以获取应用程序的安装文件,进而该终端中运行该应用程序。
其中,该应用可以任一应用类型的应用程序,包括web应用、java应用或native应用等,当然,在实际应用中,该应用程序也可以是其它应用类型的应用程序。
需要说明的是,该下载指令可以用于指示该终端下载应用程序,该下载应用可以由用户通过执行预设操作触发,该预设操作可以是点击操作、滑动操作等操作,当然,在实际应用中,该预设操作还可以是其它操作。
还需要说明的是,该下载指令中可以携带该应用程序的应用标识。
其中,应用标识用于唯一标识该应用程序,该应用标识可以是该应用程序的名称、身份证(Identification,ID)等,当然,在实际应用中,该应用标识还可以是其它能够唯一标识该应用程序的标识。
需要说明的是,该服务器可以是该应用程序的服务器或该终端的服务器,当然,在实际应用中,该服务器还可以是其它服务器。
其中,该应用程序的配置信息可以由该应用程序的安装文件所携带,该应用配置信息用于说明与启动以及运行该应用程序有关的信息,该配置信息包括可以包括启动路径和应用类型。其中,该启动路径为该终端启动该应用程序的路径,该终端可以通过该启动路径运行该应用程序,该应用类型用于说明该应用程序的应用类型。当然,在实际应用中,该配置信息还可以包括与该启动运行该应用程序有关的其它信息,比如,该应用程序的安装文件的编码方式等。
需要说明的是,该配置信息可以通过配置文件的形式携带在该应用程序的安装文件中。
例如,该应用1为native应用,该应用1的配置文件中包括的配置信息可以为:content为<content src="native_game.exe"type="application/exe"/>,content/src=native_game.exe,content/type=application/exe。其中,content/src=native_game.exe表示应用1的启动路径为native_game.exe,content/type=application/exe表示应用1的应用类型为native应用。
进一步地,为了确保该终端能够及时接收到该服务器轮播的数据,以及时获取到该应用程序的安装文件或升级文件,从而及时安装该应用程序或对该应用程序进行升级,同时减少该终端与该服务器的交互次数,该终端可以每隔预设时长,检测服务器是否轮播数据,当检测到该服务器轮播数据时,接收该服务器轮播的数据,将接收到的数据存储在该包数据库中。
其中,该预设时长可以由该终端在检测服务器是否轮播数据之前确定,比如一种可能实现的策略为,该终端发出第一提示信号,该第一提示信号用于提示用户输入一个时长,当基于该第一提示信号接收到用户输入的时长时,将接收到的时长确定为该预设时长。
需要说明的是,该终端可以通过预设提示方式发出第一提示信号,该预设提示方式可以是声音、震动、图像等方式当然,在实际应用中,该预设提示方式还可以是其它方式。
还需要说明的是,在该终端从包数据库中获取该应用程序的安装文件之后,该终端可以通过预设提示方式发出第二提示信号,以提示获取该应用程序的安装文件成功。
还需要说明的是,在另一种可能实现的策略中,为了节省该终端的存储空间,该终端可以在接收到该下载指令时,检测该服务器是否轮播数据,当检测到该服务器轮播数据时,判断该服务器轮播的数据中是否包括该应用程序的安装文件,当确定该服务器轮播的数据中包括该应用程序的安装文件时,从该服务器的轮播数据中获取该应用程序的安装文件。
进一步地,为了避免重复安装该应用程序的安装文件,该终端在从包数据库中获取该应用程序的安装文件之前,判断当前是否安装有该应用程序,如果当前没有安装该应用程序,判断包数据库中是否包括该应用程序的安装文件,如果该包数据库中包括该应用程序的安装文件,从该包数据库中获取该应用程序的安装文件。
其中,该终端判断当前是否安装有该应用程序的操作可以为:该终端判断存储的包信息数据库中是否包括该应用标识,当该包信息数据库中包括该应用标识时,确定当前已经安装有该应用程序,当该包信息数据路中不包括该应用标识时,确定当前没有安装该应用程序。
需要说明的是,该终端可以在该终端判断存储的包信息数据库中是否包括该应用标识之前,获取当前已安装的多个应用程序的应用标识,将该多个应用的应用标识存储在该包信息数据库中,比如,一种可能实现的策略为,该终端每安装一个应用时,将该应用程序的应用标识存储在该包信息数据库中。当然,在实际应用中,该终端还可以通过其它方式来确定当前是否安装有该应用程序。
还需要说明的是,当该包数据库中不包括该应用程序的安装文件时,该终端可以通过预设提示方式发出第三提示信号,以提示获取该应用程序的安装文件失败。当然,该终端也可以在继续通过接收该服务器轮播的数据,并在确定该报数据库中包括该应用程序的安装文件时,执行从该包数据库中获取该应用程序的安装文件的步骤。
进一步地,为了及时对该终端中安装的应用程序进行更新升级,进而提高该终端运行应用程序的可靠性,如果当前安装有该应用程序,该终端可以判断该包数据库中是否包括该应用的升级文件,如果该包数据库中包括该应用程序的升级文件,从该包数据库中获取该应用程序的升级文件。
其中,该应用程序的升级文件中也可以携带该应用程序的配置信息。
需要说明的是,在该终端从该包数据库中获取该应用程序的升级文件之后,该终端可以通过预设提示方式发出第四提示信号,以提示获取该应用程序的升级文件成功,相应地,如果该包数据库中不包括该应用程序的升级文件,该终端可以通过预设提示方式发出第五提示信号,以提示获取该应用程序的升级文件失败。当然,该终端也可以在继续通过接收该服务器轮播的数据,并在确定该报数据库中包括该应用程序的升级文件时,执行从该包数据库中获取该应用程序的升级文件的步骤。
其中,由前述可知,该终端所安装的智能操作***可以包括窗口管理模块、包管理模块和下载管理模块,因此,该下载管理模块可以包括单向数据接收子模块和单向侦测子模块,该单向侦测子模块用于检测应用下载或升级,该单向数据接收子模块用于接收该服务器轮播的数据,并将接收的数据存储至该包数据库中。所以,参见图3B,该终端从该服务器中下载该应用程序的安装文件或升级文件的步骤为:
步骤30101:当该终端通过该窗口管理模块检测到预设操作时,确定对该应用程序的下载指令被触发;
步骤30102:该终端通过该包管理模块判断存储的包信息数据库中是否包括该应用标识,如果存储的包信息数据库中不包括该应用标识,执行步骤30103,如果存储的包信息数据库中包括该应用标识,执行步骤30108;
步骤30103:该终端通过该包管理模块向该单向侦测子模块发送安装文件获取请求;
步骤30104:该终端通过该单向侦测子模块判断该包数据库中是否包括该应用程序的安装文件,如果该包数据库中包括该应用程序的安装文件,执行步骤30105,如果该包数据库中不包括该应用程序的安装文件,执行步骤30113;
步骤30105:该终端通过该单向侦测子模块向该包管理模块发送下载完成通知和该应用程序的安装文件;
步骤30106:该终端通过该包管理模块,基于该下载完成通知确定下载成功或失败;
步骤30107:当该终端确定下载成功时,通过该窗口管理模块发出第二提示信号,当确定下载失败时,通过该窗口管理模块发出第三提示信号;
步骤30108:该终端通过该包管理模块向该单向侦测子模块发送升级文件获取请求;
步骤30109:该终端通过该单向侦测子模块判断该包数据库中是否包括该应用的升级文件,如果该包数据库中包括该应用程序的升级文件,执行步骤30110,如果该包数据库中不包括该应用程序的安装文件,执行步骤30113;
步骤30110:该终端通过该单向侦测子模块向该包管理模块发送下载完成通知和该应用程序的升级文件;
步骤30111:该终端通过该包管理模块,基于该下载完成通知确定下载成功或失败;
步骤30112:当该终端确定下载成功时,通过该窗口管理模块发出第四提示信号,当确定下载失败时,通过该窗口管理模块发出第五提示信号;
步骤30113:当该终端通过该单向侦测子模块接收该单向数据接收子模块发送的下载完成通知时,执行步骤30104或30109;
步骤30114:该终端通过该单向数据接收模块,接收该服务器轮播的数据,将接收到的该应用程序的安装文件存储在该包数据库中,并在接收完成时,向该单向侦测子模块发送下载完成通知。
另外,在另一种可能的实现方式中,当该终端接收到对该应用程序的下载指令时,可以向该服务器发送安装文件获取请求,该安装文件获取请求中携带终端标识和该应用标识,当该服务器接收该安装文件获取请求时,将该应用程序的安装文件发送给该终端。
其中,该终端标识用于唯一标识该终端,该终端标识可以是该终端的出厂序列号、媒体访问控制(Media Access Control,MAC)地址或互联网协议地址(Internet ProtocolAddress,IP)等,当然,在实际应用中,该终端标识还可以是其它能够唯一标识该终端的标识。
需要说明的是,为了确保该终端能够通过向该服务器发送安装文件获取请求,进而从该服务器中获取该安装文件,该下载管理模块中可以包括双向网络数据子模块,该终端可以通过该双向网络数据子模块向该服务器发送安装文件获取请求,并接收该服务器发送的该安装文件。
进一步地,在该终端接收到对该应用程序的下载指令之后,可以通过预设提示方式发出第六提示信号,以提示用户从包数据库中获取该应用程序的安装文件或者向该服务器发送安装文件获取请求,即由用户确定获取该应用程序的安装文件的方式。当基于第六提示信号接收到用户的选择指令时,通过该选择指令所选择的方式获取该应用的安装文件。
其中,该选择指令可以由用户通过执行预设操作触发。
需要说明的是,在实际应用中,该终端还可以通过其它下载方式来获取该应用程序的安装文件或升级文件,本发明实施例对此不做具体限定。
另外,为了确保该终端下载安装文件或升级文件的可靠性,进而提高该终端运行应用程序的可靠性,对于不同应用类型的应用程序的安装文件或升级文件,该终端在从服务器获取该应用程序的安装文件或升级文件的过程中,可以通过预设格式对该应用程序的安装文件或升级文件进行压缩。
其中,该预设格式可以由该终端在封装该应用程序的安装文件或升级文件之前确定,该预设格式可以是widget,当然,在实际应用中,该预设格式还可以是其它格式,本发明实施例对此不做具体限定。
302:该终端基于该应用程序的安装文件,安装该应用程序。
为了确保该终端运行该应用程序,进而实现某种功能,该终端可以安装该应用程序。
需要说明的是,该终端也可以在接收到对该应用程序的安装指令时,安装该应用程序,该安装指令用于指示该终端对该应用进行安装,该安装指令可以由该用户通过执行预设操作触发。
其中,由前述可知,该智能操作***中可以包括包管理模块和应用包配置模块,因此,该包管理模块中可以包括安装子模块、卸载子模块以及web应用、java应用和native应用等多种应用类型的应用程序的安装文件,该终端可以通过该安装子模块,基于该应用程序的安装文件,安装该应用程序。
需要说明的是,由前述可知,该智能操作***中可以包括该应用包配置模块中,因此,该终端可以通过该应用包配置模块,基于该应用程序的配置信息,确定该应用程序的应用类型。
另外,该终端也可以通过安装该应用程序的升级文件,对该应用程序进行升级。
303:当该终端接收到对该应用程序的运行指令时,获取该应用程序的配置信息,该配置信息中包括该应用程序的启动路径和应用类型。
由于该终端能够安装不同应用类型的应用程序,而当应用程序的应用类型不同时,该终端运行该应用程序的方式也可能不同,因此,为了提高运行该应用程序的可靠性,该终端可以获取该应用程序的配置信息。
需要说明的是,该运行指令用于指示该终端运行该应用程序,该应用运行指令可以由用户通过执行预设操作触发。
其中,为了确保该终端获取该应用程序的配置信息的准确性,进而提高该应用运行该应用程序的可靠性,该终端获取该应用程序的配置信息的操作可以为:当该终端接收到对该应用程序的运行指令时,调用配置信息获取函数,通过该配置信息获取函数,获取该应用程序的配置信息。
需要说明的是,该配置信息获取函数用于获取该应用程序的配置信息,该配置信息获取函数可以由该终端在调用配置信息获取函数之前确定,比如,一种可能实现的策略为,由该终端所安装的智能操作***的开发人员确定。当然,在实际应用中,该终端还可以通过其它方式确定该配置信息获取函数。
还需要说明的是,当获取到该配置信息中不包括应用类型时,可以确定该应用程序的应用类型为web应用。
其中,由前述可知,该智能操作***中包括JS应用模块,因此,该JS应用模块中可以包括多应用运行API扩展子模块,该终端可以通过该多应用运行API扩展模块调用配置信息获取函数,以获取该应用程序的配置信息。
例如,当该终端接收到对应用1的运行指令,该终端通过该多应用运行API扩展模块调用配置信息获取函数interface partial window{exceWidget(widgetname,src,type);};,获取到<content src="native_game.exe"type="application/exe"/>,因此,该终端确定应用1的启动路径为native_game.exe,应用1的应用类型为native应用。
另外,为了提高该终端运行该应用程序的可靠性,当该终端接收到对该应用的运行指令时,该终端也可以判断当前是否安装有该应用程序,如果当前安装有该应用程序,则获取该应用程序的配置信息,如果当前没有安装该有应用程序,则执行步骤301-302中操作,以在该终端中安装该应用程序。
304:该终端判断该应用程序当前是否处于后台运行,如果该应用程序当前不处于后台运行,执行步骤305,如果该应用程序当前处于后台运行,执行步骤306。
由于当前终端可能已经运行有该应用程序,因此,为了提高运行该应用程序的效率,也避免重复运行该应用程序可能带来的隐患,从而提高该终端运行应用程序的可靠性,该终端可以判断该应用程序当前是否处于后台运行。
需要说明的是,该终端也可以不执行步骤304所述的操作,也即是,该终端在执行步骤303所述的操作获取得到该应用程序的配置信息之后,直接执行步骤305所述的操作,以启动该应用程序。
305:该终端基于该配置信息,在与该应用类型对应的运行环境中启动该应用程序,以运行该应用程序。
由于不同应用类型的应用程序在运行的过程中可能有不同的需求,比如运行环境等,因此,为了提高运行该应用程序的可靠性,避免因运行该应用程序所在的运行环境不兼容可能带来的隐患,该终端可以基于该配置信息,在与该应用类型对应的运行环境中启动该应用程序。
需要说明的是,该终端可以在与该应用类型对应的运行环境中启动该应用程序之前,确定与至少一个应用类型的运行环境,比如,一种可能实现的策略为,由相关技术人员在开发该智能操作***时,确定每个应用类型对应的运行环境,比如,web应用对应的运行环境可以为Web Runtime,java应用对应的运行环境可以为javaVM,当然,在实际应用中,每个应用类型还可以对应其它的运行环境,本发明实施例对此不做具体限定。
还需要说明的是,对于某一应用类型,可能没有对应的运行环境,比如native应用。
其中,该终端基于该配置信息,在与该应用类型对应的运行环境中启动该应用程序的操作可以为:在已有进程的基础上,创建新的进程,基于该应用类型,在该新的进程中启动与该应用类型对应的运行环境,基于该启动路径,在与该应用类型对应的运行环境中启动该应用程序。
需要说明的是,为了确保该终端能够对不同应用类型的应用程序的运行进行管理,提高该终端运行应用程序的效率和可靠性,对于不同应用类型的应用程序,该终端创建进程的方式可以相同,启动不同应用类型对应的运行环境的方式也相同,且该终端中所运行的每个应用程序均为一个独立的实例。
还需要说明的是,如果没有与某一应用类型对应的运行环境,该终端可以不启动与该应用类型对应的运行环境,从而基于该应用程序的启动路径运行该应用程序。
例如,如果该终端获取到应用1的配置信息为:启动路径为china-maps.html,应用类型为web应用,则该终端创建新的进程1,基于应用1的应用类型,在进程1中启动与java对应的运行环境Web Runtime,基于应用1的启动路径,在Web Runtime运行应用1。如果该终端获取到应用2的配置信息为:启动路径为game.java,应用类型为java应用,则该终端创建新的进程2,基于应用2的应用类型,在进程2中启动与java应用对应的运行环境javaVM,基于应用2的启动路径,在javaVM运行应用2。如果该终端获取到应用3的配置信息为:启动路径为native_game.exe,应用类型为native应用,则该终端创建新的进程3,基于应用3的启动路径,运行该应用3。
其中,由前述可知,该终端安装的智能操作***包括应用状态管理模块,因此,该终端可以通过该应用状态管理模块调用进程创建函数创建新的进程,调用应用启动函数来在与该应用类型对应的运行环境中启动该应用程序。
需要说明的是,该进程创建函数可以由该终端在通过该应用状态管理模块调用进程创建函数创建新的进程之前确定,该进程创建函数可以是fork()函数,当然,在实际应用中,该进程创建函数还可以是其它函数,本发明实施例对此不做具体限定。
还需要说明的是,应用启动函数可以由该终端在来在与该应用类型对应的运行环境中启动该应用程序之前确定,该应用启动函数可以是execvp()函数,当然,在实际应用中,该应用启动函数还可以是其它函数。
进一步地,为了便于与用户交互,该终端在开机启动时,通常会运行一个桌面启动应用,该桌面启动应用的应用类型为web应用,因此,该终端可以在通过该桌面启动应用的运行环境Web Runtime接收到对该应用程序的运行指令时,获取该应用程序的配置信息,将该配置信息发送给该应用状态管理模块,当该应用状态管理模块接收到该配置信息时,在与该应用类型对应的运行环境中启动该应用程序。
其中,如图3C所示,当该应用程序的应用类型为web应用时,该终端运行该应用程序的操作为:
步骤30501:当该终端通过Web Runtime接收到对该应用程序的运行指令时,获取该应用程序的配置信息;
步骤30502:该终端通过Web Runtime将该应用程序的启动路径和应用类型发送给该应用状态管理模块;
步骤30503:该终端通过该应用状态管理模块在已有进程的基础上,创建新的进程;
步骤30504:该终端通过该应用状态管理模块在该Web Runtime中启动该应用程序,同时将该桌面启动应用切换至后台运行。
其中,如图3D所示,当该应用程序的应用类型为java应用时,该终端运行该应用程序的操作为:
步骤30511:当该终端通过Web Runtime接收到对该应用程序的运行指令时,获取该应用程序的配置信息;
步骤30512:该终端通过Web Runtime将该应用程序的启动路径和应用类型发送给该应用状态管理模块;
步骤30513:该终端通过该应用状态管理模块在已有进程的基础上,创建新的进程;
步骤30514:该终端通过该应用状态管理模块在javaVM中启动程序该应用,同时将该桌面启动应用切换至后台运行。
其中,如图3E所示,当该应用程序的应用类型为native应用时,该终端运行该应用程序的操作为:
步骤30521:当该终端通过Web Runtime接收到对该应用程序的运行指令时,获取该应用程序的配置信息;
步骤30522:该终端通过Web Runtime将该应用程序的启动路径和应用类型发送给该应用状态管理模块;
步骤30523:该终端通过该应用状态管理模块在已有进程的基础上,创建新的进程;
步骤30524:该终端通过该应用状态管理模块启动该应用程序,同时将该桌面启动应用切换至后台运行。
306:将该应用程序切换至前台运行。
由于该应用程序当前已经处于后台运行,因此,为了提高该终端运行该应用程序的效率,同时避免重复运行该应用程序可能带来的隐患,该终端可以将该应用程序切换至前台运行。
需要说明的是,该终端在将该应用程序切换至前台运行时,还可以将桌面启动应用切换至后台运行。
其中,如图3F所示,当该应用程序的应用类型为web应用时,该终端将该应用程序切换至前台运行的操作为:
步骤30601:该终端通过Web Runtime获取该应用程序的配置信息;
步骤30602:该终端通过Web Runtime将该应用程序的启动路径和应用类型发送给该应用状态管理模块;
步骤30603:该终端通过该应用状态管理模块将该应用程序切换至前台运行,同时将该桌面启动应用切换至后台运行。
其中,如图3G所示,当该应用程序的应用类型为java应用时,该终端将该应用程序切换至前台运行的操作为:
步骤30611:该终端通过Web Runtime获取该应用程序的配置信息;
步骤30612:该终端通过Web Runtime将该应用程序的启动路径和应用类型发送给该应用状态管理模块;
步骤30613:该终端通过该应用状态管理模块将该应用程序切换至前台运行,同时将该桌面启动应用切换至后台运行。
其中,如图3H所示,当该应用程序的应用类型为native应用时,该终端将该应用程序切换至前台运行的操作为:
步骤30621:该终端通过Web Runtime获取该应用程序的配置信息;
步骤30622:该终端通过Web Runtime将该应用程序的启动路径和应用类型发送给该应用状态管理模块;
步骤30623:该终端通过该应用状态管理模块将该应用程序切换至前台运行,同时将该桌面启动应用切换至后台运行。
进一步地,由于该终端在运行该应用的过程中,可能会将该应用程序切换至后台或者其它操作,从而使该应用程序的运行状态进行改变,因此,为了确保该终端运行该应用程序的可靠性,在该应用程序的运行过程中,该终端对该应用程序的运行状态进行管理。
需要说明的是,由于该终端安装的智能操作***中包括应用状态管理模块,因此,该终端可以通过该应用状态管理模块,对该应用程序的运行状态进行管理。且为了提高对不同应用类型的应用程序的运行状态管理的效率,进而提高该终端运行应用程序的可靠性,该应用状态管理模块可以包括web应用状态管理子模块、java应用状态管理子模块和native应用状态管理子模块,并通过web应用状态管理子模块对web应用的运行状态进行管理,通过java应用状态管理子模块对java应用的运行状态进行管理,通过native应用状态管理子模块对native应用的运行状态进行管理。当然,在实际应用中,该应用状态管理模块中还可以包括分别与其他类型应用对应的应用状态管理子模块,本发明实施例对此不做具体限定。
其中,在该应用程序处于前台运行的过程中,当接收到特定操作时,将该应用切换至后台运行,将桌面启动应用切换至前台运行。
需要说明的是,该特定操作为点击操作、滑动操作、触摸操作等操作,当然,在实际应用中,该特定操作还可以是其它操作,本发明实施例对此不做具体限定。
其中,如图3I所示,当该应用程序的应用类型为web应用时,该终端将该应用程序切换至后台运行,将桌面启动应用切换至前台运行的操作为:
步骤30631:当该终端通过Web Runtime接收到特定操作时,向该应用状态管理模块发送桌面启动应用恢复请求;
步骤30632:当该终端通过该应用状态管理模块接收到桌面启动应用恢复请求时,将该应用程序切换至后台运行,将桌面启动应用切换至前台运行。
其中,如图3J所示,当该应用程序的应用类型为java应用时,该终端将该应用程序切换至后台运行,将桌面启动应用切换至前台运行的操作为:
步骤30641:当该终端通过javaVM接收到特定操作时,向该应用状态管理模块发送桌面启动应用恢复请求;
步骤30642:当该终端通过该应用状态管理模块接收到桌面启动应用恢复请求时,将该应用程序切换至后台运行,将桌面启动应用切换至前台运行。
其中,如图3K所示,当该应用程序的应用类型为native应用时,该终端将该应用程序切换至后台运行,将桌面启动应用切换至前台运行的操作为:
步骤30651:当该终端通过运行中的该应用接收到特定操作时,向该应用状态管理模块发送桌面启动应用恢复请求;
步骤30652:当该终端通过该应用状态管理模块接收到桌面启动应用恢复请求时,将该应用程序切换至后台运行,将桌面启动应用切换至前台运行。
在本发明实施例中,由于该终端可以在接收到对应用程序的运行指令时,获取该应用程序的配置信息,从而获取到该应用程序的启动路径和应用类型,之后,该终端可以基于该配置信息,启动该应用程序,因此,该终端可以运行多种应用类型的应用程序,提高了该终端的灵活性,且由于是在与该应用程序的应用类型对应的运行环境中启动该应用程序,由于是在与该应用程序的应用类型对应的运行环境中启动该应用程序,避免了因运行该应用程序所在的运行环境不兼容可能带来的隐患,提高了该终端运行不同应用类型的应用程序的可靠性。其次,该终端可以判断当前是否安装有该应用程序,进而确定下载该应用程序的安装文件以安装该应用程序,或者下载该应用程序的升级文件以更新或升级该应用程序,进一步提高了该终端运行该应用程序的可靠性。另外,该终端可以每隔预设时长,检测服务器是否轮播数据,当该服务器轮播数据时,接收并存储该服务器轮播的数据,从而获取到该应用程序的安装文件和升级文件,由于该终端只需要接收该服务器轮播的数据即可获取到该应用程序的安装文件和升级文件,减少了该终端与该服务器的交互次数。最后,该终端还可以在应用程序的运行过程中,对该应用程序的运行状态进行管理,进一步提高了该终端运行不同应用类型的应用的可靠性。
图4A是本发明实施例提供的一种应用程序运行装置框图,参见图4A,该装置包括:
第一获取模块4001,可以包括在该图2所提供的应用程序运行装置中的处理器中,用于执行步骤303所述的操作;
启动模块4002,可以包括在该图2所提供的应用程序运行装置中的处理器中,用于执行步骤305所述的操作。
可选地,参见图4B,第一获取模块4001包括:
调用子模块40011,用于执行步骤303中当接收到对该应用程序的运行指令时,调用配置信息获取函数的操作;
获取子模块40012,用于执行步骤303中通过该配置信息获取函数,获取该应用程序的配置信息的操作。
可选地,参见图4C,启动模块4002包括:
创建子模块40021,用于执行步骤305中在已有进程的基础上,创建新的进程的操作;
第一启动子模块40022,用于执行步骤305中基于该应用类型,在该新的进程中启动与该应用类型对应的运行环境的操作;
第二启动子模块40023,用于执行步骤305中基于该启动路径,在与该应用类型对应的启动环境中启动该应用程序的操作。
可选地,参见图4D,该装置还包括:
第一判断模块4003,可以包括在该图2所提供的应用程序运行装置中的处理器中,用于执行步骤304所述的操作;
触发模块4004,可以包括该图2所提供的应用程序运行装置中的处理器中,用于当该应用程序当前不处于后台运行时,触发该启动模块4002执行步骤305所述的操作;
第一切换模块4005,可以包括在该图2所提供的应用程序运行装置中的处理器中,用于执行步骤306所述的操作。
可选地,参见图4E,该装置还包括:
第二判断模块4006,可以包括在该图2所提供的应用程序运行装置中的处理器中,用于执行步骤301中判断当前是否安装有该应用程序的操作;
第三判断模块4007,可以包括在该图2所提供的应用程序运行装置中的处理器中,用于执行步骤301中如果当前没有安装该应用程序,判断包数据库中是否包括该应用程序的安装文件,该包数据库中存储有服务器轮播的数据的操作;
第二获取模块4008,可以包括在该图2所提供的应用程序运行装置中的处理器中,用于执行步骤301中如果该包数据库中包括该应用程序的安装文件,从该包数据库中获取该应用程序的安装文件的操作。
可选地,参见图4F,该装置还包括:
第四判断模块4009,可以包括在该图2所提供的应用程序运行装置中的处理器中,用于执行步骤301中如果当前安装有该应用程序,判断该包数据库中是否包括该应用程序的升级文件;
第三获取模块4010,可以包括在该图2所提供的应用程序运行装置中的处理器中,用于执行步骤301中如果该包数据库中包括该应用程序的升级文件,从该包数据库中获取该应用程序的升级文件。
可选地,参见图4G,该装置还包括:
检测模块4011,可以包括在该图2所提供的应用程序运行装置中的处理器中,用于执行步骤301中每隔预设时长,检测服务器是否轮播数据的操作;
接收模块4012,可以包括在该图2所提供的应用程序运行装置中的处理器中,用于执行步骤301中当检测到该服务器轮播数据时,接收该服务器轮播的数据的操作;
存储模块4013,可以包括在该图2所提供的应用程序运行装置中的存储器中,用于执行步骤301中将接收到的数据存储在该包数据库中的操作。
可选地,参见图4H,该装置还包括:
第二切换模块4014,可以包括在该图2所提供的应用程序运行装置中的处理器中,用于执行步骤306中在该应用程序处于前台运行的过程中,当接收到特定操作时,将该应用程序切换至后台运行的操作;
第三切换模块4015,可以包括在该图2所提供的应用程序运行装置中的处理器中,用于执行步骤306中将桌面启动应用切换至前台运行的操作。
在本发明实施例中,由于该终端可以在接收到对应用程序的运行指令时,获取该应用程序的配置信息,从而获取到该应用程序的启动路径和应用类型,之后,该终端可以基于该配置信息,启动该应用程序,因此,该终端可以运行多种应用类型的应用程序,提高了该终端的灵活性,且由于是在与该应用程序的应用类型对应的运行环境中启动该应用程序,由于是在与该应用程序的应用类型对应的运行环境中启动该应用程序,避免了因运行该应用程序所在的运行环境不兼容可能带来的隐患,提高了该终端运行不同应用类型的应用程序的可靠性。
需要说明的是:上述实施例提供的应用程序运行装置在运行应用时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用程序运行装置与应用程序运行方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种应用程序运行方法,其特征在于,所述方法包括:
当接收到对应用程序的运行指令时,获取所述应用程序的配置信息,所述配置信息中包括所述应用程序的启动路径和应用类型;
在已有进程的基础上,创建新的进程;
当所述应用程序有对应的运行环境时,在所述新的进程中启动所述应用类型对应的运行环境,并基于所述配置信息中的所述启动路径,在与所述应用类型对应的运行环境中启动所述应用程序,以运行所述应用程序;或者,
所述应用类型包括native应用,所述native应用没有对应的运行环境,在所述新的进程中基于所述配置信息中的所述启动路径启动native应用程序,以运行所述native应用程序。
2.如权利要求1所述的方法,其特征在于,所述当接收到对应用程序的运行指令时,获取所述应用程序的配置信息,包括:
当接收到对所述应用程序的运行指令时,调用配置信息获取函数;
通过所述配置信息获取函数,获取所述应用程序的配置信息。
3.如权利要求1所述的方法,其特征在于,所述应用类型包括web应用和Java应用,所述web应用对应的运行环境为Web Runtime,所述Java应用对应的运行环境为javaVM,所述在所述新的进程中启动所述应用程序对应的运行环境,并基于所述配置信息中的所述启动路径,在与所述应用类型对应的运行环境中启动所述应用程序,包括:
在所述新的进程中启动所述web应用对应的Web Runtime;基于所述启动路径,在所述Web Runtime中启动web应用程序,以运行所述web应用程序;或者,
在所述新的进程中启动所述java应用对应的javaVM;基于所述启动路径,在所述javaVM中启动java应用程序,以运行所述java应用程序。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
判断所述应用程序当前是否处于后台运行;
当所述应用程序当前不处于后台运行时,执行在已有进程的基础上,创建新的进程的步骤;
当所述应用程序当前处于后台运行时,将所述应用程序切换至前台运行。
5.如权利要求1所述的方法,其特征在于,所述获取所述应用程序的配置信息之前,还包括:
判断当前是否安装有所述应用程序;
如果当前没有安装所述应用程序,判断包数据库中是否包括所述应用程序的安装文件,所述包数据库中存储有服务器轮播的数据,所述应用程序的安装文件中携带所述配置信息;
如果所述包数据库中包括所述应用程序的安装文件,从所述包数据库中获取所述应用程序的安装文件。
6.如权利要求5所述的方法,其特征在于,所述判断当前是否安装有所述应用程序之后,还包括:
如果当前安装有所述应用程序,判断所述包数据库中是否包括所述应用程序的升级文件;
如果所述包数据库中包括所述应用程序的升级文件,从所述包数据库中获取所述应用程序的升级文件。
7.如权利要求5或6所述的方法,其特征在于,所述方法还包括:
每隔预设时长,检测服务器是否轮播数据;
当检测到所述服务器轮播数据时,接收所述服务器轮播的数据;
将接收到的数据存储在所述包数据库中。
8.如权利要求1所述的方法,其特征在于,所述在与所述应用类型对应的运行环境中启动所述应用程序之后,还包括:
在所述应用程序处于前台运行的过程中,当接收到特定操作时,将所述应用程序切换至后台运行;
将桌面启动应用切换至前台运行。
9.一种应用程序运行装置,其特征在于,所述装置包括:
第一获取模块,用于当接收到对应用程序的运行指令时,获取所述应用程序的配置信息,所述配置信息中包括所述应用程序的启动路径和应用类型;
启动模块,用于在已有进程的基础上,创建新的进程;当所述应用程序有对应的运行环境时,在所述新的进程中启动所述应用类型对应的运行环境,并基于所述配置信息中的所述启动路径,在与所述应用类型对应的运行环境中启动所述应用程序,以运行所述应用程序;或者,
所述应用类型包括native应用,所述native应用没有对应的运行环境,所述启动模块用于在所述新的进程中,基于所述配置信息中的所述启动路径,启动native应用程序,以运行所述native应用程序。
10.如权利要求9所述的装置,其特征在于,所述第一获取模块包括:
调用子模块,用于当接收到对所述应用程序的运行指令时,调用配置信息获取函数;
获取子模块,用于通过所述配置信息获取函数,获取所述应用程序的配置信息。
11.如权利要求9所述的装置,其特征在于,所述应用类型包括web应用和Java应用,所述web应用对应的运行环境为Web Runtime,所述Java应用对应的运行环境为javaVM,所述启动模块包括:
第一启动子模块,用于在所述新的进程中启动所述web应用对应的Web Runtime,基于所述启动路径,在所述Web Runtime中启动web应用程序,以运行所述web应用程序;
第二启动子模块,用于在所述新的进程中启动所述java应用对应的javaVM;基于所述启动路径,在所述javaVM中启动java应用程序,以运行所述java应用程序。
12.如权利要求9所述的装置,其特征在于,所述装置还包括:
第一判断模块,用于判断所述应用程序当前是否处于后台运行;
触发模块,用于当所述应用程序当前不处于后台运行时,触发所述启动模块执行在已有进程的基础上,创建新的进程的步骤;
第一切换模块,用于当所述应用程序当前处于后台运行时,将所述应用切换至前台运行。
13.如权利要求9所述的装置,其特征在于,所述装置还包括:
第二判断模块,用于判断当前是否安装有所述应用程序;
第三判断模块,用于如果当前没有安装所述应用程序,判断包数据库中是否包括所述应用程序的安装文件,所述包数据库中存储有服务器轮播的数据;
第二获取模块,用于如果所述包数据库中包括所述应用程序的安装文件,从所述包数据库中获取所述应用程序的安装文件,所述应用程序的安装文件中携带所述配置信息。
14.如权利要求13所述的装置,其特征在于,所述装置还包括:
第四判断模块,用于如果当前安装有所述应用程序,判断所述包数据库中是否包括所述应用程序的升级文件;
第三获取模块,用于如果所述包数据库中包括所述应用程序的升级文件,从所述包数据库中获取所述应用程序的升级文件。
15.如权利要求13或14所述的装置,其特征在于,所述装置还包括:
检测模块,用于每隔预设时长,检测服务器是否轮播数据;
接收模块,用于当检测到所述服务器轮播数据时,接收所述服务器轮播的数据;
存储模块,用于将接收到的数据存储在所述包数据库中。
16.如权利要求9所述的装置,其特征在于,所述装置还包括:
第二切换模块,用于在所述应用程序处于前台运行的过程中,当接收到特定操作时,将所述应用程序切换至后台运行;
第三切换模块,用于将桌面启动应用切换至前台运行。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610843446.XA CN106502717B (zh) | 2016-09-22 | 2016-09-22 | 应用程序运行方法及装置 |
CN202010227520.1A CN111427594B (zh) | 2016-09-22 | 2016-09-22 | 应用程序运行方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610843446.XA CN106502717B (zh) | 2016-09-22 | 2016-09-22 | 应用程序运行方法及装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010227520.1A Division CN111427594B (zh) | 2016-09-22 | 2016-09-22 | 应用程序运行方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106502717A CN106502717A (zh) | 2017-03-15 |
CN106502717B true CN106502717B (zh) | 2020-04-14 |
Family
ID=58290536
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010227520.1A Active CN111427594B (zh) | 2016-09-22 | 2016-09-22 | 应用程序运行方法及装置 |
CN201610843446.XA Active CN106502717B (zh) | 2016-09-22 | 2016-09-22 | 应用程序运行方法及装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010227520.1A Active CN111427594B (zh) | 2016-09-22 | 2016-09-22 | 应用程序运行方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN111427594B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107318049B (zh) * | 2017-06-13 | 2020-07-31 | 北京比利信息技术有限公司 | 多渠道Launcher融合方法 |
CN108021343A (zh) * | 2017-11-10 | 2018-05-11 | 维沃移动通信有限公司 | 一种应用程序的显示方法、装置及移动终端 |
CN107911482B (zh) * | 2017-12-11 | 2021-07-23 | 北京小米移动软件有限公司 | 目标应用打开方法及装置 |
CN109947437A (zh) * | 2017-12-20 | 2019-06-28 | 沪江教育科技(上海)股份有限公司 | 一种数据处理方法以及终端 |
CN108595195B (zh) * | 2018-04-09 | 2022-01-21 | 国泰新点软件股份有限公司 | 一种应用程序更新方法、装置、终端和储存介质 |
CN109491725B (zh) * | 2018-11-12 | 2022-12-27 | 火烈鸟网络(广州)股份有限公司 | 应用程序可交互多开方法和***、存储介质、电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102105861A (zh) * | 2008-07-28 | 2011-06-22 | 微软公司 | 应用程序改变的状态分离 |
CN102929650A (zh) * | 2012-07-11 | 2013-02-13 | 北京金山安全软件有限公司 | 一种应用程序运行环境独立配置的方法、装置及移动设备 |
CN104239102A (zh) * | 2014-09-15 | 2014-12-24 | 腾讯科技(深圳)有限公司 | 应用程序运行方法和装置 |
CN105955782A (zh) * | 2016-05-09 | 2016-09-21 | 北京奇虎科技有限公司 | 应用程序运行控制的方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8646100B2 (en) * | 2011-06-03 | 2014-02-04 | Apple Inc. | Method for executing an application in a restricted operating environment |
CN103246525B (zh) * | 2012-02-06 | 2017-03-08 | 腾讯科技(深圳)有限公司 | 一种实现应用运行的方法及客户端 |
CN104134034B (zh) * | 2013-06-13 | 2015-10-21 | 腾讯科技(深圳)有限公司 | 控制应用运行的方法和装置 |
CN104216700B (zh) * | 2013-09-10 | 2017-05-03 | 侯金涛 | 基于云计算的html5应用的打包、安装、卸载、运行方法的*** |
CN104267994B (zh) * | 2014-09-30 | 2017-10-31 | 北京奇虎科技有限公司 | 一种运行应用程序的装置和终端设备 |
CN104461663B (zh) * | 2014-12-30 | 2018-04-20 | 北京奇虎科技有限公司 | 一种加载其它移动端应用的方法、装置和移动终端 |
-
2016
- 2016-09-22 CN CN202010227520.1A patent/CN111427594B/zh active Active
- 2016-09-22 CN CN201610843446.XA patent/CN106502717B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102105861A (zh) * | 2008-07-28 | 2011-06-22 | 微软公司 | 应用程序改变的状态分离 |
CN102929650A (zh) * | 2012-07-11 | 2013-02-13 | 北京金山安全软件有限公司 | 一种应用程序运行环境独立配置的方法、装置及移动设备 |
CN104239102A (zh) * | 2014-09-15 | 2014-12-24 | 腾讯科技(深圳)有限公司 | 应用程序运行方法和装置 |
CN105955782A (zh) * | 2016-05-09 | 2016-09-21 | 北京奇虎科技有限公司 | 应用程序运行控制的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106502717A (zh) | 2017-03-15 |
CN111427594A (zh) | 2020-07-17 |
CN111427594B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106502717B (zh) | 应用程序运行方法及装置 | |
CN108830720B (zh) | 智能合约运行方法、装置、***和计算机可读存储介质 | |
CN107992308B (zh) | 一种安卓终端应用程序的插件化管理方法 | |
CN102073507B (zh) | 微件Widget调用的方法、装置和*** | |
CN106325847B (zh) | 基于iOS平台获取应用程序功能的方法和装置 | |
CN111427596B (zh) | 一种软件升级的方法、装置及终端设备 | |
CN103345405A (zh) | 应用程序的启动方法、装置和客户端 | |
US10404568B2 (en) | Agent manager for distributed transaction monitoring system | |
CN111752581A (zh) | 一种分布式***的升级方法、装置和计算机*** | |
CN108089873A (zh) | 一种应用组件即时更新的方法及终端 | |
CN113760306B (zh) | 安装软件的方法、装置、电子设备及存储介质 | |
CN109032705B (zh) | 应用程序的执行方法、装置、电子设备及可读存储介质 | |
CN114968406B (zh) | 一种插件管理方法、装置、电子设备及存储介质 | |
CN112860251A (zh) | 一种网站前端构建的方法与*** | |
CN117149469B (zh) | H5页面调用宿主端功能的方法、装置、设备及存储介质 | |
CN105657551A (zh) | 智能电视对模拟按键的响应方法及装置 | |
WO2021097683A1 (zh) | 安卓***启动的方法、装置、设备及存储介质 | |
CN107911816B (zh) | 用于多模IoT设备的启动方法、多模IoT设备及存储介质 | |
CN115509531A (zh) | 基于前端技术的微前端实现方法、装置、终端及存储介质 | |
EP4071601A1 (en) | Mobile service upgrade method and apparatus, and terminal | |
CN113656063A (zh) | 一种***版本更换方法、装置、设备及计算机可读介质 | |
CN111240589A (zh) | 基于分区隔离的***管理方法、装置、设备及存储介质 | |
CN106970884B (zh) | 应用于安卓***运行层处理串口命令的方法及装置 | |
CN110661852A (zh) | 云环境中的业务处理方法及装置 | |
CN111666165B (zh) | 应用间功能调用的方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |