本发明专利技术提供一种基于Android系统实现应用程序开机快速恢复的方法,关机时,从系统活动栈中抓取正在运行的所有任务并解析各个任务的组件信息,提取包名和类名信息,通过序列化接口将包名和类名信息封装成二次序列化模型;将各二次序列化模型写入二次序列化模型列表中;通过持久层的对象输出流将该列表序列化写入内部存储设备,生成备份文件,实现快速写入终端的内部存储设备。当终端开机时,系统可以快速地通过反序列化和解封装解析出各个任务对应的包名和类名信息重新组装成各个任务对应的组件信息,创建新的任务单元,并往系统活动栈写入应用程序的活动信息,从而恢复备份的应用程序,恢复到用户最近一次关机时所处的应用程序的特定界面。
【技术实现步骤摘要】
基于Android系统实现应用程序开机快速恢复的方法
本专利技术属于移动通信领域,涉及一种基于Android系统实现应用程序开机快速恢复的系统及其方法。
技术介绍
目前,各种系统的应用程序开机恢复过程基本上都是要先在关机时将程序的全部信息备份到非易失性存储设备中,然后在开机时,通过读取保存在非易失性存储设备中的应用程序备份信息来实现程序的恢复。然而,通常在使用这种技术时会存在这样的问题:当正在运行的应用程序比较多、应用程序结构比较复杂、应用程序所蕴含的信息量比较大的情况下,很难快速的进行应用程序的关机备份与开机恢复。要改善这个不足的难题在于:如何快速的定位所要备份的应用程序、如何快速的提取所要备份的应用程序所需的有效信息并建立其对应的封装模型以及如何快速的对模型信息进行有效的存储。有鉴于此,本专利技术人针对现有技术的缺陷深入研究,并有本案产生。
技术实现思路
本专利技术要解决的技术问题,在于提供一种基于Android系统实现应用程序开机快速恢复的方法,通过应用程序任务的直接定位抓取、有效信息的直接提取、二次模型的简要封装、持久层序列化的快速写入,解决了Android系统中应用程序快速关机备份和快速开机恢复的难题。本专利技术是这样实现的:基于Android系统实现应用程序开机快速恢复的方法,所述方法适用于一开关机广播接收器、一后台备份恢复服务单元、一关机备份工作线程、一开机恢复工作线程以及一持久层;所述开关机广播接收器和后台备份恢复服务单元均向所述Android系统注册;所述方法包括关机备份步骤和开机恢复步骤,所述关机备份步骤如下:步骤10、所述开关机广播接收器监听Android系统的开机广播或关机广播,用户关机时,触发Android系统发送关机广播;步骤11、所述开关机广播接收器接收到所述关机广播,启动后台备份恢复服务单元;步骤12、所述后台备份恢复服务单元启动关机备份工作线程;步骤13、所述关机备份工作线程通过Binder进程间通信机制直接获取到Android系统的活动管理器,然后通过所述活动管理器直接从Android系统的活动栈中抓取正在运行的所有任务,然后将其保存到局部临时变量任务列表中;步骤14、从所述局部临时变量任务列表中依次解析出各个任务的组件信息;步骤15、从各个任务的组件信息中直接提取出各个任务的包名和类名信息,通过序列化接口将各个任务提取出来的包名和类名信息封装成二次序列化模型;步骤16、将各个任务对应的二次序列化模型依次写入二次序列化模型列表中;步骤17、通过持久层的对象输出流将所述二次序列化模型列表序列化写入内部存储设备,生成备份文件;所述开机恢复步骤如下:步骤20、所述开关机广播接收器监听Android系统的开机广播或关机广播,用户开机时,触发Android系统发送开机广播;步骤21、所述开关机广播接收器接收到所述开机广播,启动所述后台备份恢复服务单元;步骤22、所述后台备份恢复服务单元启动所述开机恢复工作线程;步骤23、通过持久层的对象输入流反序列化读取内部存储设备中的备份文件,生成所述二次序列化模型列表;步骤24、以逆序形式从所述二次序列化模型列表中依次读取出各个任务对应的二次序列化模型;步骤25、对各个任务对应的二次序列化模型进行模型解封装,解析出各个任务对应的包名和类名信息;步骤26、将解析出的各个任务对应的包名和类名信息重新组装成各个任务对应的组件信息;步骤27、利用重新组装后的组件信息创建Intent对象信息,并设置Intent对象的标志位;步骤28、启动所述创建的Intent对象信息,创建新的任务单元,Android系统将通过Binder进程间通信机制,往系统活动栈中写入对应的应用程序活动信息,从而恢复备份的应用程序。进一步地,所述步骤27中的Intent对象的标志位为FLAG_ACTIVITY_NEW_TASK。进一步地,所述步骤17中生成的备份文件设有备份时间标签,每执行一次所述关机备份步骤,生成的备份文件都单独分开保存,所述步骤23中根据备份时间标签选择性地读取相应的备份文件。本技术的优点在于:在基于Android系统的终端下,利用Android系统的特性,终端关机时,直接从Android系统的活动栈中抓取正在运行的所要备份的应用程序任务,从各个任务单元中直接提取出开机恢复过程所需的相关包名和类名信息,建立对应的二次序列化封装模型,通过持久层触发序列化,实现快速写入终端的内部存储设备。当终端开机时,系统可以快速地通过反序列化和解封装解析出各个任务对应的包名和类名信息重新组装成各个任务对应的组件信息,从而创建新的任务单元,并往系统活动栈写入应用程序的活动信息,从而恢复备份的应用程序,恢复到用户最近一次关机时所处的应用程序的特定界面,避免了让用户回想上次所使用过的应用程序而带来的烦恼。同时,本专利技术通过设有备份时间标签的备份文件记录了应用程序的执行历史,支持用户分析查看。附图说明下面参照附图结合实施例对本专利技术作进一步的说明。图1为本专利技术方法结构示意图。具体实施方式请参阅图1,基于Android系统实现应用程序开机快速恢复的方法,所述方法适用于一开关机广播接收器、一后台备份恢复服务单元、一关机备份工作线程、一开机恢复工作线程以及一持久层;所述开关机广播接收器和后台备份恢复服务单元均向所述Android系统注册;所述开关机广播接收器负责接收Android系统的开机广播和关机广播,然后启动所述后台备份恢复服务单元;所述后台备份恢复服务单元负责根据接收到的广播类型,启动相应的工作线程,维护整个Android系统的生命周期;所述关机备份工作线程与所述持久层连接,通过直接访问系统活动栈,提取各应用程序的相关信息进行二次序列化模型的封装、序列化后直接写入持久层进行备份;所述开机恢复工作线程与所述持久层连接,对所述二次序列化模型解封装、反序列化后,向所述系统活动栈写入活动信息,恢复应用程序;所述持久层负责对应用程序相关信息读写的封装;所述方法包括关机备份步骤和开机恢复步骤,所述关机备份步骤如下:步骤10、所述开关机广播接收器监听Android系统的开机广播或关机广播,用户关机时,触发Android系统发送关机广播;步骤11、所述开关机广播接收器接收到所述关机广播,启动后台备份恢复服务单元;步骤12、所述后台备份恢复服务单元启动关机备份工作线程;步骤13、所述关机备份工作线程通过Binder进程间通信机制直接获取到Android系统的活动管理器,然后通过所述活动管理器直接从Android系统的活动栈中抓取正在运行的所有任务,然后将其保存到局部临时变量任务列表中;需要说明的是,一任务对应一正在运行的应用程序;步骤14、从所述局部临时变量任务列表中依次解析出各个任务的组件信息;Android系统的组件信息包括服务信息、广播信息、intent信息以及活动信息;由于获得的各个任务的组件信息无法直接写入内部存储设备,因此本专利技术通过步骤15至步骤17来实现;步骤15、从各个任务的组件信息中直接提取出各个任务的包名和类名信息,通过序列化接口将各个任务提取出来的包名和类名信息封装成二次序列化模型;请参阅表1,其对二次序列化模型进行说明,其最左边的类名可自定义,中间的属性为二次序列化模型包含的内容,最本文档来自技高网...
【技术保护点】
基于Android系统实现应用程序开机快速恢复的方法,其特征在于:所述方法适用于一开关机广播接收器、一后台备份恢复服务单元、一关机备份工作线程、一开机恢复工作线程以及一持久层;所述开关机广播接收器和后台备份恢复服务单元均向所述Android系统注册;所述方法包括关机备份步骤和开机恢复步骤,所述关机备份步骤如下:步骤10、所述开关机广播接收器监听Android系统的开机广播或关机广播,用户关机时,触发Android系统发送关机广播;步骤11、所述开关机广播接收器接收到所述关机广播,启动后台备份恢复服务单元;步骤12、所述后台备份恢复服务单元启动关机备份工作线程;步骤13、所述关机备份工作线程通过Binder进程间通信机制直接获取到Android系统的活动管理器,然后通过所述活动管理器直接从Android系统的活动栈中抓取正在运行的所有任务,然后将其保存到局部临时变量任务列表中;步骤14、从所述局部临时变量任务列表中依次解析出各个任务的组件信息;?步骤15、从各个任务的组件信息中直接提取出各个任务的包名和类名信息,通过序列化接口将各个任务提取出来的包名和类名信息封装成二次序列化模型;步骤16、将各个任务对应的二次序列化模型依次写入二次序列化模型列表中;步骤17、通过持久层的对象输出流将所述二次序列化模型列表序列化写入内部存储设备,生成备份文件;所述开机恢复步骤如下:步骤20、所述开关机广播接收器监听Android系统的开机广播或关机广播,用户开机时,触发Android系统发送开机广播;步骤21、所述开关机广播接收器接收到所述开机广播,启动所述后台备份恢复服务单元;步骤22、所述后台备份恢复服务单元启动所述开机恢复工作线程;步骤23、通过持久层的对象输入流反序列化读取内部存储设备中的备份文件,生成所述二次序列化模型列表;步骤24、以逆序形式从所述二次序列化模型列表中依次读取出各个任务对应的二次序列化模型;步骤25、对各个任务对应的二次序列化模型进行模型解封装,解析出各个任务对应的包名和类名信息;步骤26、将解析出的各个任务对应的包名和类名信息重新组装成各个任务对应的组件信息;步骤27、利用重新组装后的组件信息创建Intent对象信息,并设置Intent对象的标志位;步骤28、启动所述创建的Intent对象信息,创建新的任务单元,Android系统将通过Binder进程间通信机制,往系统活动栈中写入对应的应用程序活动信息,从而恢复备份的应用程序。...
【技术特征摘要】
1.基于Android系统实现应用程序开机快速恢复的方法,其特征在于:所述方法适用于一开关机广播接收器、一后台备份恢复服务单元、一关机备份工作线程、一开机恢复工作线程以及一持久层;所述开关机广播接收器和后台备份恢复服务单元均向所述Android系统注册;所述方法包括关机备份步骤和开机恢复步骤,所述关机备份步骤如下:步骤10、所述开关机广播接收器监听Android系统的开机广播或关机广播,用户关机时,触发Android系统发送关机广播;步骤11、所述开关机广播接收器接收到所述关机广播,启动后台备份恢复服务单元;步骤12、所述后台备份恢复服务单元启动关机备份工作线程;步骤13、所述关机备份工作线程通过Binder进程间通信机制直接获取到Android系统的活动管理器,然后通过所述活动管理器直接从Android系统的活动栈中抓取正在运行的所有任务,然后将其保存到局部临时变量任务列表中;步骤14、从所述局部临时变量任务列表中依次解析出各个任务的组件信息;步骤15、从各个任务的组件信息中直接提取出各个任务的包名和类名信息,通过序列化接口将各个任务提取出来的包名和类名信息封装成二次序列化模型;步骤16、将各个任务对应的二次序列化模型依次写入二次序列化模型列表中;步骤17、通过持久层的对象输出流将所述二次序列化模型列表序列化写入内部存储设备,生成备份文件;所述开机恢复步骤如下:步骤20、所述开关机广播接收器监听Android系统的开机广播或关机广播,用户开机时,触发Android系统发送开机广播;步...
【专利技术属性】
技术研发人员:郭国勇,杨磊,吕瑞明,
申请(专利权)人:厦门雅迅网络股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。