一种程序执行方法、装置、终端及存储介质与流程

文档序号:20681310发布日期:2020-05-08 18:25阅读:119来源:国知局
一种程序执行方法、装置、终端及存储介质与流程

本公开涉及计算机技术领域,尤其涉及程序执行方法、装置、终端及存储介质。



背景技术:

相关技术中,对于同一个软件产品而言,例如针对应用程序的这一软件产品,需要将整个软件产品都使用同一种开发语言且在同一执行环境才能顺利执行。也就是说,针对同一软件产品,需要开发人员采用同一种开发语言且在同一执行环境中执行,而在面对一些细微调整时也需要启动整个项目的开发或调试,显然会增大开发人员的工作量,开发效率慢,开发成本高等。



技术实现要素:

根据本公开实施例的第一方面,提供一种程序执行方法,包括:

在第一执行环境与第二执行环境之间配置通信通道;

在所述第一执行环境中第一执行代码,通过所述通信通道调用运行在所述第二执行环境的第二执行代码;

在所述第一执行环境中运行所述第二执行代码以获得程序执行结果。

可选地,所述在第一执行环境中第一执行代码,通过所述通信通道调用运行在所述第二执行环境的第二执行代码,包括:

检测是否有调用所述第二执行代码的调用需求;

在有所述调用需求时,在所述第一执行环境中所述第一执行代码,通过所述通信通道调用运行在所述第二执行环境的所述第二执行代码。

可选地,所述检测是否有调用所述第二执行代码的调用需求,包括以下之一:

在启动所述第一执行代码原生的嵌入包含有所述第二执行代码的页面时,确定有调用所述第二执行代码的所述调用需求;

在所述第一执行环境中已调用的所述第二执行代码执行时,监听到预定用户操作或预定触发事件,确定有调用所述第二执行代码的所述调用需求。

可选地,所述在第一执行环境中第一执行代码,通过所述通信通道调用运行在所述第二执行环境中的第二执行代码,包括:

通过所述通信通道将所述第二执行代码的封装包传输至所述第一执行代码,并配置于所述第一执行代码的预定位置;

所述在所述第一执行环境中运行所述第二执行代码以获得程序运行结果,包括:

在所述第一执行环境中运行包含所述封装包的所述第一执行代码以获得程序运行结果。

可选地,所述方法还包括:

基于白名单列表,确定所述第一执行代码对应需要调用的所述第二执行代码;其中,所述白名单列表预先记录有所述第一执行代码需要调用的所述第二执行代码。

可选地,所述第一执行环境为应用程序的执行环境,所述第一执行代码为应用程序的原生代码,所述第二执行环境为所述应用程序所呈现的网页的执行环境,所述第二执行代码为所述网页的代码;

或者,

所述第一执行环境为所述应用程序所呈现的网页的执行环境,所述第一执行代码为所述网页的代码,所述第二执行环境为所述应用程序的执行环境,所述第二执行代码为所述应用程序的原生代码。

根据本公开实施例的第二方面,提供一种程序执行装置,包括:

配置模块,被配置为在第一执行环境与第二执行环境之间配置通信通道;

调用模块,被配置为在所述第一执行环境中第一执行代码,通过所述通信通道调用运行在所述第二执行环境的第二执行代码;

运行模块,被配置为在所述第一执行环境中运行所述第二执行代码以获得程序执行结果。

可选地,所述调用模块,还包括:

检测子模块,被配置为检测是否有调用所述第二执行代码的调用需求;

调用子模块,被配置为在有所述调用需求时,在所述第一执行环境中所述第一执行代码,通过所述通信通道调用运行在所述第二执行环境的所述第二执行代码。

可选地,所述检测子模块,被配置为以下之一:

在启动所述第一执行代码原生的嵌入包含有所述第二执行代码的页面时,确定有调用所述第二执行代码的所述调用需求;

在所述第一执行环境中已调用的所述第二执行代码执行时,监听到预定用户操作或预定触发事件,确定有调用所述第二执行代码的所述调用需求。

可选地,所述调用模块,还被配置为:

通过所述通信通道将所述第二执行代码的封装包传输至所述第一执行代码,并配置于所述第一执行代码的预定位置;

所述运行模块,还被配置为:

在所述第一执行环境中运行包含所述封装包的所述第一执行代码以获得程序运行结果。

可选地,所述装置还包括:

确定模块,被配置为基于白名单列表,确定所述第一执行代码对应需要调用的所述第二执行代码;其中,所述白名单列表预先记录有所述第一执行代码需要调用的所述第二执行代码。

