CN108563475A - 应用程序的运行方法、装置及存储介质 - Google Patents

应用程序的运行方法、装置及存储介质 Download PDF

Info

Publication number
CN108563475A
CN108563475A CN201810340071.4A CN201810340071A CN108563475A CN 108563475 A CN108563475 A CN 108563475A CN 201810340071 A CN201810340071 A CN 201810340071A CN 108563475 A CN108563475 A CN 108563475A
Authority
CN
China
Prior art keywords
application program
code
client
data
server
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.)
Pending
Application number
CN201810340071.4A
Other languages
English (en)
Inventor
沈光昊
徐礼超
薛向东
周冀
张洋洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baidu Online Network Technology Beijing Co Ltd
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201810340071.4A priority Critical patent/CN108563475A/zh
Publication of CN108563475A publication Critical patent/CN108563475A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种应用程序的运行方法、装置及存储介质,该方法包括:接收用户输入的数据,并将所述数据发送给服务器,所述数据用于指示所述用户所要访问的应用程序;接收所述服务器发送的所述应用程序的代码;执行所述代码,以运行所述应用程序。本发明提供的应用程序的运行方法、装置及存储介质能够简化用户的操作,提高用户的体验。

Description

应用程序的运行方法、装置及存储介质
技术领域
本发明涉及计算机技术,尤其涉及一种应用程序的运行方法、装置及存储介质。
背景技术
随着科学技术的发展,移动终端或智能家居等客户端上能够运行的应用程序(Application;APP)也越来越多。
现有技术中,用户想要通过运行应用程序实现某种功能时,需要先下载安装完整版本的该应用程序,进而在客户端本地运行该应用程序。然而,现有技术中,用户通过该应用程序实现的功能,通常会依赖于安装在客户端本地的该应用程序所具有的功能,当在客户端上没有安装该应用程序的某个功能时,用户必须要通过下载安装或者对该应用程序进行升级处理之后,才能正常使用,从而使得用户的操作较为繁琐,降低了用户的体验。
发明内容
为解决现有技术中存在的问题,本发明提供一种应用程序的运行方法、装置及存储介质,以简化用户的操作,提高用户的体验。
第一方面,本发明实施例提供一种应用程序的运行方法,包括:
接收用户输入的数据,并将所述数据发送给服务器,所述数据用于指示所述用户所要访问的应用程序;
接收所述服务器发送的所述应用程序的代码;
执行所述代码,以运行所述应用程序。
在本方案中,由于客户端在接收到用户输入的数据之后,会将该数据发送给服务器,服务器通过该数据识别出用户想要访问的应用程序,从而将该应用程序的代码发送给客户端,而客户端本地并不需要下载安装完整版本的应用程序,这样,在该应用程序需要升级时,服务器端会对该应用程序进行升级处理,服务器发送给客户端的代码通常为最新版本的应用程序的代码,从而避免了用户频繁的在客户端本地对应用程序进行下载安装或升级的现象,从而简化了用户的操作,提高了用户的体验。
可选的,所述执行所述代码,以运行所述应用程序,包括:
通过第一引擎对所述代码进行解析,获得解析后的代码;
根据所述解析后的代码,生成指令流;
通过第二引擎对所述指令流进行处理,以运行所述应用程序。
可选的,所述指令流包括创建指令流和样式设置指令流;
所述通过第二引擎对所述指令流进行处理包括:
根据所述创建指令流,通过所述第二引擎中的基础组件库模块创建所述应用程序的多个组件;
根据所述样式设置指令流,通过所述第二引擎中的CSS格式化模块设置各所述组件的样式。
可选的,所述方法还包括:
对设置样式后的各组件进行渲染,以显示所述应用程序的界面。
可选的,所述代码包括JS文件。
可选的,所述第一引擎包括V8引擎。
第二方面,本发明实施例提供一种应用程序的运行方法,包括:
接收客户端发送的数据,所述数据用于指示用户所要访问的应用程序;
对所述数据进行解析,确定所述应用程序;
将所述应用程序的代码发送给所述客户端,以使所述客户端执行所述代码,以运行所述应用程序。
可选的,所述代码包括JS文件。
第三方面,本发明实施例提供一种应用程序的运行装置,包括:
接收模块,用于接收用户输入的数据;
发送模块,用于将所述数据发送给服务器,所述数据用于指示所述用户所要访问的应用程序;
所述接收模块,还用于接收所述服务器发送的所述应用程序的代码;
处理模块,用于执行所述代码,以运行所述应用程序。
可选的,所述处理模块,具体用于:
通过第一引擎对所述代码进行解析,获得解析后的代码;
根据所述解析后的代码,生成指令流;
通过第二引擎对所述指令流进行处理,以运行所述应用程序。
可选的,所述指令流包括创建指令流和样式设置指令流;
所述处理模块,具体用于:
根据所述创建指令流,通过所述第二引擎中的基础组件库模块创建所述应用程序的多个组件;
根据所述样式设置指令流,通过所述第二引擎中的CSS格式化模块设置各所述组件的样式。
可选的,所述处理模块,还用于:
对设置样式后的各组件进行渲染,以显示所述应用程序的界面。
可选的,所述代码包括JS文件。
可选的,所述第一引擎包括V8引擎。
第四方面,本发明实施例提供一种应用程序的运行装置,包括:
接收模块,用于接收客户端发送的数据,所述数据用于指示用户所要访问的应用程序;
确定模块,用于对所述数据进行解析,确定所述应用程序;
发送模块,用于将所述应用程序的代码发送给所述客户端,以使所述客户端执行所述代码,以运行所述应用程序。
可选的,所述代码包括JS文件。
第五方面,本发明实施例提供一种客户端,包括:
处理器;
存储器;以及
计算机程序;
其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如第一方面所述的方法的指令。
第六方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得客户端执行第一方面所述的方法。
第七方面,本发明实施例提供一种服务器,包括:
处理器;
存储器;以及
计算机程序;
其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如第二方面所述的方法的指令。
第八方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得服务器执行第二方面所述的方法。
本发明提供的应用程序的运行方法、装置及存储介质,通过接收用户输入的数据,并将数据发送给服务器,该数据用于指示用户所要访问的应用程序,然后接收服务器发送的应用程序的代码,并执行该代码,以运行应用程序。由于客户端在接收到用户输入的数据之后,会将该数据发送给服务器,服务器通过该数据识别出用户想要访问的应用程序,从而将该应用程序的代码发送给客户端,而客户端本地并不需要下载安装完整版本的应用程序,这样,在该应用程序需要升级时,服务器端会对该应用程序进行升级处理,服务器发送给客户端的代码通常为最新版本的应用程序的代码,从而避免了用户频繁的在客户端本地对应用程序进行下载安装或升级的现象,从而简化了用户的操作,提高了用户的体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为应用本发明实施例提供的应用程序的运行方法的架构示意图;
图2为本发明实施例提供的应用程序的运行方法的系统架构示意图;
图3为本发明实施例提供的应用程序的运行方法实施例一的流程示意图;
图4为本发明实施例提供的应用程序的运行方法实施例二的流程示意图;
图5为本发明实施例提供的应用程序的运行方法实施例三的信令流程图;
图6为本发明实施例提供的应用程序的运行装置实施例一的结构示意图;
图7是本发明实施例提供的一种客户端的结构示意图;
图8为本发明实施例提供的应用程序的运行装置实施例二的结构示意图;
图9A示出了本发明服务器的一种可能的结构示意图;
图9B示出了本发明服务器的另一种可能的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”及“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1为应用本发明实施例提供的应用程序的运行方法的架构示意图,如图1所示,该系统架构中可以包括客户端101、102或103和服务器104。
其中,客户端101、102或103可以为支持信息通信的各种电子设备,
包括但不限于智能手机、平板电脑、便携式计算机、台式计算机以及各种智能家居设备等。
服务器104可以是提供各应用程序的代码的服务器,例如对用户通过客户端101、102或103发送的数据进行分析,并根据分析结果确定出用户所要访问的应用程序,从而将该应用程序的代码下发给客户端101、102或103。
另外,值得注意的是,上述图1中所示的客户端、网络和服务器的数量和类型仅作为示意,在实际应用中,根据实现的需要,可以具有任意数量和类型的客户端、网络和服务器。
图2为本发明实施例提供的应用程序的运行方法的系统架构示意图,如图1和图2所示,业务层位于服务器104中,该业务层中包括有业务逻辑代码、组件模板库、底层库和JsBridge,其中,业务逻辑代码即为应用程序的代码。另外,V8引擎为预先安装在客户端上的运行环境,其可以用于编译和执行代码,以运行应用程序。底层库(FrameWork.js)的主要功能是面向应用开发者提供的一套框架,如:如何执行一段动画、如何接收客户端上传递过来的事件、View存在哪些属性、如何使用等。同时,FrameWrok层会将基于其开发的JS代码转换为一系列的命令进行输出。
其中,命令的格式为:[目标元素的索引,Command,args]。例如:0,
"create",[3,"view"],即执行第0号元素的create方法,并传入两个参数3,“view”。
上下文层(context)位于客户端中,Content层功能是解释执行Js输出的命令,其主要包括有Bundle模块、基础组件库和CSS格式化模块,其中,Bundle模块用于将Native的某一个功能集成到Context中,可以让该功能被Js使用,该模块提供了两个基类:Wrapper:当客户端中有一个非视图调用的功能时,需要继承该类。如一个打开第三方应用的功能、一个读取本地文件数据的功能等;View Wrapper:当客户端有一个视图类的功能时,需要继承该类,如一个视频播放器,一个地图组件等。除以上两个基类之外,还提供一个抽象类AtomWrapper Bundle来将基于Wrapper开发的功能绑定到Context中。
基础组件库提供了一个页面所拥有的基础能力,如View/Text/Span/Img等标签,每个基础能力的实现和绑定都是通过Bundle来进行。客户端可以通过基础组件库创建应用程序中的多个组件。
CSS格式化模块提供了将前端的样式属性转为客户端的方式来输出,基于该模块才能在JS中使用CSS的方式来书写样式。客户端可以通过CSS格式化模块设置各所述组件的样式,以此可以运行应用程序。
在图1和图2所示的架构示意图的基础上,本发明实施例提供的应用程序的运行方法,应用于在各种智能家居或终端设备等客户端上运行应用程序的场景中。例如:本发明实施例提供的应用程序的运行方法,可以应用于通过客户端运行即时通讯应用程序或通过客户端运行视频通讯应用程序等等。目前,用户想要通过运行应用程序实现某种功能时,需要先下载安装完整版本的该应用程序,进而在客户端本地运行该应用程序。然而,现有技术中,用户通过该应用程序实现的功能,通常会依赖于安装在客户端本地的该应用程序所具有的功能,当在客户端上没有安装该应用程序的某个功能时,用户必须要通过下载安装或者对该应用程序进行升级处理之后,才能正常使用,从而使得用户的操作较为繁琐,降低了用户的体验。
本发明实施例考虑到上述问题,提出一种应用程序的运行方法,该方法中客户端接收用户输入的数据,并将该数据发送给服务器,该数据用于指示用户所要访问的应用程序,然后接收服务器发送的该应用程序的代码,并执行上述代码,以运行应用程序。由于客户端在接收到用户输入的数据之后,会将该数据发送给服务器,服务器通过该数据识别出用户想要访问的应用程序,从而将该应用程序的代码发送给客户端,而客户端本地并不需要下载安装完整版本的应用程序,这样,在该应用程序需要升级时,服务器端会对该应用程序进行升级处理,服务器发送给客户端的代码通常为最新版本的应用程序的代码,从而避免了用户需要在客户端本地对应用程序进行下载安装或升级的现象,从而简化了用户的操作,提高了用户的体验。
下面以通过客户端运行即时通讯应用程序场景为例,详细说明如何进行应用程序的运行。
其中,客户端(如图1中所示的客户端101、102或103)中预先安装有代码的运行环境,如V8引擎,另外,为了使得该应用程序能够在安卓系统下正常运行,还需要在客户端上预先安装能够运行Java代码的引擎。
当用户想要通过客户端打开即时通讯应用程序时,会向客户端输入数据,如输入语音数据或者手势等,例如输入“我想打开A应用程序”,客户端在接收到用户输入的该数据后,会将该数据发送给服务器(如图1中所示的服务器104)。服务器通过对接收到的数据进行分析,确定出用户所想要访问的应用程序为应用程序A,此时,服务器会将该应用程序A的代码下发给客户端。
客户端通过预先安装的运行环境,对该代码进行编译,通过客户端中存储的基础组件库模块创建出应用程序A的多个组件,并通过CSS格式化模块设置各组件的样式,最后对设置样式后的各组件进行渲染,以显示应用程序A的界面,从而运行应用程序A。
由于客户端中并没有安装应用程序,仅安装有代码的运行环境,服务器会将应用程序的代码下发给客户端,这样,当应用程序需要升级时,将会在服务器进行升级,而不需要在客户端本地进行升级,从而不仅可以保证用户能够使用到最新版本的应用程序,而且可以简化用户的操作,提高用户的体验。另外,由于客户端中并不需要安装应用程序,由此可以降低客户端中的内存占用量。
下面以具体的实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
在图1和图2所示的架构示意图的基础上,图3为本发明实施例提供的应用程序的运行方法实施例一的流程示意图。本发明实施例提供了一种应用程序的运行方法,该方法可以由任意执行应用程序的运行方法的装置来执行,该装置可以通过软件和/或硬件实现。本实施例中,该装置可以集成在客户端中。如图3所示,本实施例的方法可以包括:
步骤301、接收用户输入的数据,并将数据发送给服务器,该数据用于指示用户所要访问的应用程序。
在本实施例中,当用户想要通过客户端访问某个应用程序时,可以向客户端输入数据,其中,该数据例如可以为语音数据、手势或者其他数据,例如通过客户端的界面输入预设图案等。客户端在接收到用户输入的数据后,会将该数据发送给服务器。
服务器通过对接收到的数据进行分析,可以确定出用户想要访问的应用程序。例如:若用户输入的数据为语音数据:“我想访问应用程序A”,则服务器通过对该语音数据的分析,即可确定出用户想要访问的应用程序为应用程序A。又如:若用户输入的数据为向左摆动手指,则服务器通过预先存储的手势和应用程序之间的对应关系,即可确定出向左摆动手指对应的应用程序为应用程序B等等。
步骤302、接收服务器发送的应用程序的代码。
在本实施例中,服务器在确定出用户所要访问的应用程序之后,将会获取该应用程序的代码,并将获取到的代码下发给客户端。
例如:若服务器确定出用户所要访问的应用程序为应用程序A,则将会获取应用程序A的代码,并将该代码发送给客户端。
在一种可能的实现方式中,应用程序的代码包括该应用程序的JS文件。
步骤303、执行代码,以运行应用程序。
在本实施例中,客户端中预先安装有完整的运行环境,其可以运行服务器下发的代码,从而可以运行该应用程序。
另外,值得注意的是,若用户想要访问某个视频应用程序,如用户向客户端输入的数据为“我想通过应用程序C打开D视频”,此时,服务器将不仅会向客户端下发应用程序C的代码,而且会将D视频的统一资源定位符(uniform resource locator,URL)发送给客户端,这样,客户端通过解析服务器发送的代码和URL,即可以通过应用程序C打开D视频。
可选的,若用户需要在客户端中增加某一个功能(如新闻),仅需要在客户端中进行配置即可,而不需要下载一个新的应用程序或者对该应用程序进行升级,从而可以简化用户的操作,提高用户体验。
可选的,客户端执行代码以运行应用程序,可以通过如下方式实现:通过第一引擎对代码进行解析,获得解析后的代码,根据解析后的代码,生成指令流,通过第二引擎对指令流进行处理,以运行应用程序。
具体的,以代码为JS文件为例进行说明,在客户端接收到服务器下发的JS文件之后,将会通过预先安装在客户端中的第一引擎解析JS文件,并根据解析后的JS文件生成指令流。再通过预先安装在客户端中的第二引擎对生成的指令流进行处理,从而运行该应用程序。
在具体的实现过程中,生成的指令流包括创建指令流和样式设置指令流,客户端通过第二引擎对指令流进行处理包括:根据创建指令流,通过第二引擎中的基础组件库模块创建应用程序的多个组件;根据样式设置指令流,通过第二引擎中的CSS格式化模块设置各组件的样式。
具体的,客户端中第一引擎和第二引擎之间通过JS桥(JS Bridge)进行通信,客户端通过第一引擎对JS文件进行解析,并生成指令流之后,通过JS Bridge将指令流发送给第二引擎进行处理,客户端根据创建指令流,通过第二引擎中的基础组件库模块创建应用程序的多个组件,根据样式设置指令流,通过第二引擎中的CSS格式化模块设置各组件的样式。
需要进行说明的是,由于服务器下发的代码通常为JS语言,因此,客户端中会通过第一引擎,如V8引擎对服务器下发的代码进行解析,而客户端中若为安卓系统,其能够解析的通常为Java语言,为了降低成本,本发明中采用能够解析编译Java语言的第二引擎对生成的指令流进行处理。另外,第一引擎和第二引擎也可以为其他运行环境,只要能解析服务器下发的代码,并能够适用于客户端的操作系统的引擎均可以,本发明对第一引擎和第二引擎的形式不做具体限定。
另外,由于采用第一引擎对服务器下发的代码进行解析,采用第二引擎对生成的指令流进行处理,这样,解析代码的过程和指令流的处理过程可以并行进行,从而可以提高应用程序运行的效率。
进一步地,通过第二引擎中的基础组件库模块创建应用程序的多个组件,以及通过第二引擎中的CSS格式化模块设置各组件的样式后,用户并不能看到该应用程序的界面,因此,还需要对设置样式后的各组件进行渲染,从而显示出应用程序的界面。
可选的,客户端在接收到服务器发送的代码,并在执行该代码之后,可以将该应用程序的所有功能通过H5的方式来实现,即客户端启动一个Webview来承载该应用程序的内容。
本发明实施例提供的应用程序的运行方法,通过接收用户输入的数据,并将数据发送给服务器,该数据用于指示用户所要访问的应用程序,然后接收服务器发送的应用程序的代码,并执行该代码,以运行应用程序。由于客户端在接收到用户输入的数据之后,会将该数据发送给服务器,服务器通过该数据识别出用户想要访问的应用程序,从而将该应用程序的代码发送给客户端,而客户端本地并不需要下载安装完整版本的应用程序,这样,在该应用程序需要升级时,服务器端会对该应用程序进行升级处理,服务器发送给客户端的代码通常为最新版本的应用程序的代码,从而避免了用户频繁的在客户端本地对应用程序进行下载安装或升级的现象,从而简化了用户的操作,提高了用户的体验。
在图1和图2所示的架构示意图的基础上,图4为本发明实施例提供的应用程序的运行方法实施例二的流程示意图。本发明实施例提供了一种应用程序的运行方法,该方法可以由任意执行应用程序的运行方法的装置来执行,该装置可以通过软件和/或硬件实现。本实施例中,该装置可以集成在服务器中。如图4所示,本实施例的方法可以包括:
步骤401、接收客户端发送的数据,该数据用于指示用户所要访问的应用程序。
在本实施例中,当用户想要通过客户端访问某个应用程序时,可以向客户端输入数据,其中,该数据例如可以为语音数据、手势或者其他数据,例如通过客户端的界面输入预设图案等。客户端在接收到用户输入的数据后,会将该数据发送给服务器。
步骤402、对数据进行解析,确定该应用程序。
在本实施例中,服务器通过对接收到的数据进行分析,可以确定出用户想要访问的应用程序。
步骤403、将应用程序的代码发送给客户端,以使客户端执行代码,以运行应用程序。
在本实施例中,服务器在确定出用户所要访问的应用程序之后,将会获取该应用程序的代码,并将获取到的代码下发给客户端。
在一种可能的实现方式中,该代码可以为JS文件。
本发明实施例提供的应用程序的运行方法,通过接收客户端发送的数据,该数据用于指示用户所要访问的应用程序,然后对数据进行解析,确定应用程序,并将应用程序的代码发送给客户端,以使客户端执行代码,以运行该应用程序。由于客户端在接收到用户输入的数据之后,会将该数据发送给服务器,服务器通过该数据识别出用户想要访问的应用程序,从而将该应用程序的代码发送给客户端,而客户端本地并不需要下载安装完整版本的应用程序,这样,在该应用程序需要升级时,服务器端会对该应用程序进行升级处理,服务器发送给客户端的代码通常为最新版本的应用程序的代码,从而避免了用户需要在客户端本地对应用程序进行下载安装或升级的现象,从而简化了用户的操作,提高了用户的体验。
图5为本发明实施例提供的应用程序的运行方法实施例三的信令流程图。如图5所示,本实施例的方法可以包括:
步骤501、客户端接收用户输入的数据。
步骤502、客户端将数据发送给服务器。
其中,该数据用于指示用户所要访问的应用程序。
步骤503、服务器对数据进行解析,确定该应用程序。
步骤504、服务器将应用程序的代码发送给客户端。
步骤505、客户端执行代码,以运行应用程序。
本发明实施例提供的应用程序的运行方法,通过接收用户输入的数据,并将数据发送给服务器,该数据用于指示用户所要访问的应用程序,然后接收服务器发送的应用程序的代码,并执行该代码,以运行应用程序。由于客户端在接收到用户输入的数据之后,会将该数据发送给服务器,服务器通过该数据识别出用户想要访问的应用程序,从而将该应用程序的代码发送给客户端,而客户端本地并不需要下载安装完整版本的应用程序,这样,在该应用程序需要升级时,服务器端会对该应用程序进行升级处理,服务器发送给客户端的代码通常为最新版本的应用程序的代码,从而避免了用户需要在客户端本地对应用程序进行下载安装或升级的现象,从而简化了用户的操作,提高了用户的体验。
图6为本发明实施例提供的应用程序的运行装置实施例一的结构示意图。该应用程序的运行装置可以为独立的客户端,也可以为集成在客户端中的装置,该装置可以通过软件、硬件或者软硬件结合的方式实现。如图6所示,该装置包括:
接收模块11用于接收用户输入的数据;
发送模块12用于将所述数据发送给服务器,所述数据用于指示所述用户所要访问的应用程序;
所述接收模块11还用于接收所述服务器发送的所述应用程序的代码;
处理模块13用于执行所述代码,以运行所述应用程序。
本发明实施例提供的应用程序的运行装置,通过接收模块11接收用户输入的数据,发送模块12将数据发送给服务器,该数据用于指示用户所要访问的应用程序,接收模块11接收服务器发送的应用程序的代码,并通过处理模块13执行该代码,以运行应用程序。由于客户端在接收到用户输入的数据之后,会将该数据发送给服务器,服务器通过该数据识别出用户想要访问的应用程序,从而将该应用程序的代码发送给客户端,而客户端本地并不需要下载安装完整版本的应用程序,这样,在该应用程序需要升级时,服务器端会对该应用程序进行升级处理,服务器发送给客户端的代码通常为最新版本的应用程序的代码,从而避免了用户频繁的在客户端本地对应用程序进行下载安装或升级的现象,从而简化了用户的操作,提高了用户的体验。
可选的,所述处理模块13,具体用于:
通过第一引擎对所述代码进行解析,获得解析后的代码;
根据所述解析后的代码,生成指令流;
通过第二引擎对所述指令流进行处理,以运行所述应用程序。
可选的,所述指令流包括创建指令流和样式设置指令流;
所述处理模块13,具体用于:
根据所述创建指令流,通过所述第二引擎中的基础组件库模块创建所述应用程序的多个组件;
根据所述样式设置指令流,通过所述第二引擎中的CSS格式化模块设置各所述组件的样式。
可选的,所述处理模块13还用于:
对设置样式后的各组件进行渲染,以显示所述应用程序的界面。
可选的,所述代码包括JS文件。
可选的,所述第一引擎包括V8引擎。
本发明实施例提供的应用程序的运行装置,可以执行上述图3所示的方法实施例,其实现原理和技术效果类似,在此不再赘述。
图7是本发明实施例提供的一种客户端的结构示意图。图7示出了适于用来实现本发明实施方式的示例性客户端12的框图。图7显示的客户端12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,该客户端可以包括发送器70、处理器71、存储器72和至少一个通信总线73。通信总线73用于实现元件之间的通信连接。存储器72可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,存储器72中可以存储各种程序,用于完成各种处理功能以及实现本实施例的方法步骤。另外,该客户端还可以包括接收器74,本实施例中的接收器74可以为相应的具有通信功能和接收信息功能的输入接口,还可以为客户端上的射频模块或者基带模块,本实施例中的发送器70可以为相应的具有通信功能和发送信息功能的输出接口,还可以为客户端上的射频模块或者基带模块。可选的,该发送器70和接收器74可以集成在一个通信接口中,也可以分别为独立的两个通信接口。
在本实施例中,接收器74用于接收用户输入的数据;
发送器70用于将所述数据发送给服务器,所述数据用于指示所述用户所要访问的应用程序;
所述接收器74还用于接收所述服务器发送的所述应用程序的代码;
处理器71用于执行所述代码,以运行所述应用程序。
可选的,所述处理器71具体用于:
通过第一引擎对所述代码进行解析,获得解析后的代码;
根据所述解析后的代码,生成指令流;
通过第二引擎对所述指令流进行处理,以运行所述应用程序。
可选的,所述指令流包括创建指令流和样式设置指令流;
所述处理器71具体用于:
根据所述创建指令流,通过所述第二引擎中的基础组件库模块创建所述应用程序的多个组件;
根据所述样式设置指令流,通过所述第二引擎中的CSS格式化模块设置各所述组件的样式。
可选的,所述处理器71还用于:
对设置样式后的各组件进行渲染,以显示所述应用程序的界面。
可选的,所述代码包括JS文件。
可选的,所述第一引擎包括V8引擎。
本发明实施例提供的客户端,可以执行上述图3所示的方法实施例,其实现原理和技术效果类似,在此不再赘述。
图8为本发明实施例提供的应用程序的运行装置实施例二的结构示意图。该应用程序的运行装置可以为独立的服务器,也可以为集成在服务器中的装置,该装置可以通过软件、硬件或者软硬件结合的方式实现。如图8所示,该装置包括:
接收模块21用于接收客户端发送的数据,所述数据用于指示用户所要访问的应用程序;
确定模块22用于对所述数据进行解析,确定所述应用程序;
发送模块23用于将所述应用程序的代码发送给所述客户端,以使所述客户端执行所述代码,以运行所述应用程序。
本发明实施例提供的应用程序的运行装置,通过接收模块21接收客户端发送的数据,该数据用于指示用户所要访问的应用程序,确定模块22对数据进行解析,确定应用程序,并通过发送模块23将应用程序的代码发送给客户端,以使客户端执行代码,以运行该应用程序。由于客户端在接收到用户输入的数据之后,会将该数据发送给服务器,服务器通过该数据识别出用户想要访问的应用程序,从而将该应用程序的代码发送给客户端,而客户端本地并不需要下载安装完整版本的应用程序,这样,在该应用程序需要升级时,服务器端会对该应用程序进行升级处理,服务器发送给客户端的代码通常为最新版本的应用程序的代码,从而避免了用户需要在客户端本地对应用程序进行下载安装或升级的现象,从而简化了用户的操作,提高了用户的体验。
可选的,所述代码包括JS文件。
图9A示出了本发明服务器的一种可能的结构示意图。服务器900包括:处理单元902和通信单元903。处理单元902用于对服务器900的动作进行控制管理,例如,处理单元902用于支持服务器900执行图3的步骤303,和/或用于本发明所描述的技术的其它过程。通信单元903用于支持服务器900与其它网络实体的通信,例如与图1中示出的客户端之间的通信。服务器900还可以包括存储单元901,用于存储服务器900的计算机程序代码和数据。
其中,处理单元902可以是处理器或控制器,例如可以是CPU,通用处理器,数字信号处理器(DigitalSignalProcessor,DSP),专用集成电路(Application-SpecificIntegrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信单元903可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口。存储单元901可以是存储器。
当处理单元902为处理器,通信单元903为通信接口,存储单元901为存储器时,本发明所涉及的服务器可以为图9B所示的服务器。
参阅图9B所示,该服务器910包括:处理器912、通信接口913、存储器911。可选的,服务器910还可以包括总线914。其中,通信接口913、处理器912以及存储器911可以通过总线914相互连接;总线914可以是外设部件互连标准(PeripheralComponentInterconnect,简称PCI)总线或扩展工业标准结构(ExtendedIndustryStandardArchitecture,简称EISA)总线等。所述总线914可以分为地址总线、数据总线、控制总线等。为便于表示,图9B中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
另外,存储器911中存储有计算机程序,并且被配置为由处理器912执行,该计算机程序包括用于执行如上图4所示实施例所述的方法的指令。
本发明实施例还提供一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机程序,所述计算机程序使得客户端执行前述图3所示实施例提供的应用程序的运行方法。其中,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
本发明实施例还提供一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机程序,所述计算机程序使得服务器执行前述图4所示实施例提供的应用程序的运行方法。其中,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (20)

1.一种应用程序的运行方法,其特征在于,包括:
接收用户输入的数据,并将所述数据发送给服务器,所述数据用于指示所述用户所要访问的应用程序;
接收所述服务器发送的所述应用程序的代码;
执行所述代码,以运行所述应用程序。
2.根据权利要求1所述的方法,其特征在于,所述执行所述代码,以运行所述应用程序,包括:
通过第一引擎对所述代码进行解析,获得解析后的代码;
根据所述解析后的代码,生成指令流;
通过第二引擎对所述指令流进行处理,以运行所述应用程序。
3.根据权利要求2所述的方法,其特征在于,所述指令流包括创建指令流和样式设置指令流;
所述通过第二引擎对所述指令流进行处理包括:
根据所述创建指令流,通过所述第二引擎中的基础组件库模块创建所述应用程序的多个组件;
根据所述样式设置指令流,通过所述第二引擎中的CSS格式化模块设置各所述组件的样式。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
对设置样式后的各组件进行渲染,以显示所述应用程序的界面。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述代码包括JS文件。
6.根据权利要求2-4任一项所述的方法,其特征在于,所述第一引擎包括V8引擎。
7.一种应用程序的运行方法,其特征在于,包括:
接收客户端发送的数据,所述数据用于指示用户所要访问的应用程序;
对所述数据进行解析,确定所述应用程序;
将所述应用程序的代码发送给所述客户端,以使所述客户端执行所述代码,以运行所述应用程序。
8.根据权利要求7所述的方法,其特征在于,所述代码包括JS文件。
9.一种应用程序的运行装置,其特征在于,包括:
接收模块,用于接收用户输入的数据;
发送模块,用于将所述数据发送给服务器,所述数据用于指示所述用户所要访问的应用程序;
所述接收模块,还用于接收所述服务器发送的所述应用程序的代码;
处理模块,用于执行所述代码,以运行所述应用程序。
10.根据权利要求9所述的装置,其特征在于,所述处理模块,具体用于:
通过第一引擎对所述代码进行解析,获得解析后的代码;
根据所述解析后的代码,生成指令流;
通过第二引擎对所述指令流进行处理,以运行所述应用程序。
11.根据权利要求10所述的装置,其特征在于,所述指令流包括创建指令流和样式设置指令流;
所述处理模块,具体用于:
根据所述创建指令流,通过所述第二引擎中的基础组件库模块创建所述应用程序的多个组件;
根据所述样式设置指令流,通过所述第二引擎中的CSS格式化模块设置各所述组件的样式。
12.根据权利要求11所述的装置,其特征在于,所述处理模块,还用于:
对设置样式后的各组件进行渲染,以显示所述应用程序的界面。
13.根据权利要求9-12任一项所述的装置,其特征在于,所述代码包括JS文件。
14.根据权利要求10-12任一项所述的装置,其特征在于,所述第一引擎包括V8引擎。
15.一种应用程序的运行装置,其特征在于,包括:
接收模块,用于接收客户端发送的数据,所述数据用于指示用户所要访问的应用程序;
确定模块,用于对所述数据进行解析,确定所述应用程序;
发送模块,用于将所述应用程序的代码发送给所述客户端,以使所述客户端执行所述代码,以运行所述应用程序。
16.根据权利要求15所述的装置,其特征在于,所述代码包括JS文件。
17.一种客户端,其特征在于,包括:
处理器;
存储器;以及
计算机程序;
其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如权利要求1-6任一项所述的方法的指令。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得客户端执行权利要求1-6任一项所述的方法。
19.一种服务器,其特征在于,包括:
处理器;
存储器;以及
计算机程序;
其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如权利要求7或8所述的方法的指令。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得服务器执行权利要求7或8所述的方法。
CN201810340071.4A 2018-04-16 2018-04-16 应用程序的运行方法、装置及存储介质 Pending CN108563475A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810340071.4A CN108563475A (zh) 2018-04-16 2018-04-16 应用程序的运行方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810340071.4A CN108563475A (zh) 2018-04-16 2018-04-16 应用程序的运行方法、装置及存储介质

Publications (1)

Publication Number Publication Date
CN108563475A true CN108563475A (zh) 2018-09-21

Family

ID=63535432

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810340071.4A Pending CN108563475A (zh) 2018-04-16 2018-04-16 应用程序的运行方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN108563475A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992248A (zh) * 2019-02-25 2019-07-09 百度在线网络技术(北京)有限公司 语音应用的实现方法、装置、设备及计算机可读存储介质
CN114489681A (zh) * 2022-04-07 2022-05-13 南京飓风引擎信息技术有限公司 一种基于浏览器内核的移动端跨平台开发系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140373168A1 (en) * 2013-04-12 2014-12-18 Tencent Technology (Shenzhen) Company Limited Method of protecting privacy data of an application program and apparatus using the same
CN106775862A (zh) * 2016-12-08 2017-05-31 蓝信工场(北京)科技有限公司 应用加载方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140373168A1 (en) * 2013-04-12 2014-12-18 Tencent Technology (Shenzhen) Company Limited Method of protecting privacy data of an application program and apparatus using the same
CN106775862A (zh) * 2016-12-08 2017-05-31 蓝信工场(北京)科技有限公司 应用加载方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
朱育发: "《jQuery与jQuery Mobile开发完全技术宝典》", 31 October 2014, 中国铁道出版社 *
计算机辅导全书专家组: "《2010年全国硕士研究生入学统一考试计算机专业基础综合辅导全书》", 30 September 2009, 山东人民出版社 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992248A (zh) * 2019-02-25 2019-07-09 百度在线网络技术(北京)有限公司 语音应用的实现方法、装置、设备及计算机可读存储介质
CN109992248B (zh) * 2019-02-25 2022-07-29 阿波罗智联(北京)科技有限公司 语音应用的实现方法、装置、设备及计算机可读存储介质
US11676587B2 (en) 2019-02-25 2023-06-13 Apollo Intelligent Connectivity (Beijing) Technology Co., Ltd. Method, apparatus and device for implementing voice application, computer readable storage medium
CN114489681A (zh) * 2022-04-07 2022-05-13 南京飓风引擎信息技术有限公司 一种基于浏览器内核的移动端跨平台开发系统及方法
CN114489681B (zh) * 2022-04-07 2022-06-28 南京飓风引擎信息技术有限公司 一种基于浏览器内核的移动端跨平台开发系统及方法

Similar Documents

Publication Publication Date Title
CN105100191B (zh) 一种云编译实现Java应用安装的方法、装置及系统
CN102622241B (zh) 一种软件升级方法及装置
CN105765527B (zh) 用于定制的软件开发包(sdk)的方法和装置
CN101421711B (zh) 用于资源受限设备的虚拟执行系统
CN110532020A (zh) 一种微服务编排的数据处理方法、装置及系统
CN107085580B (zh) 客户端展示页面的方法及客户端
US11240290B2 (en) Application download method and apparatus, application sending method and apparatus, and system
US11556348B2 (en) Bootstrapping profile-guided compilation and verification
CN103970563B (zh) 动态加载安卓类的方法
CN107451162A (zh) 网络资源访问设备、混合设备及方法
CN109460250B (zh) 一种应用程序的生成方法及设备
CN114064024A (zh) 微应用的开发方法、装置、设备、存储介质及程序产品
CN103179166A (zh) 在客户端中提供服务的方法和客户端
CN102946415A (zh) 一种移动终端本地应用的实现方法和装置
CN107704499A (zh) 一种应用程序的页面跳转控制方法及装置
CN111144878B (zh) 指令生成方法与指令生成装置
CN108563475A (zh) 应用程序的运行方法、装置及存储介质
CN102402455A (zh) 调用动态链接库的方法和装置
CN114816672A (zh) 虚拟机的创建方法、装置、电子设备和存储介质
CN108334360A (zh) 应用程序动态加载的方法、装置、存储介质和计算机设备
US9164817B2 (en) Mobile communication terminal to provide widget expansion function using message communication, and operation method of the mobile communication terminal
CN114048415A (zh) 表单生成方法及装置、电子设备和计算机可读存储介质
CN108804236B (zh) 一种aidl文件的共享方法及系统
Mongiello et al. AC-contract: Run-time verification of context-aware applications
CN109933355A (zh) 应用程序升级方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180921