CN112130909B - 系统和功能执行的方法 - Google Patents
系统和功能执行的方法 Download PDFInfo
- Publication number
- CN112130909B CN112130909B CN201910551316.2A CN201910551316A CN112130909B CN 112130909 B CN112130909 B CN 112130909B CN 201910551316 A CN201910551316 A CN 201910551316A CN 112130909 B CN112130909 B CN 112130909B
- Authority
- CN
- China
- Prior art keywords
- module
- target
- service
- video
- display
- 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
Images
Classifications
-
- 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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- 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/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- 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/4401—Bootstrapping
- G06F9/442—Shutdown
-
- 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/44594—Unloading
Abstract
本发明公开了一种系统和功能执行的方法,所述系统适用于运行在电子设备中的应用程序,所述系统包括显示层和公共服务层,所述显示层包括显示框架模块和多个业务模块,所述公共服务层包括管理模块和多个公共服务模块。采用本发明,可以减少资源占用。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种系统和功能执行的方法。
背景技术
在设备进行各种不同业务的过程中,经常会涉及一种情况,两个不同业务的模块进行各自不同的处理,不过他们的具有一部分处理是相同的。
例如,在安防网络应用系统中,终端的两种不同的业务分别是在不同的情景触发下显示某个监控设备的监控视频,这样,如果第一种业务的触发满足了,该业务的进程则会在屏幕中显示窗口,并向该监控设备发起视频取流,获取监控视频在窗口中显示,此后,如果第二种业务的触发满足了,该业务的进程则会在屏幕中显示另一个窗口,并向该监控设备发起视频取流,获取监控视频在另一个窗口中显示。其中,监控设备可以用于拍摄某建筑一楼的门禁视频,第一种业务的触发可以是监控设备上电,第二种业务的触发可以是有用户刷卡触发门禁。上述只是例举了一种情况,各种其它情况这里不一一例举。
可见,系统中如果存在上述情况,当大量的业务并行执行的时候,会存在资源占用过大的问题。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种软件框架和功能执行的方法。所述技术方案如下:
第一方面,提供了一种软件框架,所述软件框架适用于运行在电子设备中的应用程序,所述软件框架包括显示层和公共服务层,所述显示层包括显示框架模块和多个业务模块,所述公共服务层包括管理模块和多个公共服务模块,其中:
所述显示框架模块,用于接收用户的业务执行指令,调用所述业务执行指令中的目标功能信息对应的业务模块;
所述业务模块,用于如果判定所述目标功能信息对应的功能需要由公共服务模块实现,则确定所述目标功能信息对应的目标公共服务模块,并通知所述管理模块;
所述管理模块,用于确定所述目标公共服务模块是否在进行与所述目标功能信息相关联的目标服务处理,如果所述目标公共服务模块在进行所述目标服务处理,则将所述目标服务处理的输出数据传递给所述业务模块,如果所述目标公共服务模块未进行所述目标服务处理,则调用所述目标公共服务模块进行所述目标服务处理,将所述目标服务处理的输出数据传递给所述业务模块;
所述业务模块,用于基于所述输出数据执行所述功能。
可选的,所述显示框架模块,用于接收用户的携带所述目标功能信息的业务关闭指令,关闭所述目标功能信息对应的业务模块,并向所述管理模块发送携带所述目标功能信息的业务关闭通知;
所述管理模块,用于确定除所述目标功能信息对应的业务模块外,目标公共服务模块当前是否向其它业务模块传递输出数据,如果当前未向其它业务模块传递输出数据,则关闭所述目标公共服务模块。
可选的,所述业务执行指令为视频显示指令,所述目标功能信息为显示功能标识,所述目标功能信息对应的业务模块为显示模块,所述目标功能信息对应的功能为显示功能,所述目标公共服务模块为视频取流模块,所述输出数据为目标监控设备的视频流;
所述显示框架模块,用于接收用户输入的所述视频显示指令,获取所述视频显示指令中的所述显示功能标识和目标监控设备的设备标识,调用所述显示模块;
所述显示模块,用于如果判定所述显示功能需要由公共服务模块实现,则基于所述显示功能标识,确定所述视频取流模块,将所述视频取流模块和所述目标监控设备的设备标识通知所述管理模块;
所述管理模块,用于确定所述视频取流模块是否在对所述目标监控设备的视频流进行取流,如果所述视频取流模块在对所述目标监控设备的视频流进行取流,则将所述视频取流模块得到的所述目标监控设备的视频流传递给所述显示模块,如果所述视频取流模块未对所述目标监控设备的视频流进行取流,则调用所述视频取流模块对所述目标监控设备的视频流进行取流,将所述视频取流模块得到的所述目标监控设备的视频流传递给所述显示模块。
可选的,所述管理模块,用于:
确定当前是否存在处于运行状态的视频取流进程;
如果存在当前处于运行状态的视频取流进程,则确定所述视频取流进程向服务器取流的视频流对应的设备标识是否包括目标监控设备的设备标识;
如果所述视频取流进程向服务器取流的视频流对应的设备标识包括目标监控设备的设备标识,则确定所述视频取流模块在对所述目标监控设备的视频流进行取流,如果所述视频取流进程向服务器取流的视频流对应的设备标识不包括目标监控设备的设备标识,则确定所述视频取流模块未对所述目标监控设备的视频流进行取流。
可选的,所述公共服务层还包括存储模块,所述多个公共服务模块中包括登录验证模块;
所述存储模块,用于存储所述登录验证模块获取的登录凭证信息;
所述管理模块,用于如果所述目标公共服务模块未进行所述目标服务处理,则确定所述存储模块是否存储有所述登录凭证信息,如果所述存储模块存储有所述登录凭证信息,则调用所述目标公共服务模块,基于所述登录凭证信息,进行所述目标服务处理,如果所述存储模块未存储所述登录凭证信息,则调用所述登录验证模块向服务器进行登录验证,得到所述登录凭证信息,将所述登录凭证信息存储在所述存储模块中,并调用所述目标公共服务模块,基于所述登录凭证信息,进行所述目标服务处理。
可选的,所述公共服务层还包括存储模块,所述多个公共服务模块中包括数据获取模块;
所述存储模块,用于存储所述数据获取模块向服务器获取的数据;
所述业务模块,还用于如果判定所述目标功能信息对应的功能需要目标数据实现,则向所述管理模块发送所述目标数据的查询请求;
所述管理模块,还用于如果所述存储模块存储有所述目标数据,则将所述目标数据传递给所述业务模块,如果所述存储模块未存储所述目标数据,则调用所述数据获取模块向所述服务器获取所述目标数据,将所述目标数据存储在所述存储模块中,并将所述目标数据传递给所述业务模块;
所述业务模块,还用于基于所述目标数据执行所述功能。
第二方面,提供了一种功能执行的方法,所述方法应用于软件框架,所述软件框架适用于运行在电子设备中的应用程序,所述软件框架包括显示层和公共服务层,所述显示层包括显示框架模块和多个业务模块,所述公共服务层包括管理模块和多个公共服务模块,所述方法包括:
所述显示框架模块接收用户的业务执行指令,调用所述业务执行指令中的目标功能信息对应的业务模块;
所述业务模块如果判定所述目标功能信息对应的功能需要由公共服务模块实现,则确定所述目标功能信息对应的目标公共服务模块,并通知所述管理模块;
所述管理模块确定所述目标公共服务模块是否在进行与所述目标功能信息相关联的目标服务处理,如果所述目标公共服务模块在进行所述目标服务处理,则将所述目标服务处理的输出数据传递给所述业务模块,如果所述目标公共服务模块未进行所述目标服务处理,则调用所述目标公共服务模块进行所述目标服务处理,将所述目标服务处理的输出数据传递给所述业务模块;
所述业务模块基于所述输出数据执行所述功能。
可选的,所述方法还包括:
所述显示框架模块接收用户的携带所述目标功能信息的业务关闭指令,关闭所述目标功能信息对应的业务模块,并向所述管理模块发送携带所述目标功能信息的业务关闭通知;
所述管理模块确定除所述目标功能信息对应的业务模块外,目标公共服务模块当前是否向其它业务模块传递输出数据,如果当前未向其它业务模块传递输出数据,则关闭所述目标公共服务模块。
可选的,所述业务执行指令为视频显示指令,所述目标功能信息为显示功能标识,所述目标功能信息对应的业务模块为显示模块,所述目标功能信息对应的功能为显示功能,所述目标公共服务模块为视频取流模块,所述输出数据为目标监控设备的视频流;
所述显示框架模块接收用户的业务执行指令,调用所述业务执行指令中的目标功能信息对应的业务模块,包括:所述显示框架模块接收用户输入的所述视频显示指令,获取所述视频显示指令中的所述显示功能标识和目标监控设备的设备标识,调用所述显示模块;
所述业务模块如果判定所述目标功能信息对应的功能需要由公共服务模块实现,则确定所述目标功能信息对应的目标公共服务模块,并通知所述管理模块,包括:所述显示模块如果判定所述显示功能需要由公共服务模块实现,则基于所述显示功能标识,确定所述视频取流模块,将所述视频取流模块和所述目标监控设备的设备标识通知所述管理模块;
所述管理模块确定所述目标公共服务模块是否在进行与所述目标功能信息相关联的目标服务处理,如果所述目标公共服务模块在进行所述目标服务处理,则将所述目标服务处理的输出数据传递给所述业务模块,如果所述目标公共服务模块未进行所述目标服务处理,则调用所述目标公共服务模块进行所述目标服务处理,将所述目标服务处理的输出数据传递给所述业务模块,包括:
所述管理模块确定所述视频取流模块是否在对所述目标监控设备的视频流进行取流,如果所述视频取流模块在对所述目标监控设备的视频流进行取流,则将所述视频取流模块得到的所述目标监控设备的视频流传递给所述显示模块,如果所述视频取流模块未对所述目标监控设备的视频流进行取流,则调用所述视频取流模块对所述目标监控设备的视频流进行取流,将所述视频取流模块得到的所述目标监控设备的视频流传递给所述显示模块。
可选的,所述管理模块确定所述视频取流模块是否在对所述目标监控设备的视频流进行取流,包括:
如果存在当前处于运行状态的视频取流进程,则确定所述视频取流进程向服务器取流的视频流对应的设备标识是否包括目标监控设备的设备标识;
如果所述视频取流进程向服务器取流的视频流对应的设备标识包括目标监控设备的设备标识,则确定所述视频取流模块在对所述目标监控设备的视频流进行取流,如果所述视频取流进程向服务器取流的视频流对应的设备标识不包括目标监控设备的设备标识,则确定所述视频取流模块未对所述目标监控设备的视频流进行取流。
可选的,所述公共服务层还包括存储模块,所述多个公共服务模块中包括登录验证模块;
所述如果所述目标公共服务模块未进行所述目标服务处理,则调用所述目标公共服务模块进行所述目标服务处理,包括:
如果所述目标公共服务模块未进行所述目标服务处理,则确定所述存储模块是否存储有所述登录凭证信息,如果所述存储模块存储有所述登录凭证信息,则调用所述目标公共服务模块,基于所述登录凭证信息,进行所述目标服务处理,如果所述存储模块未存储所述登录凭证信息,则调用所述登录验证模块向服务器进行登录验证,得到所述登录凭证信息,将所述登录凭证信息存储在所述存储模块中,并调用所述目标公共服务模块,基于所述登录凭证信息,进行所述目标服务处理。
可选的,所述公共服务层还包括存储模块,所述多个公共服务模块中包括数据获取模块;
所述方法还包括:
所述业务模块如果判定所述目标功能信息对应的功能需要目标数据实现,则向所述管理模块发送所述目标数据的查询请求;
所述管理模块如果所述存储模块存储有所述目标数据,则将所述目标数据传递给所述业务模块,如果所述存储模块未存储所述目标数据,则调用所述数据获取模块向所述服务器获取所述目标数据,将所述目标数据存储在所述存储模块中,并将所述目标数据传递给所述业务模块;
所述业务模块基于所述目标数据执行所述功能。
第三方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上述第二方面所述的方法。
第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上述第二方面所述的方法。
本发明实施例提供的技术方案带来的有益效果至少包括:
本发明实施例中,将业务过程中不同业务公共的处理,交给公共服务层进行,这样,在不同的业务并行进行的时候,这些公共的处理可以由相同的公共服务模块来执行,可以很好的防止相同的处理被不同进程重复执行,从而,可以减少资源占用。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种软件框架图的结构示意图;
图2是本发明实施例提供的一种视频流的显示过程的流程示意图;
图3是本发明实施例提供的一种视频流的显示过程的流程示意图;
图4是本发明实施例提供的一种视频流的显示过程的流程示意图;
图5是本发明实施例提供的一种软件框架图的结构示意图;
图6是本发明实施例提供的一种功能执行的方法的流程示意图;
图7是本发明实施例提供的一种终端结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种软件框架,如图5所示,该软件框架适用于运行在电子设备中的应用程序,该电子设备一般可以为终端,应用程序可以为各种类型的应用程序,如安防网络系统中的应用程序。该软件框架可以包括显示层和公共服务层,显示层包括显示框架模块和多个业务模块,公共服务层包括管理模块和多个公共服务模块。
其中,显示框架模块为主要面向客户使用的用户操作中心,负责显示应用操作界面,其中包括多种操作控件,用户可以在应用操作界面中进行各种操作,显示框架模块就可以接收到相应的指令,进而触发相应的处理。业务模块负责具体的业务,如显示业务、数据处理业务等,相应的业务模块就可以是显示模块、数据处理模块等。业务模块需要执行业务的时候,可以被调用,可以建立相应的进程,以承载被调用的业务模块。公共服务模块负责公共的业务,多个业务模块可以在同一公共服务模块调取相同的输出数据,公共服务模块可以是视频取流模块、登录验证模块、数据获取模块等。
下面对上述各模块在一次业务执行指令的处理过程中各自负责的功能:
显示框架模块,用于接收用户的业务执行指令,调用业务执行指令中的目标功能信息对应的业务模块。
业务模块,用于如果判定目标功能信息对应的功能需要由公共服务模块实现,则确定目标功能信息对应的目标公共服务模块,并通知管理模块。
管理模块,用于确定目标公共服务模块是否在进行与目标功能信息相关联的目标服务处理,如果目标公共服务模块在进行目标服务处理,则将目标服务处理的输出数据传递给所述业务模块,如果目标公共服务模块未进行目标服务处理,则调用目标公共服务模块进行目标服务处理,将目标服务处理的输出数据传递给业务模块。这里输出数据是传递给向管理模块发通知的业务模块。
业务模块,用于基于输出数据执行上述功能。
显示框架模块进行的各种处理都通过显示框架进程来进行。显示框架模块在调用业务模块的时候建立相应的业务进程,用来承载业务模块的运行。业务模块进行的各种处理都通过业务进程来进行。管理模块承载于管理进程上运行。管理模块进行的各种处理都通过管理进程来进行。管理模块在调用公共服务模块的时候建立相应的公共服务进程,用来承载公共服务模块的运行。公共服务模块进行的各种处理都通过公共服务进程来进行。
上述处理中,管理模块如果确定目标公共服务模块未进行目标服务处理,但是目标公共服务模块出于运行状态,此时管理模块可以确定当前目标公共服务模块对应的目标公共服务进程的资源占用信息,如CPU占用率、内存占用量等,如果资源占用信息中有任一项或多项超过预设阈值,则建立一个新的公共服务进程,执行目标服务处理。例如,CPU占用率的阈值为70%,内存占用率的阈值为80%。
可选的,关闭某业务的时候,各某块的处理可以如下:
显示框架模块,用于接收用户的携带目标功能信息的业务关闭指令,关闭目标功能信息对应的业务模块,并向管理模块发送携带目标功能信息的业务关闭通知;管理模块,用于确定除目标功能信息对应的业务模块外,目标公共服务模块当前是否向其它业务模块传递输出数据,如果当前未向其它业务模块传递输出数据,则关闭目标公共服务模块。
因为公共服务模块中目标服务处理的输出数据可能被多个业务模块使用,所以在关闭公共服务模块时,需要确认一下是否还有业务模块正在调用输出数据,如果没有则可以关闭,如果有,则不能关闭公共服务模块。
可选的,所述公共服务层还包括存储模块,所述多个公共服务模块中包括登录验证模块。如果终端进行某项处理的时候需要登录服务器,各模块的处理可以如下:
所述存储模块,用于存储所述登录验证模块获取的登录凭证信息。
所述管理模块,用于如果目标公共服务模块未进行目标服务处理,则确定存储模块是否存储有登录凭证信息,如果存储模块存储有登录凭证信息,则调用目标公共服务模块,基于所述登录凭证信息,进行目标服务处理,如果存储模块未存储登录凭证信息,则调用登录验证模块向服务器进行登录验证,得到登录凭证信息,将登录凭证信息存储在存储模块中,并调用目标公共服务模块,基于登录凭证信息,进行目标服务处理。
在调用登录验证模块的时候管理进程可以建立登录验证进程,登录验证进程承载登录验证模块的运行。基于以上处理,如果终端向服务器进行过一次登录验证过程,就会获取到登录凭证信息,存储在存储模块中,这样,后续如果再有其它处理需要登录服务器的时候,则无需进行登录验证的过程,只需调取存储模块中的登录凭证信息,便可以基于登录凭证信息进行相应的处理。
下面结合视频取流的应用场景对上述软件框架进行进一步说明。应用程序以安防网络应用系统相应的应用程序为例。在终端的应用程序中,可以包括多个模块,按照用途可以分为两层:显示层以及公共服务层,显示层可以包括显示框架模块以及显示模块,如图1所示。其中,显示框架模块为主要面向客户使用的用户操作中心,包含用户登录验证操作等模块;显示框架模块可以显示应用程序的首页,首页读取本地模块配置文件,可以采用列表的形式展示显示模块,对应的显示进程开启后以窗口嵌入的方式附加到显示框架模块中,实现视频的显示。
终端的应用程序启动后开启显示框架进程,向服务器请求进行登录验证,登录验证成功后服务器向终端发送验证成功消息,终端接收到验证成功消息后,根据显示框架模块进程显示应用程序的框架首页。以显示模块为例,显示模块中可以包括多个子模块,每个子模块在执行时可以分别建立一个进程,每个子模块之间的进程可以不相互干扰。举例来说,第一子模块用于显示视频拍摄设备持续拍摄的视频,第二子模块用于显示预设触发事件发生时视频拍摄设备拍摄的预设时长的视频,例如,视频拍摄设备为监控设备,用于拍摄某建筑一楼的门禁视频,第一子模块持续显示视频拍摄设备拍摄的监控视频,当有用户刷卡触发门禁时,触发第二子模块显示预设时长的监控视频,用于提醒监控人员查看触发门禁的用户。
这种情况下,第一子模块与第二子模块显示的是同一个监控设备采集到的监控视频时,则第一子模块与第二子模块分别建立进程,向服务器进行取流解码操作。也就是说,这种情况下第一子模块与第二子模块要进行两次取流解码操作,增加了服务器的推流负担。
为了解决上述问题,申请人想到将取流操作的部分代码从子模块中剥离出来,形成独立的功能模块。其中,进程间信息交互的方式可以为有名管道,也可以通过Socket套接字的方式,以进程间通信的方式传输协议报文时,报文格式可以是JSON(JavaScriptObject Notation,JS对象简谱),或者是XML(Extensible Markup Language,可扩展标记语言),本发明对此不做限定。
在视频取流过程中,上述的业务执行指令为视频显示指令,目标功能信息为显示功能标识,目标功能信息对应的业务模块为显示模块,目标功能信息对应的功能为显示功能,目标公共服务模块为视频取流模块,输出数据为目标监控设备的视频流。相应的,各模块的功能可以如下:
显示框架模块,用于接收用户输入的视频显示指令,获取视频显示指令中的显示功能标识和目标监控设备的设备标识,调用显示模块。
显示模块,用于如果判定显示功能需要由公共服务模块实现,则基于显示功能标识,确定视频取流模块,将视频取流模块和所述目标监控设备的设备标识通知管理模块。
管理模块,用于确定视频取流模块是否在对所述目标监控设备的视频流进行取流,如果视频取流模块在对目标监控设备的视频流进行取流,则将视频取流模块得到的目标监控设备的视频流传递给显示模块,如果视频取流模块未对目标监控设备的视频流进行取流,则调用视频取流模块对目标监控设备的视频流进行取流,将视频取流模块得到的目标监控设备的视频流传递给显示模块。
下面从进程的角度进行方案的处理流程详细说明,如图2所示,处理流程可以包括如下的步骤:
在步骤201中,终端接收对应目标监控设备的视频显示指令,建立视频显示进程。
一个可能的实施例中,当终端根据显示模块显示视频时,如用户先将某监控设备(即目标监控设备)的显示窗口打开,触发显示框架模块接收对应目标监控设备的视频显示指令,然后显示框架进程调用显示模块,建立视频显示进程。
在步骤202中,终端确定当前是否存在对目标监控设备的视频流进行取流的视频取流进程。
一个可能的实施例中,视频显示需要终端向服务器获取视频流,然后解码并显示。因此,视频显示进程调用视频取流模块,启动视频取流进程,使得视频取流进程向服务器获取视频流。
为了减少资源浪费,减轻服务器的推流负担,可以在视频显示进程启动视频取流进程时,管理进程判断当前是否在对目标监控设备的视频流进行取流的视频取流进程。
可选地,判断当前是否在对目标监控设备的视频流进行取流的视频取流进程的处理步骤可以如下:确定当前是否存在处于运行状态的视频取流进程;如果存在当前处于运行状态的视频取流进程,则确定视频取流进程向服务器取流的视频流对应的设备标识是否包括目标监控设备的设备标识;如果视频取流进程向服务器取流的视频流对应的设备标识包括目标监控设备的设备标识,则确定视频取流模块在对目标监控设备的视频流进行取流,如果视频取流进程向服务器取流的视频流对应的设备标识不是目标监控设备的设备标识,则确定视频取流模块未对目标监控设备的视频流进行取流。上述处理可以由管理模块执行。
一个可能的实施例中,如果存在当前处于运行状态的视频取流进程,且该视频取流进程向服务器取流的视频流对应的设备标识是目标监控设备的设备标识,说明有其它视频显示进程建立了视频取流进程,且该视频取流进程在向服务器获取目标监控设备的视频流,因此,可以确定存在对目标监控设备的视频流进行取流的视频取流进程。
如果存在当前处于运行状态的视频取流进程,而该视频取流进程向服务器取流的视频流对应的设备标识不是目标监控设备的设备标识,说明有其它视频显示进程建立了视频取流进程,但该视频取流进程向服务器获取的视频流并不是目标监控设备的视频流,因此,终端可以确定不存在对目标控制设备的视频流进行取流的视频取流进程。
需要说明的是,判断视频取流进程当前是否在对目标监控设备的视频流进行取流时,可以判断视频取流进程当前取流的视频流对应的设备标识是否为目标监控设备的设备标识,或者判断视频取流进程当前取流的视频流对应的设备的虚拟地址是否为目标监控设备的虚拟地址。当然,也可以根据其它方式判断视频取流进程当前是否在对目标监控设备的视频流进行取流,本发明对此不做限制。
在步骤203中,如果存在对目标监控设备的视频流进行取流的视频取流进程,则终端将视频取流进程得到的目标监控设备的视频流传递给视频显示进程。
一个可能的实施例中,如果视频取流进程当前在对目标监控设备的视频流进行取流,这样的话,说明当前存在其他进程显示目标监控设备的视频,终端无需再次向服务器进行取流,终端调用主程序通知视频显示进程,使得视频显示进程向管理进程索取视频取流进程得到的目标监控设备的视频流,管理进程将视频取流进程得到的目标监控设备的视频流传递给视频显示进程,视频显示进程对视频流进程解码并在终端的显示设备上显示出来。这样,多个获取同一资源的进程只需向服务器取流一次即可,避免了多次向服务器取流造成的资源浪费,同时减轻了服务器的推流负担。
在步骤204中,如果不存在对目标监控设备的视频流进行取流的视频取流进程,则终端建立视频取流进程,通过视频取流进程对目标监控设备的视频流进行取流,将视频取流进程得到的目标监控设备的视频流传递给视频显示进程。
一个可能的实施例中,管理进程对视频取流进程进行判断时,如果视频取流进程当前处于运行状态,但不是对目标监控设备的视频进程取流,或者视频取流进程未处于运行状态,说明当前视频取流进程未对目标监控设备的视频流进行取流,因此管理进程调用视频取流模块,建立视频取流进程。
终端通过视频取流进程,向服务器发送视频取流请求,该视频取流请求中携带有目标监控设备的设备标识。服务器接收到视频取流请求后,根据其中携带的目标监控设备的设备标识,向目标监控设备发送视频流获取请求,目标监控设备将采集到的视频流按照视频流单元持续发送给服务器,服务器将接收到的视频流持续发送给终端的视频取流模块。管理进程将视频取流进程得到的目标监控设备的视频流传递给视频显示进程,视频显示进程对视频流进程解码并在终端的显示设备上显示出来。
可选地,为了提高数据的安全性,终端通过视频取流进程向服务器进行取流时,可以进行登录验证,相应的处理方式可以如下:如果不存在对目标监控设备的视频流进行取流的视频取流进程,则终端建立视频取流进程,并确定登录验证进程是否已获取登录凭证信息;如果登录凭证进程已获取登录凭证信息,则终端通过视频取流进程,基于登录凭证信息,对目标监控设备的视频流进行取流;如果登录凭证进程未获取登录凭证信息,则终端启动登录验证进程,通过登录验证进程向服务器进行登录验证,得到登录凭证信息,终端将登录凭证信息传递给视频取流进程,通过视频取流进程,基于登录凭证信息,对目标监控设备的视频流进行取流。公共服务层中可以设置有存储模块,登录凭证信息可以存储在存储模块中。公共服务模块中可以包括登录验证模块,用于进行登录验证以获取登录凭证信息。
这样,终端根据视频取流进程向服务器对目标监控设备的视频流进行取流时,可以进行登录验证,提高了数据的安全性。而且,为了减少资源的浪费,减少出现终端每次取流都需要向服务器进行登录验证的情况,可以由终端在第一次进行取流时进行登录验证,并保存登录验证通过得到的登录凭证信息,这样,以后的取流操作只需携带登录凭证信息即可,无需反复进行登录验证,直至登录凭证信息被清空。这样,减少了资源的浪费。
在步骤205中,通过视频显示进程,终端显示目标监控设备的视频流。
一个可能的实施例中,终端根据视频取流进程持续获取视频流,然后,执行视频显示进程对目标监控设备的视频流进行解码并显示。
这样,如图3所示,当第一子模块显示第一监控视频,第二子模块显示第一监控视频以及第二监控视频时,只需要建立第一监控视频取流进程以及第二监控视频取流进程,并向服务器进行取流操作,然后,第一子模块向第一监控视频取流进程获取第一监控视频流,第二子模块向第一监控视频取流进程以及第二监控视频取流进程分别获取第一监控视频流以及第二监控视频流,并各自进行解码以及显示。
可选地,显示目标监控设备的视频流之后,如果终端检测到视频显示进程的关闭指令,相应的处理步骤可以如下:当检测到对应视频显示进程的关闭指令时,终端关闭视频显示进程,并确定当前是否存在显示目标监控设备的视频流的其它视频显示进程;如果当前不存在显示目标监控设备的视频流的其它视频显示进程,则终端关闭视频取流进程。
一个可能的实施例中,终端显示目标监控设备拍摄的视频后,用户可能会操作终端关闭了目标监控设备的视频显示,或者,当目标监控设备拍摄的视频显示时长达到预设时长时,终端自动关闭目标监控设备的视频显示。当显示框架模块检测到视频显示进程对应的关闭指令时,终端关闭视频显示进程,然后,判断当前是否存储显示目标监控设备的视频流的其它视频显示进程,相应的处理步骤可参考上述步骤202中的处理步骤,此处不做赘述。
如果终端确定当前存在显示目标监控设备的视频流的其它视频显示进程,则这个其它视频显示进程还需要根据视频取流进程对目标监控设备的视频流进行取流,因此,终端无需关闭视频取流进程。如果终端确定当前不存在显示目标监控设备的视频流的其它视频显示进程,说明当前的视频取流进程不再进行取流操作,为了减少对资源的浪费,减轻终端的处理负担,终端可以关闭视频取流进程。
需要说明的是,上述实施例是以视频取流进程为例,对业务逻辑重叠度较高且资源开销较大的操作剥离出来形成独立的功能模块的思路进行说明,即视频取流剥离出来只是一个示例性的实施例,除此之外,基于将操作剥离出来形成独立的功能模块的思路,还可以对其它的操作形成独立的功能模块,例如,将解码操作剥离出来形成独立的功能模块。当然,也可以将取流操作和解码操作剥离出来并合并为一个功能模块,这样,终端可以通过取流解码进程向服务器获取数据流并解码,然后通过视频显示进程显示视频流。本发明对此不作限定。
本发明实施例中,根据目标监控设备的视频显示指令建立视频显示进程后,判断视频取流进程当前是否在对目标监控设备的视频流进行取流,如果视频取流进程在对目标监控设备的视频流进行取流,则将视频取流进程得到的目标监控设备的视频流传递给视频显示进程,如果没有视频取流进程在对目标监控设备的视频流进行取流,则建立视频取流进程进行取流操作。这样,可以使同时请求相同的视频资源的多个进程仅进行一次取流操作,减少了对同一视频资源进行多次取流造成的资源浪费,减少了服务器的推流负担。
下面结合数据获取的应用场景对上述软件框架进行进一步说明。公共服务层还包括存储模块,多个公共服务模块中包括数据获取模块;存储模块,用于存储数据获取模块向服务器获取的数据;业务模块,还用于如果判定目标功能信息对应的功能需要目标数据实现,则向管理模块发送目标数据的查询请求;管理模块,还用于如果存储模块存储有目标数据,则将目标数据传递给发送查询请求的业务模块,如果存储模块未存储目标数据,则调用数据获取模块向服务器获取目标数据,将目标数据存储在存储模块中,并将目标数据传递给发送查询请求的业务模块;发送查询请求的业务模块,还用于基于目标数据执行上述功能。
其中,业务模块可以是数据处理模块,承载数据处理模块的进程可以是数据处理进程。管理模块在调用数据获取模块的时候可以建立数据获取进程,用来承载数据获取模块的运行。
下面从进程的角度进行方案的处理流程详细说明,如图4所示,处理流程可以包括如下步骤:
在步骤401中,当接收到对应目标数据的数据处理指令时,终端建立数据处理进程。
一个可能的实施例中,用户在对终端的操作时,显示框架模块接收到某数据(可称为目标数据)的数据处理指令,终端运行数据处理模块,建立数据处理进程。
在步骤402中,终端确定数据获取进程是否已下载目标数据。
一个可能的实施例中,终端建立数据处理进程后,当数据处理进程需要获取目标数据时,触发数据处理进程向管理进程发送目标数据的查询请求。管理进程判断数据获取进程是否已经下载了目标数据,判断的方式可以是终端判断存储模块中是否已经存储有目标数据,如果存储模块中已经存储有目标数据,则确定数据获取进程已经下载了目标数据,如果存储模块中未存储目标数据,则确定数据获取进程未下载目标数据。
在步骤403中,如果数据获取进程已下载目标数据,则终端将数据获取进程得到的目标数据传递给数据处理进程。
一个可能的实施例中,如果终端确定数据获取进程已经下载了目标数据,则终端无需再次调用数据获取进程向服务器获取目标数据,只需将数据进程得到的目标数据传递给数据处理进程即可,即终端将存储模块中存储的目标数据传递给数据处理模块即可。
在步骤404中,如果数据获取进程未获取目标数据,则终端建立数据获取进程,通过数据获取进程下载目标数据,将目标数据传递给数据处理进程。
一个可能的实施例中,如果管理模块确定数据获取进程未获取目标数据,则管理模块调用数据获取模块,建立数据获取进程,然后,通过数据获取进程向服务器下载目标数据,将目标数据存储在存储模块中,并将目标数据传递给数据处理进程。
可选地,在终端根据数据获取进行向服务器下载目标数据时,为了提高数据的安全性,可以进行登录验证。登录验证的处理可以包括以下步骤4041-4043。
在步骤4041中,如果数据获取进程未获取目标数据,则建立数据获取进程,并确定登录验证进程是否已获取登录凭证信息。
一个可能的实施例中,如果管理进程确定数据获取进程未获取目标数据,则管理进程建立数据获取进程,并建立登录验证进程。终端建立登录验证进程后,为了减少进行多次登录验证造成的资源浪费,终端可以只在首次登录验证时向服务器进行登录验证,即终端判断登录验证进程是否为首次进行登录验证。判断的方法可以是查询存储模块中是否存储有登录凭证信息,如果存储模块中存储有登录凭证信息,说明不是首次登录验证。如果存储模块中未存储登录凭证信息,说明是首次登录验证。当然,判断的方法也可以是其它的方法,本发明对此不做限制。
在步骤4042中,如果登录验证进程已获取登录凭证信息,则通过数据获取进程,基于登录凭证信息,下载目标数据。
如果登录验证进程已获取登录凭证信息,则管理进程将登录验证进程的登录凭证信息传递给数据获取进程,终端通过数据获取进程,向服务器发送携带有登录凭证信息的数据获取请求,服务器验证数据获取请求中的登录凭证信息,然后将目标数据发送给终端,终端据此进行目标数据的下载。
在步骤4043中,如果登录验证进程未获取登录凭证信息,则启动登录验证进程,通过登录验证进程向服务器进行登录验证,得到登录凭证信息,将登录凭证信息传递给数据获取进程,通过数据获取进程,基于登录凭证信息,下载目标数据。
一个可能的实施例中,如果登录验证进程未获取登录凭证信息,则终端通过登录验证进程,向服务器发送携带有登录验证信息的登录验证请求,服务器接收到登录验证请求后,获取其中的登录验证信息,将登录验证信息与预先存储的基准登录验证信息进行比对,如果登录验证信息中的用户名以及密码与预先存储的基准登录验证信息的用户名和密码一致,则说明登录验证成功,相反,如果不一致,则说明登录验证失败。如果登录验证失败,服务器可以向终端发送登录失败消息,使得终端再次获取登录验证消息的用户名以及密码,如提示用户再次输入等。另外,出于对数据安全的保护,也可以在用户进行反复输入的次数达到预设次数时,禁止用户再次输入用户名和密码。此处对登录验证失败的处理可以有多种方式,此处不一一列举,本发明对此也不做限制。服务器将登录凭证信息发送给终端,终端将登录凭证信息存储在登录验证模块中,登录验证进程完成运行。
终端获取到登录凭证信息后,将登录凭证信息传递给数据获取进程,终端通过数据获取进程,向服务器发送携带有登录凭证信息的数据获取请求,服务器验证数据获取请求中的登录凭证信息,然后将目标数据发送给终端,终端据此进行目标数据的下载。
在步骤405中,通过数据处理进程,终端对目标数据进行处理。
一个可能的实施例中,数据处理进程获取到目标数据后,终端通过数据处理模块对目标数据进行处理。
本发明实施例中,将业务过程中不同业务公共的处理,交给公共服务层进行,这样,在不同的业务并行进行的时候,这些公共的处理可以由相同的公共服务模块来执行,可以很好的防止相同的处理被不同进程重复执行,从而,可以减少资源占用。
基于相同的技术构思,本申请实施例还提供了一种功能执行的方法,该方法应用于软件框架,软件框架适用于运行在电子设备中的应用程序,软件框架包括显示层和公共服务层,显示层包括显示框架模块和多个业务模块,公共服务层包括管理模块和多个公共服务模块,如图6所示,该方法包括如下步骤:
步骤601,显示框架模块接收用户的业务执行指令,调用业务执行指令中的目标功能信息对应的业务模块。
步骤602,业务模块如果判定目标功能信息对应的功能需要由公共服务模块实现,则确定目标功能信息对应的目标公共服务模块,并通知管理模块。
步骤603,管理模块确定目标公共服务模块是否在进行与目标功能信息相关联的目标服务处理,如果目标公共服务模块在进行目标服务处理,则将目标服务处理的输出数据传递给业务模块,如果目标公共服务模块未进行目标服务处理,则调用目标公共服务模块进行目标服务处理,将目标服务处理的输出数据传递给业务模块。
步骤604,业务模块基于输出数据执行上述功能。
可选的,该方法还包括:
显示框架模块接收用户的携带目标功能信息的业务关闭指令,关闭目标功能信息对应的业务模块,并向管理模块发送携带目标功能信息的业务关闭通知;
管理模块确定除目标功能信息对应的业务模块外,目标公共服务模块当前是否向其它业务模块传递输出数据,如果当前未向其它业务模块传递输出数据,则关闭目标公共服务模块。
可选的,业务执行指令为视频显示指令,目标功能信息为显示功能标识,目标功能信息对应的业务模块为显示模块,目标功能信息对应的功能为显示功能,目标公共服务模块为视频取流模块,输出数据为目标监控设备的视频流;
显示框架模块接收用户的业务执行指令,调用业务执行指令中的目标功能信息对应的业务模块,包括:显示框架模块接收用户输入的视频显示指令,获取视频显示指令中的显示功能标识和目标监控设备的设备标识,调用显示模块;
业务模块如果判定目标功能信息对应的功能需要由公共服务模块实现,则确定目标功能信息对应的目标公共服务模块,并通知管理模块,包括:显示模块如果判定显示功能需要由公共服务模块实现,则基于显示功能标识,确定视频取流模块,将视频取流模块和目标监控设备的设备标识通知管理模块;
管理模块确定目标公共服务模块是否在进行与目标功能信息相关联的目标服务处理,如果目标公共服务模块在进行目标服务处理,则将目标服务处理的输出数据传递给业务模块,如果目标公共服务模块未进行目标服务处理,则调用目标公共服务模块进行目标服务处理,将目标服务处理的输出数据传递给业务模块,包括:
管理模块确定视频取流模块是否在对目标监控设备的视频流进行取流,如果视频取流模块在对目标监控设备的视频流进行取流,则将视频取流模块得到的目标监控设备的视频流传递给显示模块,如果视频取流模块未对目标监控设备的视频流进行取流,则调用视频取流模块对目标监控设备的视频流进行取流,将视频取流模块得到的目标监控设备的视频流传递给显示模块。
可选的,管理模块确定视频取流模块是否在对目标监控设备的视频流进行取流,包括:
如果存在当前处于运行状态的视频取流进程,则确定视频取流进程向服务器取流的视频流对应的设备标识是否包括目标监控设备的设备标识;
如果视频取流进程向服务器取流的视频流对应的设备标识包括目标监控设备的设备标识,则确定视频取流模块在对目标监控设备的视频流进行取流,如果视频取流进程向服务器取流的视频流对应的设备标识不是目标监控设备的设备标识,则确定视频取流模块未对目标监控设备的视频流进行取流。
可选的,公共服务层还包括存储模块,多个公共服务模块中包括登录验证模块;
如果目标公共服务模块未进行目标服务处理,则调用目标公共服务模块进行目标服务处理,包括:
如果目标公共服务模块未进行目标服务处理,则确定存储模块是否存储有登录凭证信息,如果存储模块存储有登录凭证信息,则调用目标公共服务模块,基于登录凭证信息,进行目标服务处理,如果存储模块未存储登录凭证信息,则调用登录验证模块向服务器进行登录验证,得到登录凭证信息,将登录凭证信息存储在存储模块中,并调用目标公共服务模块,基于登录凭证信息,进行目标服务处理。
可选的,公共服务层还包括存储模块,多个公共服务模块中包括数据获取模块;
该方法还包括:
业务模块如果判定目标功能信息对应的功能需要目标数据实现,则向管理模块发送目标数据的查询请求;
管理模块如果存储模块存储有目标数据,则将目标数据传递给业务模块,如果存储模块未存储目标数据,则调用数据获取模块向服务器获取目标数据,将目标数据存储在存储模块中,并将目标数据传递给业务模块;
业务模块基于目标数据执行上述功能。
本发明实施例中,将业务过程中不同业务公共的处理,交给公共服务层进行,这样,在不同的业务并行进行的时候,这些公共的处理可以由相同的公共服务模块来执行,可以很好的防止相同的处理被不同进程重复执行,从而,可以减少资源占用。
图7是本发明实施例提供的一种终端的结构框图。该终端800可以是便携式移动终端,比如:智能手机、平板电脑。终端800还可能被称为用户设备、便携式终端等其他名称。
通常,终端800包括有:处理器801和存储器802。
处理器801可以包括一个或多个处理核心,比如4核心处理器、6核心处理器等。处理器801可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器801可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器801还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是有形的和非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器801所执行以实现本申请中提供的功能执行的方法。
在一些实施例中,终端800还可选包括有:外围设备接口803和至少一个外围设备。具体地,外围设备包括:射频电路804、触摸显示屏805、摄像头806、音频电路807、定位组件808和电源809中的至少一种。
外围设备接口803可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器801和存储器802。在一些实施例中,处理器801、存储器802和外围设备接口803被集成在同一芯片或电路板上;在一些其他实施例中,处理器801、存储器802和外围设备接口803中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路804用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路804通过电磁信号与通信网络以及其他通信设备进行通信。射频电路804将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路804包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路804可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路804还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
触摸显示屏805用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。触摸显示屏805还具有采集在触摸显示屏805的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器801进行处理。触摸显示屏805用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,触摸显示屏805可以为一个,设置终端800的前面板;在另一些实施例中,触摸显示屏805可以为至少两个,分别设置在终端800的不同表面或呈折叠设计;在再一些实施例中,触摸显示屏805可以是柔性显示屏,设置在终端800的弯曲表面上或折叠面上。甚至,触摸显示屏805还可以设置成非矩形的不规则图形,也即异形屏。触摸显示屏805可以采用LCD(LiquidCrystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件806用于采集图像或视频。可选地,摄像头组件806包括前置摄像头和后置摄像头。通常,前置摄像头用于实现视频通话或自拍,后置摄像头用于实现照片或视频的拍摄。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能,主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能。在一些实施例中,摄像头组件806还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路807用于提供用户和终端800之间的音频接口。音频电路807可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器801进行处理,或者输入至射频电路804以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端800的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器801或射频电路804的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路807还可以包括耳机插孔。
定位组件808用于定位终端800的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件808可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源809用于为终端800中的各个组件进行供电。电源809可以是交流电、直流电、一次性电池或可充电电池。当电源809包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端800还包括有一个或多个传感器810。该一个或多个传感器810包括但不限于:加速度传感器811、陀螺仪传感器812、压力传感器813、指纹传感器814、光学传感器815以及接近传感器816。
加速度传感器811可以检测以终端800建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器811可以用于检测重力加速度在三个坐标轴上的分量。处理器801可以根据加速度传感器811采集的重力加速度信号,控制触摸显示屏805以横向视图或纵向视图进行用户界面的显示。加速度传感器811还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器812可以检测终端800的机体方向及转动角度,陀螺仪传感器812可以与加速度传感器811协同采集用户对终端800的3D动作。处理器801根据陀螺仪传感器812采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器813可以设置在终端800的侧边框和/或触摸显示屏805的下层。当压力传感器813设置在终端800的侧边框时,可以检测用户对终端800的握持信号,根据该握持信号进行左右手识别或快捷操作。当压力传感器813设置在触摸显示屏805的下层时,可以根据用户对触摸显示屏805的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器814用于采集用户的指纹,以根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器801授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器814可以被设置终端800的正面、背面或侧面。当终端800上设置有物理按键或厂商Logo时,指纹传感器814可以与物理按键或厂商Logo集成在一起。
光学传感器815用于采集环境光强度。在一个实施例中,处理器801可以根据光学传感器815采集的环境光强度,控制触摸显示屏805的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏805的显示亮度;当环境光强度较低时,调低触摸显示屏805的显示亮度。在另一个实施例中,处理器801还可以根据光学传感器815采集的环境光强度,动态调整摄像头组件806的拍摄参数。
接近传感器816,也称距离传感器,通常设置在终端800的正面。接近传感器816用于采集用户与终端800的正面之间的距离。在一个实施例中,当接近传感器816检测到用户与终端800的正面之间的距离逐渐变小时,由处理器801控制触摸显示屏805从亮屏状态切换为息屏状态;当接近传感器816检测到用户与终端800的正面之间的距离逐渐变大时,由处理器801控制触摸显示屏805从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图7中示出的结构并不构成对终端800的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述实施例中的功能执行的方法。例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种系统,其特征在于,所述系统适用于运行在电子设备中的应用程序,所述系统包括显示层和公共服务层,所述显示层包括显示框架模块和多个业务模块,所述公共服务层包括管理模块和多个公共服务模块,其中:
所述显示框架模块,用于接收用户的业务执行指令,所述业务执行指令为视频显示指令,获取所述视频显示指令中的目标功能信息和目标监控设备的设备标识,调用所述业务执行指令中的目标功能信息对应的业务模块,所述目标功能信息为显示功能标识,所述业务模块为显示模块;
所述业务模块,用于如果判定所述显示功能标识对应的显示功能需要由公共服务模块实现,则基于所述显示功能标识,确定目标公共服务模块,将所述目标公共服务模块和所述目标监控设备的设备标识通知所述管理模块,所述目标公共服务模块为视频取流模块;
所述公共服务模块,用于负责公共的业务,多个业务模块可以在同一公共服务模块调取相同的输出数据;
所述管理模块,用于确定所述目标公共服务模块是否在进行与所述目标功能信息相关联的目标服务处理,所述目标服务处理为对所述目标监控设备的视频流进行取流,如果所述视频取流模块在从服务器对所述目标监控设备的视频流进行取流,则将所述视频取流模块得到的所述目标监控设备的视频流传递给所述显示模块,如果所述视频取流模块未对所述目标监控设备的视频流进行取流,则调用所述视频取流模块对所述目标监控设备的视频流进行取流,将所述视频取流模块得到的所述目标监控设备的视频流传递给所述显示模块;
所述显示模块,用于基于所述目标监控设备的视频流执行所述显示功能。
2.根据权利要求1所述的系统,其特征在于,所述显示框架模块,用于接收用户的携带所述目标功能信息的业务关闭指令,关闭所述目标功能信息对应的业务模块,并向所述管理模块发送携带所述目标功能信息的业务关闭通知;
所述管理模块,用于确定除所述目标功能信息对应的业务模块外,所述目标公共服务模块当前是否向其它业务模块传递输出数据,如果当前未向其它业务模块传递输出数据,则关闭所述目标公共服务模块。
3.根据权利要求1所述的系统,其特征在于,所述管理模块,用于:
确定当前是否存在处于运行状态的视频取流进程;
如果存在当前处于运行状态的视频取流进程,则确定所述视频取流进程向服务器取流的视频流对应的设备标识是否包括目标监控设备的设备标识;
如果所述视频取流进程向服务器取流的视频流对应的设备标识包括目标监控设备的设备标识,则确定所述视频取流模块在对所述目标监控设备的视频流进行取流,如果所述视频取流进程向服务器取流的视频流对应的设备标识不包括目标监控设备的设备标识,则确定所述视频取流模块未对所述目标监控设备的视频流进行取流。
4.根据权利要求1所述的系统,其特征在于,所述公共服务层还包括存储模块,所述多个公共服务模块中包括登录验证模块;
所述存储模块,用于存储所述登录验证模块获取的登录凭证信息;
所述管理模块,用于如果所述目标公共服务模块未进行所述目标服务处理,则确定所述存储模块是否存储有所述登录凭证信息,如果所述存储模块存储有所述登录凭证信息,则调用所述目标公共服务模块,基于所述登录凭证信息,进行所述目标服务处理,如果所述存储模块未存储所述登录凭证信息,则调用所述登录验证模块向服务器进行登录验证,得到所述登录凭证信息,将所述登录凭证信息存储在所述存储模块中,并调用所述目标公共服务模块,基于所述登录凭证信息,进行所述目标服务处理。
5.根据权利要求1所述的系统,其特征在于,所述公共服务层还包括存储模块,所述多个公共服务模块中包括数据获取模块;
所述存储模块,用于存储所述数据获取模块向服务器获取的数据;
所述业务模块,还用于如果判定所述目标功能信息对应的功能需要目标数据实现,则向所述管理模块发送所述目标数据的查询请求;
所述管理模块,还用于如果所述存储模块存储有所述目标数据,则将所述目标数据传递给所述业务模块,如果所述存储模块未存储所述目标数据,则调用所述数据获取模块向所述服务器获取所述目标数据,将所述目标数据存储在所述存储模块中,并将所述目标数据传递给所述业务模块;
所述业务模块,还用于基于所述目标数据执行所述功能。
6.一种功能执行的方法,其特征在于,所述方法应用于系统,所述系统适用于运行在电子设备中的应用程序,所述系统包括显示层和公共服务层,所述显示层包括显示框架模块和多个业务模块,所述公共服务层包括管理模块和多个公共服务模块,所述方法包括:
所述显示框架模块接收用户的业务执行指令,所述业务执行指令为视频显示指令,获取所述视频显示指令中的目标功能信息和目标监控设备的设备标识,调用所述业务执行指令中的目标功能信息对应的业务模块,所述目标功能信息为显示功能标识,所述业务模块为显示模块;
所述业务模块如果判定所述显示功能标识对应的显示功能需要由公共服务模块实现,则基于所述显示功能标识,确定目标公共服务模块,将所述目标公共服务模块和所述目标监控设备的设备标识通知所述管理模块,所述目标公共服务模块为视频取流模块;
所述公共服务模块负责公共的业务,多个业务模块可以在同一公共服务模块调取相同的输出数据;
所述管理模块确定所述目标公共服务模块是否在进行与所述目标功能信息相关联的目标服务处理,所述目标服务处理为对所述目标监控设备的视频流进行取流,如果所述视频取流模块在从服务器对所述目标监控设备的视频流进行取流,则将所述视频取流模块得到的所述目标监控设备的视频流传递给所述显示模块,如果所述视频取流模块未对所述目标监控设备的视频流进行取流,则调用所述视频取流模块对所述目标监控设备的视频流进行取流,将所述视频取流模块得到的所述目标监控设备的视频流传递给所述显示模块;
所述显示模块基于所述目标监控设备的视频流执行所述显示功能。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述显示框架模块接收用户的携带所述目标功能信息的业务关闭指令,关闭所述目标功能信息对应的业务模块,并向所述管理模块发送携带所述目标功能信息的业务关闭通知;
所述管理模块确定除所述目标功能信息对应的业务模块外,所述目标公共服务模块当前是否向其它业务模块传递输出数据,如果当前未向其它业务模块传递输出数据,则关闭所述目标公共服务模块。
8.根据权利要求6所述的方法,其特征在于,所述管理模块确定所述视频取流模块是否在对所述目标监控设备的视频流进行取流,包括:
如果存在当前处于运行状态的视频取流进程,则确定所述视频取流进程向服务器取流的视频流对应的设备标识是否包括目标监控设备的设备标识;
如果所述视频取流进程向服务器取流的视频流对应的设备标识包括目标监控设备的设备标识,则确定所述视频取流模块在对所述目标监控设备的视频流进行取流,如果所述视频取流进程向服务器取流的视频流对应的设备标识不包括目标监控设备的设备标识,则确定所述视频取流模块未对所述目标监控设备的视频流进行取流。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910551316.2A CN112130909B (zh) | 2019-06-24 | 2019-06-24 | 系统和功能执行的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910551316.2A CN112130909B (zh) | 2019-06-24 | 2019-06-24 | 系统和功能执行的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112130909A CN112130909A (zh) | 2020-12-25 |
CN112130909B true CN112130909B (zh) | 2023-03-24 |
Family
ID=73849721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910551316.2A Active CN112130909B (zh) | 2019-06-24 | 2019-06-24 | 系统和功能执行的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112130909B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101594510A (zh) * | 2009-06-23 | 2009-12-02 | 腾讯科技(深圳)有限公司 | 一种实现摄像头资源共享的方法及系统 |
CN203279084U (zh) * | 2013-05-24 | 2013-11-06 | 北京国通创安报警网络技术有限公司 | 一种悬挂式高清无线视频终端 |
CN106105246A (zh) * | 2016-06-24 | 2016-11-09 | 北京小米移动软件有限公司 | 直播显示方法、装置及系统 |
CN107566786A (zh) * | 2017-08-11 | 2018-01-09 | 深圳英飞拓科技股份有限公司 | 一种获取监控视频的方法、装置及终端设备 |
CN109348264A (zh) * | 2018-11-14 | 2019-02-15 | 泰康保险集团股份有限公司 | 视频资源共享方法、装置、存储介质及电子设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420416B (zh) * | 2007-10-22 | 2013-03-13 | 中国移动通信集团公司 | 身份管理平台、业务服务器、登录系统及方法、联合方法 |
CN100589079C (zh) * | 2008-05-09 | 2010-02-10 | 华为技术有限公司 | 一种数据共享的方法、系统和装置 |
US9756142B2 (en) * | 2013-03-14 | 2017-09-05 | The Regents Of The University Of California | System and method for delivering video data from a server in a wireless network by caching the video data |
CN104683736B (zh) * | 2013-11-27 | 2018-06-05 | 中国电信股份有限公司 | 用于获取网络视频的方法和系统 |
CN106572336A (zh) * | 2016-11-09 | 2017-04-19 | 国网浙江省电力公司 | 一种智能电网的视频联动系统及智能电网的视频联动方法 |
CN109640043A (zh) * | 2018-12-19 | 2019-04-16 | 中科健坤(北京)信息技术有限公司 | 一种基于mes的视频透传方法及系统 |
-
2019
- 2019-06-24 CN CN201910551316.2A patent/CN112130909B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101594510A (zh) * | 2009-06-23 | 2009-12-02 | 腾讯科技(深圳)有限公司 | 一种实现摄像头资源共享的方法及系统 |
CN203279084U (zh) * | 2013-05-24 | 2013-11-06 | 北京国通创安报警网络技术有限公司 | 一种悬挂式高清无线视频终端 |
CN106105246A (zh) * | 2016-06-24 | 2016-11-09 | 北京小米移动软件有限公司 | 直播显示方法、装置及系统 |
CN107566786A (zh) * | 2017-08-11 | 2018-01-09 | 深圳英飞拓科技股份有限公司 | 一种获取监控视频的方法、装置及终端设备 |
CN109348264A (zh) * | 2018-11-14 | 2019-02-15 | 泰康保险集团股份有限公司 | 视频资源共享方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112130909A (zh) | 2020-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112291583B (zh) | 直播连麦方法、装置、服务器、终端及存储介质 | |
CN109547495B (zh) | 敏感操作处理方法、装置、服务器、终端及存储介质 | |
CN109246123B (zh) | 媒体流获取方法及装置 | |
CN110308956B (zh) | 一种应用界面显示方法、装置及移动终端 | |
CN111107389B (zh) | 确定观看直播时长的方法、装置和系统 | |
CN110839128B (zh) | 拍照行为检测方法、装置及存储介质 | |
CN110321228B (zh) | 原生方法的调用方法、装置、设备及计算机可读存储介质 | |
CN110007981B (zh) | 启动应用程序的方法、装置、电子设备及介质 | |
CN110096865B (zh) | 下发验证方式的方法、装置、设备及存储介质 | |
CN111159604A (zh) | 图片资源加载方法及装置 | |
CN108616835B (zh) | 基于浏览器的网络资源获取方法、装置、系统及存储介质 | |
CN110149491B (zh) | 视频编码方法、视频解码方法、终端及存储介质 | |
CN111510482B (zh) | 失败网络请求的确定方法、装置及计算机存储介质 | |
CN111191227A (zh) | 阻止恶意代码执行的方法和装置 | |
CN111897465B (zh) | 弹窗显示方法、装置、设备及存储介质 | |
CN113879924A (zh) | 电梯控制方法、装置、电子设备和存储介质 | |
CN110827830B (zh) | 基于语音数据的声纹识别方法、装置、终端及存储介质 | |
CN108683699B (zh) | 转发业务请求的方法和装置 | |
CN107800720B (zh) | 劫持上报方法、装置、存储介质及设备 | |
CN111008083A (zh) | 页面通信方法、装置、电子设备及存储介质 | |
CN112130909B (zh) | 系统和功能执行的方法 | |
CN110912830A (zh) | 传输数据的方法和装置 | |
CN111131619B (zh) | 账号切换处理的方法、装置及系统 | |
CN110971692B (zh) | 开通服务的方法、装置及计算机存储介质 | |
CN112015612B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |