一种运行数据的恢复方法及电子设备的制作方法

文档序号:6379639阅读:169来源:国知局
专利名称:一种运行数据的恢复方法及电子设备的制作方法
技术领域
本发明涉及数据处理技术领域,特别是涉及一种运行数据恢复方法及电子设备。
背景技术
Android (安卓)是一种以Linux为基础的开放源代码操作系统,主要适用于便携设备。在Android系统中,用户可见的程序称为Activity,是前台运行的主程序,在实际使用中,导致Activity崩溃的情形有多种,例如第一,程序中本身有缺陷,在某种特定情境下发生崩溃;第二,程序被切换到后台后,由于内存有限,系统选择杀死部分程序以释放资源给前台程序;第三,用户通过系统设置,当程序一旦被切换到后台时会立即被杀死。因此,Activity崩溃在Android系统中是一种普遍的现象。现有技术中,用户在Activity崩溃后再次进入该程序时,由于Activity崩溃前的操作和状态会消失,若要恢复崩溃前的运行数据需要首先进行一系列初始化过程,例如读取配置文件,从网络下载某些资源等等,这种涉及文件或网络I/O (输入/输出)的初始化动作耗时长,效率低,大大降低了用户体验。

发明内容
本发明实施例中提供了一种运行数据恢复方法及电子设备,能够在恢复程序崩溃前的运行数据时,避免耗时较长的初始化过程,提高效率。为了解决上述技术问题,本发明实施例公开了如下技术方案第一方面,提供一种运行数据恢复方法,包括后台服务端接收前台运行端发送的运行数据;所述后台服务端接收所述前台运行端在运行崩溃并再次接入运行时发送的运行数据获取请求;所述后台服务端将所述前台运行端所请求的运行数据发送至所述前台运行端,以使所述前台运行端进行运行数据的恢复;其中,所述后台服务端与所述前台运行端之间通过进程间通信进行交互。进一步,在所述后台服务端接收前台运行端发送的运行数据之前,还包括所述后台服务端通过其与所述前台运行端之间的系统接口进行绑定,以实现所述后台服务端与所述前台运行端之间的进程间通信。优选地,在所述后台服务端接收前台运行端发送的运行数据之后,还包括所述后台服务端将所述运行数据保存至临时文件。进一步,在所述后台服务端将所述前台运行端所请求的运行数据发送至所述前台运行端之前,还包括若所述后台服务端运行崩溃,则所述后台服务端执行重启并获取所述临时文件中的运行数据。第二方面,还提供了一种运行数据恢复方法,包括
前台运行端向后台服务端发送运行数据;所述前台运行端在运行崩溃并再次接入运行时向所述后台服务端发送获取运行数据的请求;所述前台运行端接收所述后台服务端发送的运行数据,进行运行数据的恢复;其中,所述前台运行端与所述后台服务端之间通过进程间通信进行交互。进一步,在所述前台运行端向后台服务端发送运行数据之前,还包括所述前台运行端通过其与所述后台服务端之间的系统接口进行绑定,以实现所述前台运行端与所述后台服务端之间的进程间通信。进一步,所述前台运行端向后台服务端发送运行数据,包括·
所述前台运行端实时或定时或在更新运行数据时向所述后台服务端发送运行数据。第三方面,还提供了一种电子设备,包括前台运行端和后台服务端,所述后台服务端与所述前台运行端之间通过进程间通信进行交互,所述前台运行端,用于向所述后台服务端发送运行数据;在运行崩溃并再次接入运行时向所述后台服务端发送获取运行数据的请求;接收所述后台服务端发送的运行数据,进行运行数据的恢复;所述后台服务端,用于接收所述前台运行端发送的运行数据;接收所述前台运行端在运行崩溃并再次接入运行时发送的运行数据获取请求;将所述前台运行端所请求的运行数据发送至所述前台运行端。进一步,所述后台服务端与所述前台运行端之间通过系统接口进行绑定,以实现所述后台服务端与所述前台运行端之间的进程间通信。进一步,所述前台运行端,具体用于实时或定时或在更新运行数据时向所述后台服务端发送运行数据。优选地,所述后台服务端,还用于在接收所述前台运行端发送的运行数据之后,将所述运行数据保存至临时文件。进一步,所述后台服务端,还用于在运行崩溃时,执行重启并获取所述临时文件中的运行数据。本发明实施例中通过前台运行端与后台服务端之间的进程间通信,后台服务端对前台运行端的运行数据进行保存,并在前台运行端运行崩溃时提供运行数据,实现了前台运行端运行数据的快速恢复,从而跳过了初始化流程。由于进程间通信为内存操作,该运行数据恢复过程与现有技术中的初始化流程不同,相比起初始化流程中文件及网络1/0,在速度上有着质的飞跃,因此前台运行端的程序能以非常快的速度重新启动,给用户的感觉就像程序没有崩溃过一样,避免了前台运行端崩溃后重新进入程序时的初始化操作,极大地提升了用户体验。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图I为本发明一种运行数据恢复方法的第一实施例流程图;图2为本发明一种运行数据恢复方法的第二实施例流程图;图3为本发明一种运行数据恢复方法的第三实施例流程图;图4为本发明实施例一种电子设备的结构示意图。
具体实施例方式为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。参见图1,为本发明一种运行数据恢复方法的第一实施例流程图。该方法应用于包括前台运行端和后台服务端的电子设备,例如智能手机、平板电 脑、机顶盒等终端,具体可以是使用Android操作系统的各类电子设备。其中,前台运行端用于运行用户能与其直接进行交互的程序,例如打电话时的拨号程序,浏览网页时用的浏览器等等;后台服务端用于运行用户当前不能直接与其交互但仍然在运行的程序,例如后台运行的音乐播放器、下载工具等等。前台运行端和后台服务端之间通过进程间通信进行交互,该进程间通信是运行在多任务操作系统中的程序和进程使用的一组技术,是指在不同进程之间传递或交换信息,属于内存操作。该运行数据恢复方法可以包括步骤101,后台服务端接收前台运行端发送的运行数据。前台运行端在运行程序时将其运行数据发送至后台服务端,由后台服务端进行接收并保存。步骤102,后台服务端接收前台运行端在运行崩溃并再次接入运行时发送的运行数据获取请求。前台运行端在程序运行崩溃后再次接入运行时,不再执行初始化动作,而是向后台服务端发送该程序运行数据的请求消息,由后台服务端接收该请求并进一步执行下一步骤。步骤103,后台服务端将前台运行端所请求的运行数据发送至前台运行端,以使前台运行端进行运行数据的恢复。后台服务端在接收到运行数据的请求消息后,在保存的运行数据中查找前台运行端所请求的运行数据,具体的可以是在接收到的请求中包含指定运行数据的标识信息,后台服务端根据该标识信息查找对应的运行数据,然后将查找到的运行数据发送至前台运行端。本发明实施例中通过前台运行端与后台服务端之间的进程间通信,后台服务端对前台运行端的运行数据进行保存,并在前台运行端运行崩溃时提供运行数据,实现了前台运行端运行数据的快速恢复,从而跳过了初始化流程。由于进程间通信为内存操作,该运行数据恢复过程与现有技术中的初始化流程不同,相比起初始化流程中文件及网络1/0,在速度上有着质的飞跃,因此前台运行端的程序能以非常快的速度重新启动,给用户的感觉就像程序没有崩溃过一样,避免了前台运行端崩溃后重新进入程序时的初始化操作,极大地提升了用户体验。参见图2,为本发明一种运行数据恢复方法的第二实施例流程图。
本实施例是以图I所示实施例中后台服务端的对端,也即前台运行端,作为执行主体侧来描述的。该方法同样应用于包括前台运行端和后台服务端的电子设备,其中,前台运行端和后台服务端之间通过进程间通信进行交互,该进程间通信属于内存操作。该运行数据恢复方法可以包括 步骤201,前台运行端向后台服务端发送运行数据。步骤202,前台运行端在运行崩溃并再次接入运行时向后台服务端发送获取运行数据的请求。步骤203,前台运行端接收后台服务端发送的运行数据,进行运行数据的恢复。本发明实施例中通过前台运行端与后台服务端之间的进程间通信,前台运行端将运行数据发送至后台服务端进行保存,并在前台运行端运行崩溃时直接从后台服务端获取运行数据,实现了前台运行端运行数据的快速恢复,从而跳过了初始化流程。由于进程间通 信为内存操作,该运行数据恢复过程与现有技术中的初始化流程不同,相比起初始化流程中文件及网络1/0,在速度上有着质的飞跃,因此前台运行端的程序能以非常快的速度重新启动,给用户的感觉就像程序没有崩溃过一样,避免了前台运行端崩溃后重新进入程序时的初始化操作,极大地提升了用户体验。参见图3,为本发明一种运行数据恢复方法的第三实施例流程图。该方法同样应用于包括前台运行端和后台服务端的电子设备,其中,前台运行端和后台服务端之间通过进程间通信进行交互,该进程间通信属于内存操作。该运行数据恢复方法可以包括步骤301,后台服务端通过其与前台运行端之间的系统接口进行绑定。本实施例中,后台服务端通过其与前台运行端之间的系统接口进行绑定,以实现后台服务端与前台运行端之间的进程间通信。在其它实施例中,也可以通过其他设置实现实现后台服务端与前台运行端之间的进程间通信。例如,在Android系统中,由前台运行端的主Activity启动后台服务端的Service(Context. startService O方法),设置Service为“崩溃/被杀后自动重启”状态,并且绑定Activity和Service (android, os. Binder),从而实现前台运行端和后台服务端的进程间通{目O步骤302,前台运行端在更新运行数据时向后台服务端发送运行数据。前台运行端可以只在运行数据出现更新时,将更新后的运行数据发送至后台服务端进行保存,在其它实施例中,前台运行端也可以实时或定时将运行数据发送至后台服务端进行保存。该运行数据的发送过程通过前台运行端和后台服务端之间的进程间通信实现。例如,在Android系统中,后台服务端的Service进程比前台运行端的Activity更不容易被系统杀死,所以,前台运行端的主Activity根据一定策略在适当的时候将运行时数据通过进程间通信机制(如利用android, os. Parcelable等)发送给后台服务端Service进行保存。如果前台运行端的主Activity不幸发生崩溃,贝U后台服务端的Service已经保证了必要的运行数据在系统内存,而不是在网络。后台服务端在接收到运行数据并保存后,还可以进一步执行步骤303。步骤303,后台服务端将运行数据保存至临时文件。
后台服务端为了防止自身崩溃而丢失运行数据,可以进一步将该运行数据保存至临时文件,例如,后台服务端的Service为了防止自身被杀,将该运行数据保存到临时文件。这样,运行数据在内存是可以得到保证的。当后台服务端在运行崩溃时可以执行步骤
304。步骤304,后台服务端执行重启并获取临时文件中的运行数据。如果后台服务端崩溃,则重启后读取临时文件中的运行数据。步骤305,后台服务端接收前台运行端在运行崩溃并再次接入运行时发送的运行数据获取请求。前台运行端在崩溃后再次进入时,向后台服务端发送读取运行数据的请求,后台服务端接收到该请求后执行下一步骤。 步骤306,后台服务端将前台运行端所请求的运行数据发送至前台运行端,以使前台运行端进行运行数据的恢复。本发明实施例中,后台服务端能够保证前台运行端在任何情况崩溃后都能够快速恢复运行前的数据,另外,由于后台服务端保存的是前台运行端最新的运行数据,因此在快速启动后能够立刻恢复崩溃前的状态,用户所做过的操作无需重复。与此同时,由于跳过了初始化及崩溃恢复后可能存在的网络连接,能够为用户省下很多不必要的流量。而且,整个方案在运行过程中对用户是透明的,不可见的。用户无需做任何操作就能够获得极致的体验。该方法实施例具有启动速度快、节省不必要的流量、恢复先前状态、用户无需作任何操作的多重优点。下面结合具体实例说明本发明方法的有益效果。举例一以前台运行端运行的一款名为Tiny Tower (NimbleBit公司制作)的小游戏为例进行说明。它的初始化步骤和所用时间(根据WIFI环境下实际测量所得,误差〈I秒)如下程序初始化工序花费46秒,其中,前三个步骤是需要网络连接的,共需花费20秒,否则会启动失败。由于网络环境的不确定性,这三个步骤中的20秒是有可能大大增加的。若该程序崩溃,则按照现有技术的方法,那么一切都要重头再来,进行初始化需要重复花费这20秒(甚至更多),重复花费流量,还有网络不稳定的不确定性。按照本发明方法,前台运行端会将运行数据传送到后台服务端进行保存,如果前台运行端不幸发生崩溃,后台服务端已经保证了必要的运行数据在系统内存,而不是在网络。即使后台服务端也不幸崩溃,由于后台服务端会将运行数据保存到临时文件中,因此,运行数据在内存是可以得到保证的。当前台运行端再次进入时,将从后台服务端直接读取崩溃前的运行数据,可以跳过初始化的三个步骤,因此所花费的时间(假设在同一网络环境下)应该为46秒-20秒=26秒,节省了 43%的时间。在较差的网络环境下,如2G网络,会节省更多的时间还有流量。而且,可以立刻恢复到崩溃前状态,而用户无需付出额外的操作。举例二再以前台运行端运行的手机浏览器(Android操作系统)为例,前台运行的该手机浏览器运行崩溃后,前台再次进入浏览器的耗时约为4. 5秒。进入后浏览器会提示用户是否打开崩溃前网页,用户需要选择打开或者不打开。如果选择打开,根据网络情况不同会花费I到6秒不等的时间,其中有将近60%的时间用于联网。
按照本发明方法,前台运行端在崩溃后再次进入浏览器时不需要做任何读取文件操作,直接从后台服务端通过进程间通信的方法获得运行数据,这样启动的时间大约为I. 5秒。并且,由于浏览器从后台服务端获取了运行数据,因此可以直接重新加载崩溃前浏览的网页,省去了重新联网的时间和流量,且用户无需点击确认重新打开页面,感觉就像程序并未崩溃一样。上述方法实施例可以应用于安装有安卓软件的电子设备中。以上是对本发明方法实施例的描述,下面对实现上述方法的装置进行介绍。参见图4,为本发明实施例一种电子设备的结构示意图。该电子设备包括前台运行端401和后台服务端402,后台服务端402与前台运行端401之间通过进程间通信进行交互。前台运行端401,用于向后台服务端402发送运行数据;在运行崩溃并再次接入运行时向后台服务端402发送获取运行数据的请求;接收后台服务端402发送的运行数据,进·行运行数据的恢复;后台服务端402,用于接收前台运行端401发送的运行数据;接收前台运行端401在运行崩溃并再次接入运行时发送的运行数据获取请求;将前台运行端401所请求的运行数据发送至前台运行端401。其中,后台服务端402与前台运行端401之间可以通过系统接口进行绑定,以实现后台服务端402与前台运行端401之间的进程间通信。在另一实施例中,前台运行端还可以具体用于实时或定时或在更新运行数据时向后台服务端发送运行数据。后台服务端,也还可以用于在接收前台运行端发送的运行数据之后,将运行数据保存至临时文件,并可以用于在运行崩溃时,执行重启并获取临时文件中的运行数据。本发明实施例中该电子设备通过前台运行端与后台服务端之间的进程间通信,后台服务端对前台运行端的运行数据进行保存,并在前台运行端运行崩溃时提供运行数据,实现了前台运行端运行数据的快速恢复,从而跳过了初始化流程。由于进程间通信为内存操作,该运行数据恢复过程与现有技术中的初始化流程不同,相比起初始化流程中文件及网络1/0,在速度上有着质的飞跃,因此前台运行端的程序能以非常快的速度重新启动,给用户的感觉就像程序没有崩溃过一样,避免了前台运行端崩溃后重新进入程序时的初始化操作,极大地提升了用户体验。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以·是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(R0M,Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
权利要求
1.一种运行数据恢复方法,其特征在于,包括 后台服务端接收前台运行端发送的运行数据; 所述后台服务端接收所述前台运行端在运行崩溃并再次接入运行时发送的所述运行数据获取请求; 所述后台服务端将所述前台运行端所请求的运行数据发送至所述前台运行端,以使所述前台运行端进行所述运行数据的恢复; 其中,所述后台服务端与所述前台运行端之间通过进程间通信进行交互。
2.根据权利要求I所述的方法,其特征在于,在所述后台服务端接收前台运行端发送的运行数据之前,还包括 所述后台服务端通过其与所述前台运行端之间的系统接口进行绑定,以实现所述后台服务端与所述前台运行端之间的进程间通信。
3.根据权利要求I或2所述的方法,其特征在于,在所述后台服务端接收前台运行端发送的运行数据之后,还包括 所述后台服务端将所述运行数据保存至临时文件。
4.根据权利要求3所述的方法,其特征在于,在所述后台服务端将所述前台运行端所请求的运行数据发送至所述前台运行端之前,还包括 若所述后台服务端运行崩溃,则所述后台服务端执行重启并获取所述临时文件中的运行数据。
5.一种运行数据恢复方法,其特征在于,包括 前台运行端向后台服务端发送运行数据; 所述前台运行端在运行崩溃并再次接入运行时向所述后台服务端发送获取运行数据的请求; 所述前台运行端接收所述后台服务端发送的运行数据,进行运行数据的恢复; 其中,所述前台运行端与所述后台服务端之间通过进程间通信进行交互。
6.根据权利要求5所述的方法,其特征在于,在所述前台运行端向后台服务端发送运行数据之前,还包括 所述前台运行端通过其与所述后台服务端之间的系统接口进行绑定,以实现所述前台运行端与所述后台服务端之间的进程间通信。
7.根据权利要求5或6所述的方法,其特征在于,所述前台运行端向后台服务端发送运行数据,包括 所述前台运行端实时或定时或在更新运行数据时向所述后台服务端发送运行数据。
8.一种电子设备,其特征在于,包括前台运行端和后台服务端,所述后台服务端与所述前台运行端之间通过进程间通信进行交互, 所述前台运行端,用于向所述后台服务端发送运行数据;在运行崩溃并再次接入运行时向所述后台服务端发送获取运行数据的请求;接收所述后台服务端发送的运行数据,进行运行数据的恢复; 所述后台服务端,用于接收所述前台运行端发送的运行数据;接收所述前台运行端在运行崩溃并再次接入运行时发送的运行数据获取请求;将所述前台运行端所请求的运行数据发送至所述前台运行端。
9.根据权利要求8所述的电子设备,其特征在于,所述后台服务端与所述前台运行端之间通过系统接口进行绑定,以实现所述后台服务端与所述前台运行端之间的进程间通 目。
10.根据权利要求8所述的电子设备,其特征在于, 所述前台运行端,具体用于实时或定时或在更新运行数据时向所述后台服务端发送运行数据。
11.根据权利要求8至10中任意一项所述的电子设备,其特征在于, 所述后台服务端,还用于在接收所述前台运行端发送的运行数据之后,将所述运行数据保存至临时文件。
12.根据权利要求11所述的电子设备,其特征在于, 所述后台服务端,还用于在运行崩溃时,执行重启并获取所述临时文件中的运行数据。
全文摘要
本发明实施例公开了一种运行数据恢复方法及电子设备。其中,运行数据恢复方法包括后台服务端接收前台运行端发送的运行数据;所述后台服务端接收所述前台运行端在运行崩溃并再次接入运行时发送的运行数据获取请求;所述后台服务端将所述前台运行端所请求的运行数据发送至所述前台运行端,以使所述前台运行端进行运行数据的恢复;其中,所述后台服务端与所述前台运行端之间通过进程间通信进行交互。本发明实施例中实现了前台运行端运行数据的快速恢复,跳过了初始化流程。由于进程间通信为内存操作,相比起初始化流程中文件及网络I/O,在速度上有着质的飞跃,因此前台运行端的程序能以非常快的速度重新启动,极大地提升了用户体验。
文档编号G06F11/14GK102945193SQ20121041055
公开日2013年2月27日 申请日期2012年10月24日 优先权日2012年10月24日
发明者梁捷, 俞永福, 何小鹏, 朱顺炎, 汤锦鹏 申请人:广州市动景计算机科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1