摘要:

近年来,智能手机的普及和应用使得Android移动应用市场日益壮大和复杂,各色各样的应用程序出现在普通用户的视野.随着移动应用软件更加紧密地进入到我们的日常生活中,应用软件的交互应该更加的快速,敏感,运行过程也应该具有更强的容错性能.不幸的是,甚至是目前非常流行的社交软件像新浪微博,微信等在运行过程中也会出现运行时未捕获异常,导致程序无法正常响应用户输入.我们需要重新启动程序运行,这个时候,之前浏览到的状态信息就面临丢失的情况.更甚者,对Android移动终端中的应用程序或系统服务等进行fuzzing测试时,过程一旦发生卡死崩溃,所做的工作将功亏一篑,所有的测试工作需要从头开始执行.因此,针对Android应用程序目前依然存在的此类缺陷,如何合理的保存应用程序的运行状态,提高程序的容错性和可靠性,是Android系统中的应用程序需要解决的问题.针对存在的上述问题,本文设计实现了一套Android系统上应用软件的异常恢复机制.基于这一目标,本文利用检查点技术对该系统进行实现.检查点技术在进程迁移,崩溃恢复或事务回滚等方面非常有用,尽管该技术在Linux等系统中已经得到了广泛的应用,在Android系统中却并未进行特别的应用.检查点机制按照实现方式主要分为内核级和用户级两种模式,鉴于Android系统的层次化设计特点,本文基于用户级检查点机制,设计实现了一套Android系统上应用程序的异常恢复系统.主要通过三个模块实现:异常监测模块,检查点设置模块和恢复模块.异常监测模块用于实时监测程序的运行过程;检查点设置模块用于保存目标程序正常运行状态下的进程信息;恢复模块用于在程序发生异常时,保证用户进程能够顺利恢复到检查点时刻继续执行.检查点设置点的选择,在Android中是影响程序顺利执行的关键,因为检查点的设置需要一定的时间和空间消耗,因此本文中检查点设置点的选择主要在涉及用户操作(例如按钮等)的位置前进行,这就保证了检查点时刻进程状态的可保存性,进而保证了进程恢复的可能性.

展开