一种Android系统的应用恢复方法及系统的制作方法

文档序号:9326703阅读:427来源:国知局
一种Android系统的应用恢复方法及系统的制作方法
【技术领域】
[0001] 本发明涉及Android系统领域,尤其涉及一种Android系统的应用恢复方法及系 统。
【背景技术】
[0002] 应用程序,例如网格UI应用程序在初期发布时,一般都运行正常,因为其经过了 严格的测试才发布到终端,但经过一段时间的运行,由于与云端进行了数据交互,最终应用 程序可能由于不可预期的错误,导致无法正常启动。
[0003] 因此,现有技术还有待于改进和发展。

【发明内容】

[0004] 鉴于上述现有技术的不足,本发明的目的在于提供一种Android系统的应用恢复 方法及系统,旨在解决现有技术中应用程序在启动时发生启动异常的问题。
[0005] 本发明的技术方案如下: 一种Android系统的应用恢复方法,其中,包括步骤: A、 当应用程序启动异常时,将错误信息以及设备信息上报至云端服务器,并在系统中 设置一用于表示所述应用程序出现启动异常的标记; B、 当该应用程序下次启动时,在系统中读取是否存在该标记,若存在则删除从云端 服务器下载的缓存文件,并使用应用程序正常启动时备份的缓存文件,以启动所述应用程 序; C、 判断应用程序是否启动成功,若未成功则进入步骤D ; D、 启动一下载更新模块,通过所述下载更新模块从云端服务器下载该应用程序的更新 文件,以启动所述应用程序。
[0006] 所述的Android系统的应用恢复方法,其中,所述步骤D包括: D1、启动一下载更新模块,并暂停启动所述应用程序; D2、通过所述下载更新模块从云端服务器下载该应用程序的更新文件; D3、根据所述更新文件启动所述应用程序。
[0007] 所述的Android系统的应用恢复方法,其中,所述步骤D3之后还包括: D4、当成功启动所述应用程序时,则删除所述标记。
[0008] 所述的Android系统的应用恢复方法,其中,所述设备信息包括设备号、设备ID、 系统版本号、软件版本号及软件版本名称。
[0009] 所述的Android系统的应用恢复方法,其中,所述上报至云端服务器的错误信息 中设置有一用于标识应用程序的标示。
[0010] 所述的Android系统的应用恢复方法,其中,所述应用程序为网格UI应用程序。
[0011] -种Android系统的应用恢复系统,其中,包括步骤: 上报模块,用于当应用程序启动异常时,将错误信息以及设备信息上报至云端服务器, 并在系统中设置一用于表示所述应用程序出现启动异常的标记; 第一层处理模块,用于当该应用程序下次启动时,在系统中读取是否存在该标记,若存 在则删除从云端服务器下载的缓存文件,并使用应用程序正常启动时备份的缓存文件,以 启动所述应用程序; 判断模块,用于判断应用程序是否启动成功,若未成功则进入第二层处理模块; 第二层处理模块,用于启动一下载更新模块,通过所述下载更新模块从云端服务器下 载该应用程序的更新文件,以启动所述应用程序。
[0012] 所述的Android系统的应用恢复系统,其中,所述第二层处理模块包括: 启动单元,用于当存在该标记时,则启动一下载更新模块,并暂停启动所述应用程序; 下载单元,用于通过所述下载更新模块从云端服务器下载该应用程序的更新文件; 启动单元,用于根据所述更新文件启动所述应用程序。
[0013] 所述的Android系统的应用恢复系统,其中,所述第二层处理模块还包括: 删除单元,用于当成功启动所述应用程序时,则删除所述标记。
[0014] 所述的Android系统的应用恢复系统,其中,所述设备信息包括设备号、设备ID、 系统版本号、软件版本号及软件版本名称。
[0015] 有益效果:本发明从应用出现异常的原因出发,通过Java的特性来解决,具体是 在应用程序出现异常时,对其进行标记,然后重启应用,并且将从云端服务器下的缓存文件 删除,从而使用之前备份的缓存文件,解决应用程序在与云端交互时不兼容的问题。
【附图说明】
[0016] 图1为本发明一种Android系统的应用恢复方法较佳实施例的流程图。
[0017] 图2为本发明一种Android系统的应用恢复系统较佳实施例的结构框图。
【具体实施方式】
[0018] 本发明提供一种Android系统的应用恢复方法及系统,为使本发明的目的、技术 方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体 实施例仅仅用以解释本发明,并不用于限定本发明。
[0019] 请参阅图1,图1为本发明一种Android系统的应用恢复方法较佳实施例的流程 图,如图所示,其包括步骤: 5101、 当应用程序启动异常时,将错误信息以及设备信息上报至云端服务器,并在系统 中设置一用于表示所述应用程序出现启动异常的标记; 5102、 当该应用程序下次启动时,在系统中读取是否存在该标记,若存在则删除从云端 服务器下载的缓存文件,并应用程序正常启动时备份的缓存文件,以启动所述应用程序; 5103、 判断应用程序是否启动成功,若未成功则进入步骤S104,若成功则进入步骤 S105 ; 5104、 启动一下载更新模块,通过所述下载更新模块从云端服务器下载该应用程序的 更新文件,以启动所述应用程序; 5105、 结束。
[0020] 当应用程序,特别是网格UI应用程序刚发布时,一般不会出现异常,这是因为其 经过了较严格的测试才发布到终端。但经过一段时间的运行,就可能出现异常,例如协议字 段不匹配等不可预期的错误出现时,网格UI进程可能会停止运行;同时,由于错误数据已 经缓存到本地,下次重启依然会加载此错误数据,导致网格UI停止运行的错误无法恢复。
[0021] 应用程序在初始运行时未出现异常,但是当与云端交互时,则可能出现不兼容问 题导致应用程序无法运行。为了解决上述数据不兼容的问题,在本发明中基于Java的异常 处理机制来解决: Java 中有一个接口 :UncaughtExceptionHandler,其描述如表 1 : 表1
通过上述分析,就可以实现这样一个接口,在应用程序的主线程中设置处理程序,即当 应用程序的主线程出现异常的时候,对其进行容错处理。
[0022] 当应用程序启动出现异常时(此处以网格UI应用程序为例),判断是否已将错误信 息上报给云端服务器,如果未将错误信息上报,则将错误信息上报给云端服务器。如果已 将错误信息上报给云端,为了信息的准确性,同时将以下设备信息同步上传给云端服务器, 如:设备号(Dnum)、设备 ID(Deviceld)、系统版本号(ClientType SystemVersion)、软件版 本号(SWVersion)及软件版本名称(SWVersionName,包括代码的SVN号)。
[0023] 同时在系统中设置一用于表示所述应用程序出现启动异常的标记,表示该应用程 序出现了异常,需要容错处理,标记成功后,则结束运行,然后重新启动。
[0024] 在该应用程序再次启动时,读取系统中是否存在所述标记,如果存在,则在启动 时,将从云端服务器下载的缓存文件删除,从而使用应用程序正常启动时备份的缓存文件 (例如应用程序最近一次正常启动备份的缓存文件),因为不能启动的原因是由于客户端与 客户端从服务端下载的协议及其它文件不兼容导致的,所以改为使用之前正常启动的备份 的缓存文件即可解决上述问题。
[0025] 但上述方案仅仅能够作为应用程序异常启动的第一层保护机制,其原因有三:首 先,上述方案仅对未做异常处理的应用程序起作用,如果某个应用程序已经事先准备好异 常处理,则在该应用程序启动异常时首先需要添加异常处理逻辑,若未执行异常处理,则可 能不会进入到主线程的全局处理,即无法执行上述的容错处理。其次,有些应用程序在开发 时未按规则正常编写代码,这样在进行第一层保护时,无法捕获全局异常,导致服务端的协 议出问题时反复重启应用程序。再者,某些应用程序无法启动的原因不是客户端与客户端 下载的资源文件不兼容导致的,所以即使使用应用程序正常启动时备份的资源文件也并不 能解决该问题。
[0026] 本发明中,还采用了第二层保护机制,其主要是修改应用程序的启动机制,使其能 够修复问题,并且可以
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1