可选地,所述第一执行环境为应用程序的执行环境,所述第一执行代码为应用程序的原生代码,所述第二执行环境为所述应用程序所呈现的网页的执行环境,所述第二执行代码为所述网页的代码;

或者,

所述第一执行环境为所述应用程序所呈现的网页的执行环境,所述第一执行代码为所述网页的代码,所述第二执行环境为所述应用程序的执行环境,所述第二执行代码为所述应用程序的原生代码。

根据本公开实施例的第三方面,提供一种终端,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

在第一执行环境与第二执行环境之间配置通信通道;

在所述第一执行环境中第一执行代码,通过所述通信通道调用运行在所述第二执行环境的第二执行代码;

在所述第一执行环境中运行所述第二执行代码以获得程序执行结果。

根据本公开实施例的第四方面,提供一种非临时性计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行实现上述任意所述的方法步骤。

本公开的实施例提供的技术方案可以包括以下有益效果:

本公开的实施例中,通过在第一执行环境与第二执行环境之间配置通信通道;在所述第一执行环境中第一执行代码,通过所述通信通道调用运行在所述第二执行环境的第二执行代码;在所述第一执行环境中运行所述第二执行代码以获得程序执行结果。也就是说,本公开实施例可以通过在第一执行环境与第二执行环境之间配置的通信通道,来调用运行在第二执行环境的第二执行代码,然后将第二执行代码在所述第一执行环境中运行以获得程序运行结果。因此,本公开实施例无需将同一个软件产品限定为同一种执行代码且在同一执行环境中执行,而是,针对同一软件产品的不同部分可以使用不同的执行代码,在不同的执行环境中执行,通过通信通道实现两种执行代码之间的相互调用,运行以得到程序执行结果,如此,可以将同一软件产品拆分开来进行开发或调试,在软件产品修改或调试时,可以将需要修改或调试的部分进行独立处理,减少了开发人员的工作量,提高了开发效率,减少了开发成本。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种程序执行方法的流程图;

图2是根据一示例性实施例示出的一种程序执行方法的另一流程图;

图3是根据一示例性实施例示出的一种程序执行方法的又一流程图;

图4是根据一示例性实施例示出的一种程序执行装置的框图;

图5是根据一示例性实施例示出的一种终端的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种程序执行方法的流程图,如图1所示,该方法应用于终端,包括以下步骤:

步骤101:在第一执行环境与第二执行环境之间配置通信通道。

这里,所述终端具体可以为移动终端、固定终端;其中,移动终端可以为手机、平板电脑、笔记本电脑等;固定终端可以为台式电脑。该方法可以应用于任何能够运行计算机程序的终端上。

这里,所述执行环境是指程序代码在执行时的运行环境,不同的开发语言编写的程序需运行于为该语言提供的执行环境中。例如,由java编写的程序需运行于jre(javaruntimeenvironment,java运行环境)环境中;由javascript编写的程序则需运行于浏览器提供的环境中,再例如,由c#编写的程序则运行于microsoft.netframework。

需要说明的是,javascript是一种图形层语言,而java或c#是服务器端代码。

这里,所述通信通道可以是定义在第一执行环境与第二执行环境之间的通信协议,或者说,为第一执行环境与第二执行环境之间进行程序交互的通信规则。

例如,对于需要在第一执行环境和第二执行环境之间进行交互的执行代码可以预先配置的封装包进行封装,以便该执行代码在另一执行环境中能够基于封装包在所述另一执行环境中执行。

再例如,对于需要在第一执行环境与第二执行环境之间进行交互的执行代码可以预先进行转换,将转换后的执行代码通过通信通道传递给另一执行环境,以便能够在另一执行环境中执行。

也就是说,所述通信通道能够完成第一执行环境与第二执行环境中执行代码的相互交互,从而完成软件产品中基于不同执行环境下执行的程序针对同一事件的顺利执行。在此对通信通道所定义的通信协议不作任何限定。

步骤102:在所述第一执行环境中第一执行代码,通过所述通信通道调用运行在所述第二执行环境的第二执行代码。

这里,第一执行代码和第二执行代码为实现同一软件产品的程序代码。这里,所述软件产品可以是一个应用程序,也可以是一个网站系统等。所述第一执行代码在所述第一执行环境中执行,所述第二执行代码在第二执行环境中执行。

这里以所述软件产品为应用程序为例,所述第一执行代码为应用程序的原生代码。可以理解的是,应用程序的原生代码通常用于实现应用程序的后台,是服务器端的代码,如用于后台实现的数据分析或数据处理等。所述第一执行代码为应用程序所呈现的网页的代码,例如,用javascript编写的网页页面,用于前台的展示,如用于展示后台的数据分析结果或数据处理结果等。

步骤103:在所述第一执行环境中运行所述第二执行代码以获得程序执行结果。

本实施例中,所述第一执行代码通过所述通信通道能够调用运行在所述第二执行环境的第二执行代码,并在第一执行环境中运行所述第二执行代码以获得程序执行结果,能够实现第一执行代码与第二执行代码之间针对同一事件的执行。例如,针对应用程序中的登录事件,第一执行代码可以是后台进行登录的验证数据的分析相关的执行代码,第二执行代码则可以是前台进行基于验证结果的结果展示相关的执行代码。再例如,针对应用程序中的下载事件,第一执行代码可以是后台进行下载数据处理的相关执行代码,第二执行代码则可以是前台进行基于下载结果的结果展示相关的执行代码。

因此,终端能够通过一个通信通道,将原本无法运行于第一执行环境的第二执行代码调用到所述第一执行环境中运行,使得同一程序的两种不同执行代码之间可以相互被调用并执行以得到执行结果。从而通过这一方式,可以将程序进行拆分编写,提高程序开发效率,且在程序的某些部分需要修改时,无需整体进行修改并编译,只需要修改对应部分的代码并在该部分代码对应的执行环境中进行测试即可,减少了开发人员的工作量,提高了开发效率,减少了开发成本。

并且,由于可以将程序进行拆分编写,因此在该软件产品针对部分执行代码进行升级时,也可以不需要停用整个软件产品的使用,而是在该部分执行代码完成升级后进行新的版本发布即可,减少软件产品的版本迭代时造成的整个软件产品无法使用的现象。

作为一个可选的实施例,所述步骤102,也就是所述在第一执行环境中第一执行代码,通过所述通信通道调用运行在所述第二执行环境的第二执行代码,包括:检测是否有调用所述第二执行代码的调用需求;在有所述调用需求时,在所述第一执行环境中所述第一执行代码,通过所述通信通道调用在所述第二执行环境的所述第二执行代码。

这里,终端通过检测是否有调用所述第二执行代码的调用需求,自动通过通信通道调用运行在第二执行环境中的第二执行代码。

可以理解的是,所述调用所述第二执行代码的调用需求,可以根据软件产品的需求预先配置。具体地,针对软件产品中第一执行代码和第二执行代码之间需要进行交互的事件发生时,即第一执行代码和第二执行代码需要共同完成同一事件时,确定有调用所述第二执行代码的调用需求。例如,针对软件产品中第一执行代码和第二执行代码之间需要进行交互的登录事件或下载事件。

在实际应用中,所述检测是否有调用所述第二执行代码的调用需求,可以是,根据软件产品的需求,预先在所述第一执行代码的预定执行位置插入预定指令代码,通过检测到所述预定指令代码,检测到有调用所述第二执行代码的调用需求。例如,对于jave代码而言,可以通过webview.loadurl()这一类的指令代码来调用对应的javascript代码,而对于javascript代码而言,可以预先配置好javatojscallback()这一类指令供java代码调用,从而实现java对javascript的调用。

作为一个可选的实施例,所述检测是否有调用所述第二执行代码的调用需求,包括:

在启动所述第一执行代码原生的嵌入包含有第二执行代码的页面时,确定有调用所述第二执行代码的所述调用需求;

这里,所述启动所述第一执行代码原生的嵌入包含有第二执行代码的页面时,确定有调用所述第二执行代码的所述调用需求,可以理解为,预先将包含有第二执行代码的页面嵌入到第一执行代码的原生代码中,当嵌入在第一执行代码中的第二执行代码的页面有预定事件发生,则启动所述第一执行代码原生的嵌入包含有第二执行代码的页面。这时,终端确定有调用所述第二执行代码的所述调用需求。

具体地,所述包含有第二执行代码的页面可以为应用程序所呈现的网页中展示的例如登录控件对应的页面,或者下载控件对应的页面,即登录控件对应的页面或者下载控件对应的页面检测到有对应点击操作时,产生对应的所述预定事件,启动所述第一执行代码原生的嵌入包含有第二执行代码的页面。

在另一些实施例中,所述在启动所述第一执行代码原生的嵌入包含有第二执行代码的页面时,确定有调用所述第二执行代码的所述调用需求,可以理解为,预先将包含有第二执行代码的页面嵌入到第一执行代码的原生代码中,当第一执行代码运行到嵌入包含有第二执行代码的程序节点时,则表明开始启动所述第一执行代码原生的嵌入包含有第二执行代码的页面了。这时,终端确定有调用所述第二执行代码的所述调用需求。

具体地,所述包含有第二执行代码的页面可以为论坛网站的网页中展示评论的页面,即当后台有评论事件发生时,即启动所述第一执行代码原生的嵌入包含有第二执行代码的页面。

作为另一个可选的实施例,所述检测是否有调用所述第二执行代码的调用需求,包括:

在所述第一执行环境中已调用的所述第二执行代码执行时,监听到预定用户操作或预定触发事件,确定有调用所述第二执行代码的所述调用需求。

这里,所述在所述第一执行环境中已调用的所述第二执行代码执行时,监听到预定用户操作或预定触发事件,确定有调用所述第二执行代码的调用需求,可以理解为,所述第一执行环境为在所述第一执行环境中已调用所述第二执行代码执行时,例如,下载事件正在执行时,当监听到预定用户操作或预定触发事件,例如,监听到用户的停止操作,或者服务器下载资源出现问题等触发事件。这时,需要后台向前台返回一个下载失败的交互页面,因此,此时可以确定有调用所述第二执行代码的所述调用需求。

作为一个可选的实施例,所述在第一执行环境中第一执行代码,通过所述通信通道调用运行在所述第二执行环境中的第二执行代码,包括:

通过所述通信通道将所述第二执行代码的封装包传输至所述第一执行代码,并配置于所述第一执行代码的预定位置;

所述在所述第一执行环境中运行所述第二执行代码以获得程序运行结果,包括:

在所述第一执行环境中运行包含所述封装包的所述第一执行代码以获得程序运行结果。

这里,所述第二执行代码的封装包可以包括:第二执行代码所封装成的第一执行环境能够识别的接口,通过该接口,可以让第一执行代码能够通过该接口调用第二执行代码,以执行所述第二执行代码。

在另一个实施例中,所述第二执行代码的封装包还可以包括:所述第二执行代码的函数库的封装包,通过该函数库,可以让第一执行代码能够通过该函数库调用第二执行代码的函数库以替代第二执行代码进行执行。例如,以第一执行代码为java代码,第二执行代码为javescript代码为例,如果java代码需要调用javescript代码,可以预先在java代码的预定位置,例如头部配置javescript代码的函数库,这样在执行java代码时,可以同时通过调用javescript代码的函数库来执行javescript代码。

需要补充的是,在一些实施例中,在确定有所述调用需求时,通过某一个调用指令调用与第一执行代码对应的第二执行代码。例如,对于jave代码而言,可以通过shouldoverrideurlloading()来判断需要调用的javascript代码。

本实施例中,通过在第一执行代码的预定位置配置第二执行代码的封装包的方式,解决了第二执行代码无法在第一执行代码的第一执行环境中运行的问题,实现起来方便,简单,无需开发人员对第一执行代码和第二执行代码进行对应替换等复杂的编程方式来实现。

作为一个可选的实施例,所述方法还包括:

基于白名单列表,确定所述第一执行代码对应需要调用的所述第二执行代码;其中,所述白名单列表预先记录有所述第一执行代码需要调用的所述第二执行代码。

由于所述白名单列表中预先记录有所述第一执行代码需要调用的所述第二执行代码,因此,在一些实施例中,所述方法还可以包括:利用所述白名单列表,确定所述第一执行代码是否有调用所述第二执行代码的调用需求。

以java代码为例,终端可以通过needinjectjsbridget()指令调出白名单列表,在应用程序的加载前对需要进行加载的java代码进行判断,通过白名单列表判断是否是需要进行调用javascript代码。

本实施例中,通过白名单列表的建立,可以将所述第一执行代码需要调用的第二执行代码放入白名单中,而不需要调用的第二执行代码预先排除在外。因此,当所述第一执行代码需要调用时,能够通过白名单列表迅速找到所述第一代码需要调用的第二执行代码,提高程序执行效率。

作为一个可选的实施例,所述第一执行环境为应用程序的执行环境,所述第一执行代码为应用程序的原生代码,所述第二执行环境为所述应用程序所呈现的网页的执行环境,所述第二执行代码为所述网页的代码;

或者,

所述第一执行环境为所述应用程序所呈现的网页的执行环境,所述第一执行代码为所述网页的代码,所述第二执行环境为所述应用程序的执行环境,所述第二执行代码为所述应用程序的原生代码。

这里,以应用程序为所述软件产品为例,应用程序的软件产品可以被拆分为应用程序的原生代码和应用程序的网页的代码,由于应用程序所呈现的网页的代码,例如html、javascript等,具有开发周期短,可线上更新等特点,无需像应用程序的原生代码一般需要启动大工程开发。

进一步地,本实施例由于能够通过通信通道调用应用程序所呈现的网页的代码,并运行在所述应用程序的执行环境中;或者通过通信通道调用应用程序的原生代码,并运行在应用程序所呈现的网页的执行环境中,完成应用程序的原生代码与应用程序所呈现的网页的代码之间的交互。如此一来,即使应用程序被拆分成两种执行环境下的执行代码来开发也不影响应用程序的执行。因此,本实施例中,在修改一些关于应用程序的网页的代码时,无需启动应用程序的原生代码的修改等,如此,可以减少开发人员的工作量,提高开发效率,减少开发成本。

进一步地,本公开还提供了一个具体实施例,以进一步理解本公开实施例所提供的程序执行方法。

以下以应用程序的执行环境为第一执行环境,以应用程序的原生代码为第一执行代码;以所述应用程序所呈现的网页的执行环境为第二执行环境,以所述网页的代码为第二执行代码。

这里,所述网页的第二执行代码为js(javascript)代码,所述应用程序的原生代码为jave代码。

图2是根据一示例性实施例示出的一种程序执行方法的另一流程图,如图2所示,所述方法包括:

步骤201:加载js。

可以理解的是,加载js即加载所述应用程序的网页。

步骤202:判断是否需要注入,若是,则执行步骤203,若否,则执行步骤204。

这里,判断是否需要注入,即上述实施例所述的检测是否有调用所述第二执行代码的调用需求。

步骤203:注入。

这里,注入所述js,可以理解为上述实施例所述的在所述第一执行环境中所述第一执行代码,通过所述通信通道调用在所述第二执行环境的所述第二执行代码。

在具体应用中,判断是否需要注入,通常可以通过应用程序当前的执行状况来确定,例如,应用程序当前启动所述第一执行代码原生的嵌入包含有第二执行代码的页面时,确定需要注入。

步骤204:结束。

本实施例中,通过将js注入到应用程序的原生代码中,配合应用程序的原生代码实现应用程序与应用程序所呈现的网页之间的交互。同时,基于应用程序的网页的执行代码能够独立于应用程序的原生代码,在对应用程序的网页进行样式等变更时,完全不需要修改应用程序的原生代码,提高了程序开发的效率。并且,基于网页开发的周期短可实现线上更新的特点,在应用程序进行跨平台开发过程中,应用程序的网页针对不同平台进行开发,减少了开发工作量,提高开发效率。

以下以应用程序的执行环境为第二执行环境,以应用程序的原生代码为第二执行代码;以所述应用程序所呈现的网页的执行环境为第一执行环境,以所述网页的代码为第二执行代码。

这里,所述网页的第二执行代码为js代码,所述应用程序的原生代码为java代码。

图3是根据一示例性实施例示出的一种程序执行方法的又一流程图,如图3所示,所述方法包括:

步骤301:发生回调。

可以理解的是,在js注入到应用程序的原生代码之后,会得到一个程序执行结果。针对这一程序执行结果是否会发生响应。例如,针对下载事件的程序执行结果,回调即为下载成功或下载失败;针对登录事件的程序执行结果,回调即为登录成功或登录失败。

步骤302:页面是否自行处理回调,若否则执行步骤303,若是,则执行步骤304。

这里,页面是指应用程序的原生代码所执行的执行环境是否响应该回调,若不响应,则判断为需要处理的回调,即需要返回给应用程序所呈现的网页的回调。

步骤303:处理回调。

这里,所述处理回调,可以理解为上述实施例所述的在有所述调用需求时,在所述第一执行环境中所述第一执行代码,通过所述通信通道调用运行在所述第二执行环境的所述第二执行代码。即在应用程序的网页的代码,通过通信通道调用运行在应用程序的执行环境的应用程序的原生代码。

步骤304:结束。

本实施例中,通过通信通道将应用程序的原生代码调到应用程序的网页代码中,以展示应用程序的原生代码针对相关事件的返回结果,实现了应用程序的原生代码与应用程序所呈现的网页之间的交互。同样地,基于应用程序的网页的执行代码能够独立于应用程序的原生代码,在对应用程序的网页进行样式等变更时,完全不需要修改应用程序的原生代码,提高了程序开发的效率。并且,基于网页开发的周期短可实现线上更新的特点,在应用程序进行跨平台开发过程中,应用程序的网页针对不同平台进行开发,减少了开发工作量,提高开发效率。

