问题的提出
- 目前android的系统,我们的程序常常由于几种原因被停掉或杀掉而不能及时重启,这对于一个安全程序来说是有相当的隐患的。例如
- 当用户从程序管理里面停掉程序。
- 其他程序优化系统时杀掉程序。
- 程序崩溃。
- 在android系统里,其他程序还能禁掉我们程序各种广播接受器,导致我们程序不能根据广播来启动。
问题的解决
- 因此,这里我想了一个办法来解决这个问题。
- 我们在android程序运行时启动一个native程序,名字叫supervisor, 该程序具备以下几个功能
- 定时检测android程序是否还在运行,如果没在运行,则启动android程序的service。
- 同一时间只有一个supervisor进程,不会起多个supervisor进程。
- 能检测android程序是否被卸载,如果被卸载则结束supervisor进程。
- 我们使用NDK实现一个native程序,程序代码如下: