发明内容
有鉴于此,本申请实施例提供了一种数据重传方法、装置、电子设备及存储介质,旨在解决因网络抖动而导致用户端的数据重传存在延迟和滞后明显的问题。
本申请实施例的第一方面提供了一种数据重传方法,包括:对目标数据发起传输后,根据所述应答情况确定所述目标数据中的丢包指令数据,所述目标数据表示为指令数据序列;对每条丢包指令数据单独进行重传处理。
在一些可能实现方式中,所述根据所述应答情况确定所述目标数据中的丢包指令数据的步骤,包括:根据应答消息中携带的指令标识序列,确定所述目标数据中的丢包指令数据。
在一些可能实现方式中,所述根据应答消息中携带的指令标识序列,确定所述目标数据中的丢包指令数据的步骤,包括:根据所述指令标识序列中记录的指令标识,确定缺失的指令标识,将所述缺失的指令标识所对应的指令数据确定为所述目标数据中的丢包指令数据,其中,所述指令标识序列中记录的指令标识包括服务端从已接收指令数据中确定的连续最大指令标识、当前最大指令标识以及位于所述连续最大指令标识与所述当前最大指令标识之间的指令标识。
在一些可能实现方式中,所述根据所述应答情况确定所述目标数据中的丢包指令数据的步骤,包括:在检测到有指令数据超过超时时间仍未接收到应答消息的情况下,将所述指令数据确定为所述目标数据中的丢包指令数据,所述超时时间根据数据传输往返时延值确定。
在一些可能实现方式中,所述在检测到有指令数据超过超时时间仍未接收到应答消息的情况下,将所述指令数据确定为所述目标数据中的丢包指令数据的步骤,包括:在超时检测时间点,按照时序对已发起传输的指令数据进行超时检测,将所述已发起传输的指令数据中已超过超时时间仍未接收到应答消息的指令数据确定为所述目标数据中的丢包指令数据。
在一些可能实现方式中,所述在超时检测时间点,按照时序对已发起传输的指令数据进行超时检测的步骤之前,还包括将所述超时检测时间点设置为:所述目标数据中发起传输的第一个指令数据所对应传输时间点增加一个超时时间后获得的时间点;或者每次超时检测之后发起传输的第一个指令数据所对应传输时间点增加一个超时时间后获得的时间点。
在一些可能实现方式中,所述在超时检测时间点,按照时序对已发起传输的指令数据进行超时检测的步骤,包括:在所述超时检测时间点是数据传输过程中的第一个超时检测时间点的情况下,以所述目标数据中已发起传输的第一个指令数据为检测起点,按照时序对所述已发起传输的指令数据逐一进行超时检测,直至检测到第一个未超时的指令数据为止,停止超时检测;在所述超时检测时间点不是数据传输过程中的第一个超时检测时间点的情况下,以上一个超时检测时间点检测到的未超时的指令数据为检测起点,按照时序对所述已发起传输的指令数据再次超时检测,直至再次检测到未超时的指令数据为止,停止超时检测。
在一种可能实现方式中,所述方法还包括:将所述超时时间确定为9/8*数据传输往返时延值。
在一些可能实现方式中,所述方法还包括:针对每条指令数据,对所述指令数据发起传输并经过预设延时值后,对所述指令数据进行冗余传输处理。
本申请实施例的第二方面提供了一种数据重传装置,所述数据重传装置包括:确定模块,用于对目标数据发起传输后,根据所述应答情况确定所述目标数据中的丢包指令数据;重传模块,用于对每个丢包指令数据进行单独重传处理。
本申请实施例的第三方面提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在电子设备上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面提供的数据重传方法的各步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面提供的数据重传方法的各步骤。
本申请实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行时实现第一方面提供的数据重传方法的各步骤。
本申请实施例提供的一种数据重传方法、装置、电子设备及存储介质,具有以下有益效果:
本申请通过对目标数据发起传输后,根据应答情况确定目标数据中的丢包指令数据,进而对每个丢包指令数据单独进行重传。在云游戏场景下,通过在用户端对已发起传输的指令数据进行超时检测或对接收到的应答消息进行分析,可以使用户端能够及时地获知数据传输的丢包和超时情况,并且针对每条丢包指令数据,可以对每条丢包指令数据单独进行重传处理,可以提高服务端接收成功的可能性,保证数据重传在毫秒级的延迟需求上更可靠更快速地从用户端到达服务端,解决因网络抖动而导致用户端的数据重传存在延迟和滞后明显的问题。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
请参阅图1,图1为本申请实施例提供的一种数据重传方法的方法实现流程图,具体可以包括步骤S11至步骤S12。
S11:对目标数据发起传输后,根据所述应答情况确定所述目标数据中的丢包指令数据,所述目标数据表示为指令数据序列。
云游戏的实现过程具体为用户在用户端输入各种游戏控制指令,由用户端通过WebRTC的数据通道将表征这些游戏控制指令的数据发送到服务端的WebRTC传输层,进而由服务端从接收到的数据中拆分出控制指令,并执行到游戏上。在云游戏应用场景中,从用户端传输给服务端的控制指令每秒可多达上百条,且单条控制指令的数据量比较小,整体传输速率在30kbps以下,但数据及时性要求较高,期望延时在毫秒级别。在本实施例中,目标数据为用户端需要发送给服务端的指令数据序列,指令数据按照产生的时间进行排序。
在用户端,对目标数据发起传输后,可以根据应答情况来确定目标数据中的丢包指令数据。其中,应答情况指的是客户端当前能够确定的指令数据在服务端的接收情况,包括客户端确定指令数据在服务端已被接收的情况和达到超时时间客户端不能确定指令数据在服务端是否被接收的情况。在本实施例中,应答情况可以是用户端接收到的应答消息,也可以是用户端中设定的超时检测机制进行超时检测时获得的检测结果。
S12:对每条丢包指令数据单独进行重传处理。
在用户端,确定了目标数据中的丢包指令数据后,可以根据这些丢包指令数据进行数据重传。具体为针对每一条丢包指令数据单独进行重传,其中,单独是指将丢包指令数据所对应的数据信息逐条进行拆分,使得一条指令丢包指令数据对应一份数据信息。在本实施例中,进行重传的过程可以为:将丢包指令数生成为重传数据包,将数据重传包发送给服务端。在一些具体的实施例中,根据应答情况,如果确定目标数据中的丢包指令数据多于一条的情况下,则针对每条丢包指令数据,一条丢包指令数据可以各自对应生成一个重传数据包,从而实现对每条丢包指令数据单独进行重传处理。可以理解的是,在丢包指令数据多于一条的情况下,每条丢包指令数据所对应生成的数据重传包可以同时发送给服务端。由于一个重传数据包里只包含一条丢包指令数据,以此,可以提高服务端接收成功的可能性。而且,通过单独重传,如果所有需要重传的指令数据中只有部分被服务端接收,用户端随后可通过接收服务端的应答情况,对没有被服务端接收的部分指令数据发起新的重传,如果所有需要重传的指令数据全部被服务端接收则不需再次重传,避免了所有需要重传的控制指令放在一个重传数据包中进行重传时,如果有控制指令未被服务端接收则全部都需要被重传而导致用户端重传延迟和滞后明显的问题。
上述实施例提供的数据重传方法可以在云游戏场景下,通过在用户端对已发起传输的指令数据进行超时检测或对接收到的应答消息进行分析,可以使得用户端能够及时地获知数据传输的丢包和超时情况,并且针对每条丢包指令数据,可以对每条丢包指令数据单独进行重传处理,可以提高服务端接收成功的可能性,保证数据重传在毫秒级的延迟需求上更可靠更快速地从用户端到达服务端,解决因网络抖动而导致用户端的数据重传存在延迟和滞后明显的问题。
在一些具体的实施例中,在用户端,对目标数据发起传输后,服务端如果接收到目标数据,服务端会通过向用户端反馈应答消息来告知用户端,已接收到该目标数据。在本实施例中,用户端可以通过对消息接收接口进行监测,以此来获得应答消息,进而,根据应答消息来确定目标数据中的丢包指令数据。具体地,在服务端,每接收到一条指令数据,会立即进行应答,如sack(选择性确认)应答,向用户端反馈关于该指令数据的应答消息。用户端就可以通过将当前已发起传输的指令数据与获得的应答消息进行比对分析,以此确定是否存在指令数据已发起传输但是没有接收到对应应答消息的情况,如果存在,则将该指令数据确定为丢包指令数据。在本实施例中,服务端不需要等待接收到多条指令数据后才进行一次应答,使得用户端能够更加及时地接收到应答消息,从而判断是否有丢包的情况发生,有效解决用户端的数据重传存在延迟和滞后明显的问题。
在一些具体的实施例中,服务端可以根据当前时刻接收到的指令数据所对应的指令标识,生成一个用来表示服务端的指令数据接收情况的指令标识序列,将该指令标识序列携带在应答消息中发给用户端。用户端接收到应答消息后,即可根据应答消息中携带的指令标识序列来确定目标数据中的丢包指令数据。
在一些具体的实施例中,服务端在生成指令标识序列时,指令标识序列中记录有服务端从已接收指令数据中确定的连续最大指令标识、当前最大指令标识以及位于连续最大指令标识与当前最大指令标识之间的指令标识。客户端获得指令标识序列后,可以根据该指令标识序列中记录的连续最大指令标识、当前最大指令标识以及位于连续最大指令标识与当前最大指令标识之间的指令标识,确定缺失的指令标识,进而将缺失的指令标识所对应的指令数据确定为目标数据中的丢包指令数据。
举例说明,在一些具体的实施例中,例如服务端当前接收到的指令数据中,当前最大指令标识为10,在10之前还有指令标识1,2,3,4,5,6,7,8,9。如果10之前的所有指令标识对应的指令数据都已被服务端接收到,那么,此时服务端从已接收指令数据中确定的连续最大指令标识为10,当前最大指令标识也为10,位于连续最大指令标识与当前最大指令标识之间无指令标识,因此,服务端生成的指令标识序列为sack 10...10。客户端接收该指令标识序列后,可以基于该指令标识序列确定连续最大指令标识与当前最大指令标识之间不存在缺失的指令标识,从而确定目标数据中没有丢包指令数据。
举例说明,在一些具体的实施例中,例如服务端当前接收到的指令数据中,当前指令标识为10,在10之前还有指令标识1,2,3,4,5,6,7,8,9。如果在10之前,指令标识为3和指令标识为4的指令数据未被服务端接收,那么,此时服务端从已接收指令数据中确定的连续最大指令标识为2,当前最大指令标识为10,位于连续最大指令标识与当前最大指令标识之间的指令标识包括5,6,7,8,9,因此,服务端生成的指令标识序列为sack2...5,6,7,8,9,10。在一些具体的实施例中,针对只有一处缺失指令标识的情况,还可以将出现缺失指令标识之后的第一个记录的指令标识到当前最大指令标识之间的指令标识省略记录,即服务端生成的指令标识序列为sack2...5,10。
举例说明,在一些具体的实施例中,对于有多处缺失指令标识的情况,还可以针对相邻两处缺失指令标识的情况,将前一处缺失指令之后的第一个记录的指令标识到后一处缺失指令标识之前的最后一个记录的指令标识之间的指令标识省略记录。例如,例如服务端当前接收到的指令数据中,当前指令标识为10,在10之前还有指令标识1,2,3,4,5,6,7,8,9。如果在10之前,指令标识为3、指令标识为5和指令标识为8的指令数据未被服务端接收,那么,此时服务端从已接收指令数据中确定的连续最大指令标识为2,当前最大指令标识为10,位于连续最大指令标识与当前最大指令标识之间的指令标识包括4,6,7,9,因此,服务端生成的指令标识序列可以为sack2...4...6,7...9,10。
示例性的,请一并参阅图2,图2为本申请实施例提供的数据重传方法中用户端与服务端进行数据传输的一种交互示意图。目标数据为由多条指令数据组成的指令数据序列,指令数据按照产生的时间先后顺序依次发送至服务端。如图2所示,Client表示为云游戏用户端,Server表示为云游戏服务端,Ta、Ta+T、Tb、Tc、Tc+T、Td、Td+T、Te、Te1、Te1+T、Tf、Tf+T、Tg表示时间点,da、db、dc、dd表示用户端发起传输的指令数据,sack da...da、sackda...dc、sack dd...dd表示服务端反馈的应答消息,打“×”表示用户端发起过传输但未接收到对应应答消息的指令数据,虚线表示发起一次重传,该次重传的重传数据包中包含有db指令数据。
在一些具体的实施例中,用户端还可以在数据传输过程中,利用设定的超时检测机制进行超时检测,获得对应的检测结果,进而基于检测结果来确定目标数据中的丢包指令数据。具体地,用户端在对目标数据发起传输后,启动超时检测机制对目标数据中已发起传输的指令数据进行超时检测,获得检测结果。如果检测结果中显示为检测到有指令数据超过超时时间仍未接收到应答消息,则此时,将该超过超时时间仍未接收到应答消息的指令数据确定为目标数据中的丢包指令数据。在本实施例中,超时时间可以根据数据传输往返时延值确定,超时时间大于或等于数据传输往返时延值。
示例性的,请一并参阅图3,图3为本申请实施例提供的数据重传方法中用户端与服务端进行数据传输的另一种交互示意图。通过超时检测确定目标数据中的丢包指令数据时,如图3所示,Client表示为云游戏用户端,Server表示为云游戏服务端,Ta、Ta+T、Tb、Tc、Tc+T、Td、Td+T、Te、Te+T、Tc+rto、Tc+rto+T表示时间点,da、db、dc、dd表示用户端发起的指令数据,sack da...da表示服务端对收到的指令数据进行的sack应答消息,打“×”表示用户端发起过传输但未接收到应答消息的指令数据,rto表示超时重传时间,虚线表示用户端在在Tc+rto时刻未收到服务端反馈的应答消息时,且在Tc+rto时刻监测到db指令数据及dc指令数据都已超时,则此时发起两次重传,一个重传数据包中包含有db指令数据,另一个重传数据包中则包含有dc指令数据。
在一些具体实施例中,用户端进行超时检测的过程具体可以为:对目标数据发起传输后,根据超时时间设置超时检测时间点,通过监听时间,当监听到时间到达超时检测时间点时,在该超时检测时间点,按照时序对目标数据中已发起传输的指令数据逐一进行超时检测,直至检测到未超时的指令数据为止,在检测到有指令数据超过超时时间仍未接收到应答消息的情况下,将该超过超时时间仍未接收到应答消息的指令数据的指令标识输出为检测结果。进而基于检测结果,可以根据该检测结果中记录的指令标识,将该超过超时时间仍未接收到应答消息的指令数据确定为目标数据中的丢包指令数据。在本实施例中,超时时间可以根据数据传输往返时延值确定,超时时间大于或等于数据传输往返时延值。
在一些具体的实施例中,指令数据产生的时间即为指令数据发起传输的时间,即传输时间点,指令数据按照产生的时间先后顺序依次发送至服务端。在本实施例中,根据超时时间设置超时检测时间点时,具体可以为:在对目标数据发起传输开始,根据目标数据中发起传输的第一个指令数据所对应的传输时间点,在该传输时间点的基础上增加一个超时时间,获得一个对应的时间点,将该获得的时间点设置为数据传输的第一个超时检测时间点。当时间到达第一个超时检测时间点并进行超时检测之后,根据该超时检测之后发起传输的第一个指令数据所对应的传输时间点,在该传输时间点的基础上增加一个超时时间,即可获得第二个超时检测时间点。可以理解的是,该超时检测之后发起传输的第一个指令数据所对应的传输时间点可以与第一个超时检测时间点一致,也可以是第一个超时检测时间点之后的任意时间点。以此类推,第二个超时检测时间点之后的任意一个超时检测时间点均可以根据前一次超时检测之后发起传输的第一个指令数据所对应的传输时间点,将该超时检测时间点设置为:该前一次超时检测之后发起传输的第一个指令数据所对应传输时间点增加一个超时时间后获得的时间点。
在一些具体的实施例中,在数据传输过程中,针对第一个超时检测时间点,在进行超时检测时,以目标数据中已发起传输的第一个指令数据为检测起点,按照时序对已发起传输的指令数据逐一进行超时检测,检测各个已发起传输的指令数据是否超过超时时间,直至检测到第一个未超时的指令数据为止,停止超时检测。
举例说明,例如监听到时间到达第一个超时检测时间点时,有10个指令数据已发起传输,该10个指令数据的传输时间点分别为:1.001秒、1.007秒、1.011秒、1.023秒、2.036秒、2.254秒、2.255秒、3.039秒、4.338秒、4.809秒,假设超时时间设定为5秒,此时第一个超时检测时间点为第6.001秒,即在该第6.001秒开始对上述的10个指令数据按照时序逐一进行超时检测,假设第1个指令数据在第5.003秒接收到应答消息,第2个指令数据未接收到应答消息,第3个指令数据未接收到应答消息,第4个指令数据在第5.033秒接收到应答消息,第5至10个指令数据未接收到应答消息。在检测各个已发起传输的指令数据是否超过超时时间时,在第6.010秒检测第1个指令数据,检测结果为第1个指令数据在第5.003秒接收到应答消息,可以确定该第1个指令数据不是丢包指令数据。在第6.020秒检测第2个指令数据,由于第2个指令数据在第6.001秒之前未接收到应答消息,通过将检测该第2个指令数据是否超时的时间点6.020秒减去该第2个指令数据的传输时间点1.007秒,得到差值为5.013秒,将该差值5.013秒与超时时间5秒比对,由于5.013秒>5秒,因此,检测结果为第2个指令数据已超过超时时间仍未接收到应答消息。第3个指令数据在第6.001秒之前未接收到应答消息,则通过将检测该第3个指令数据是否超时的时间点6.030秒减去该第3个指令数据的传输时间点1.011秒,得到差值为5.019秒,将该差值5.019秒与超时时间5秒比对,由于5.019秒>5秒,因此,检测结果为第3个指令数据已超过超时时间仍未接收到应答消息。在第6.040秒检测第4个指令数据,检测结果为第4个指令数据在第5.033秒接收到应答消息,可以确定该第4个指令数据不是丢包指令数据。第5个指令数据在第6.001秒之前未接收到应答消息,则通过将检测该第5个指令数据是否超时的时间点6.050秒减去该第5个指令数据的传输时间点2.036秒,得到差值为4.014秒,将该差值4.014秒与超时时间5秒比对,由于4.014秒<5秒,因此,检测结果为第5个指令数据未超时,此时,停止超时检测。即第6至10个指令数据不做超时检测。根据检测结果,确定第2个指令数据和第3个指令数据为丢包指令数据。在停止超时检测后立即对该第2个指令数据和第3个指令数据单独进行重传处理。
在本实施例中,在数据传输过程中,针对第二个超时检测时间点以及之后的任意一个超时检测时间点,在进行超时检测时,以上一个超时检测时间点检测到的未超时的指令数据为检测起点,按照时序对已发起传输的指令数据再次逐一进行超时检测,直至再次检测到未超时的指令数据为止,停止超时检测。
举例说明,例如监听到时间到达第二个超时检测时间点时,有20个指令数据已发起传输,该20个指令数据的传输时间点分别为:1.001秒、1.007秒、1.011秒、1.023秒、2.036秒、2.254秒、2.255秒、3.039秒、4.338秒、4.809秒、6.319秒、6.319秒、6.320秒、6.324秒、6.325秒、6.453秒、8.911秒、8.993秒、9.013秒、11.041秒。第一个超时检测时间点为第6.001秒,第6.001秒后发起传输的第一个指令数据所对应传输时间点为6.319秒,则根据该6.319秒可以设置第二个超时检测时间点为11.319秒,即在该第11.319秒开始进行新一轮的超时检测。其中,从第5个指令数据开始按照时序逐一进行超时检测,直至在这一轮超时检测中检测到第一个未超时的指令数据为止,停止超时检测。根据检测结果,确定该第5个指令数据到这一轮超时检测中检测到第一个未超时的指令数据之间的所有指令数据中的丢包指令数据。进而在停止超时检测后立即对每个确定的丢包指令数据单独进行重传处理。
在一个具体的实施例中,用户端发送指令数据给服务端后,服务端会在接收到指令数据后向用户端反馈关于该指令数据的应答消息,以此告知用户端指令数据已成功送达服务端。在设定超时时间时,可以采用如下计算公式进行计算:超时时间=9/8*数据传输往返时延值。在本实施例中,相对于标准计算方法,本申请采用的计算公式所计算出的预设时长值相对于数据传输往返时延值的关系恒定,不需要参考历史数据,数据传输往返时延值的波动变化对预设时长值的影响较小,能够更准确地进行超时检测,如有超时,也能更及时地进行重传。本申请的计算公式参考了探测超时时间pto计算方法pto=max(kTimeThreshold*max(smoothed_rtt,latest_rtt),kGranularity),其中,kGranularity值为1ms,系数kTimeThreshold使用9/8,smoothed_rtt表示为平滑化的数据传输往返时延值,latest_rtt表示为最新测得的数据传输往返时延值。
基于上述实施例,通过设定超时时间=9/8*数据传输往返时延值,可以确保已发起传输的指令数据在超时检测时间点已经经历过一个数据传输往返时间,避免指令数据正常传输但由于应答消息还在发送给客户端途中而被检测为超时,从而导致正常传输的指令数据被误判为丢包指令数据的情况,保证数据重传的准确性。根据前一个超时检测时间点之后发起传输的第一个指令数据所对应的传输时间点,在该传输时间点的基础上增加一个超时时间来获得后一个超时检测时间点,可以确保该前一个超时检测时间点之后发起传输的指令数据在后一个超时检测时间点已经经历过一个数据传输往返时间,避免该前一个超时检测时间点之后发起传输的指令数据可能存在正常传输但由于应答消息还在发送给客户端途中而被检测为超时,从而导致该前一个超时检测时间点之后发起传输的指令数据在后一个超时检测时间点被误判为丢包指令数据的情况,保证了数据重传的准确性。
在一种具体的实施例中,如图2和图3所示,针对目标数据中每条指令数据,还可以在指令数据发出后进行时间监测,经过预设延时值T后,再冗余发出该指令数据,以此提高服务端接收指令数据的可靠性。可以理解的是,预设延时值设置得很短,一般为几毫秒(如2毫秒),远小于超时时间。
可以理解的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在一些具体的实施例中,请参阅图4,图4为本申请实施例提供的一种数据重传装置的基础结构框图。本实施例中该装置包括的各单元用于执行上述方法实施例中的各步骤。具体请参阅上述方法实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。如图4所示,数据重传装置包括:确定模块41和重传模块42。其中:确定模块41用于对目标数据发起传输后,根据所述应答情况确定所述目标数据中的丢包指令数据,所述目标数据表示为指令数据序列。重传模块42用于对每条丢包指令数据单独进行重传处理。
应当理解的是,数据重传装置,与上述的数据重传方法一一对应,此处不再赘述。
本申请的一些实施例中,请参阅图5,图5为本申请实施例提供的一种电子设备的基本结构框图。如图5所示,该实施例的电子设备5包括:处理器51、存储器52以及存储在所述存储器52中并可在所述处理器51上运行的计算机程序53,例如数据重传方法的程序。处理器51执行所述计算机程序53时实现上述各个数据重传方法各实施例中的步骤。或者,所述处理器51执行所述计算机程序53时实现上述数据重传装置对应的实施例中各模块的功能。具体请参阅实施例中的相关描述,此处不赘述。
示例性的,所述计算机程序53可以被分割成一个或多个模块(单元),所述一个或者多个模块被存储在所述存储器52中,并由所述处理器51执行,以完成本申请。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序53在所述电子设备5中的执行过程。例如,所述计算机程序53可以被分割成:确定模块和重传模块,各模块的功能如上所述。
所述电子设备可包括,但不仅限于,处理器51、存储器52。本领域技术人员可以理解,图5仅仅是电子设备5的示例,并不构成对电子设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备还可以包括输入输出设备、网络接入设备、总线等。
所述处理器51可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器52可以是所述电子设备5的内部存储单元,例如电子设备5的硬盘或内存。所述存储器52也可以是所述电子设备5的外部存储设备,例如所述电子设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器52还可以既包括所述电子设备5的内部存储单元也包括外部存储设备。所述存储器52用于存储所述计算机程序以及所述电子设备所需的其他程序和数据。所述存储器52还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。在本实施例中,所述计算机可读存储介质可以是非易失性,也可以是易失性。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。