图4是根据一示例性实施例示出的一种程序执行装置框图。参照图4,该装置包括配置模块41,调用模块42和运行模块43;

所述配置模块41,被配置为在第一执行环境与第二执行环境之间配置通信通道;

所述调用模块42,被配置为在所述第一执行环境中第一执行代码,通过所述通信通道调用运行在所述第二执行环境的第二执行代码;

所述运行模块43,被配置为在所述第一执行环境中运行所述第二执行代码以获得程序执行结果。

在一个可选的实施例中,所述调用模块42,还包括:

检测子模块,被配置为检测是否有调用所述第二执行代码的调用需求;

调用子模块,被配置为在有所述调用需求时,在所述第一执行环境中所述第一执行代码,通过所述通信通道调用运行在所述第二执行环境的所述第二执行代码。

在一个可选的实施例中,所述检测子模块,被配置为以下之一:

在启动所述第一执行代码原生的嵌入包含有所述第二执行代码的页面时,确定有调用所述第二执行代码的所述调用需求;

在所述第一执行环境中已调用的所述第二执行代码执行时,监听到预定用户操作或预定触发事件,确定有调用所述第二执行代码的所述调用需求。

在一个可选的实施例中,所述调用模块42,还被配置为:

通过所述通信通道将所述第二执行代码的封装包传输至所述第一执行代码,并配置于所述第一执行代码的预定位置;

所述运行模块43,还被配置为:

在所述第一执行环境中运行包含所述封装包的所述第一执行代码以获得程序运行结果。

在一个可选的实施例中,所述装置还包括:

确定模块,被配置为基于白名单列表,确定所述第一执行代码对应需要调用的所述第二执行代码;其中,所述白名单列表预先记录有所述第一执行代码需要调用的所述第二执行代码。

在一个可选的实施例中,所述第一执行环境为应用程序的执行环境,所述第一执行代码为应用程序的原生代码,所述第二执行环境为所述应用程序所呈现的网页的执行环境,所述第二执行代码为所述网页的代码;

或者,

所述第一执行环境为所述应用程序所呈现的网页的执行环境,所述第一执行代码为所述网页的代码,所述第二执行环境为所述应用程序的执行环境,所述第二执行代码为所述应用程序的原生代码。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图5是根据一示例性实施例示出的一种终端500的框图。例如,终端500可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。

参照图5,终端500可以包括以下一个或多个组件:处理组件502,存储器504,电力组件506,多媒体组件508,音频组件510,输入/输出(i/o)的接口512,传感器组件514,以及通信组件516。

处理组件502通常控制终端500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件502可以包括一个或多个处理器520来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件502可以包括一个或多个模块,便于处理组件502和其他组件之间的交互。例如,处理组件502可以包括多媒体模块,以方便多媒体组件508和处理组件502之间的交互。

存储器504被配置为存储各种类型的数据以支持在终端500的操作。这些数据的示例包括用于在终端500上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

电力组件506为终端500的各种组件提供电力。电力组件506可以包括电源管理系统,一个或多个电源,及其他与为终端500生成、管理和分配电力相关联的组件。

多媒体组件508包括在所述终端500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件508包括一个前置摄像头和/或后置摄像头。当终端500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件510被配置为输出和/或输入音频信号。例如,音频组件510包括一个麦克风(mic),当终端500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件516发送。在一些实施例中,音频组件510还包括一个扬声器,用于输出音频信号。

i/o接口512为处理组件502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件514包括一个或多个传感器,用于为终端500提供各个方面的状态评估。例如,传感器组件514可以检测到终端500的打开/关闭状态,组件的相对定位,例如所述组件为终端500的显示器和小键盘,传感器组件514还可以检测终端500或终端5000一个组件的位置改变,用户与终端500接触的存在或不存在,终端500方位或加速/减速和终端500的温度变化。传感器组件514可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件514还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件516被配置为便于终端500和其他设备之间有线或无线方式的通信。终端500可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件516经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件516还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。

在示例性实施例中,终端500可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器504,上述指令可由终端500的处理器520执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

一种非临时性计算机可读存储介质,当所述存储介质中的指令由终端的处理器执行时,使得终端能够执行上述各实施例所述的程序执行方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

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