安卓手机卫士:看门狗程序锁原理与实现.pdfVIP

  • 0
  • 0
  • 约1.8万字
  • 约 16页
  • 2026-01-22 发布于北京
  • 举报

安卓手机卫士:看门狗程序锁原理与实现.pdf

说明:

*只要打开一个应用程序,ActivityManager都是非常清楚的。*所有

Activity的操作,ActivityManager都会进行相应的日志打印。

*因此可以利用ActivityManager,对任何打开的Activity进行监视。

*由于这是一个监视功能,不需要界面,可以放在服务中。

图示:

创建看门狗(程序锁)

1、创建服务,在文件中配置

2、在onCreate()方法中监视当前运行的应用程序

准备工作:

*定义是否开启程序锁的标记flag,默认为true。在服务开启时(执行onCreate方

法时),需要执行监视操作(里面的while的flag为true才行)。*定义两个广播接收

者:屏幕锁屏和屏幕的接收者,需要在onCreate方法中实例化。在各自的

onReceive方法中:屏幕锁屏:清空临时存放受保护应用程序的集合,并将标记改为

false。屏幕:判断标记,false:是锁屏时设置的false,需要在时继续进行监视,

即将线程启动,开启监视行为;true:不再向下执行,不再执行开启监视行为。如果是服

务停止了(标记被改为false了),此时就不会再接收广播了(服务创建的接收者)

说明:

*只要打开一个应用程序,ActivityManager都是非常清楚的

*所有的Activity的操作,ActivityManager都会进行相应的log打印的

*所有就可以利用ActivityManager,对任何打开的Activity进行监视了

*由于是一个监视的功能,不需要界面,放到服务之中

图示:

创建看门狗(程序锁)

1、创建服务,在文件中配置

2、onCreate()方法中监视当前运行的应用程序

准备工作:

*定义是否开启程序锁的标记flag,默认为true

在服务开启的时候(执行onCreate方法时),需要执行监视操作(里面的while的

flag为true才行)

*定义两个广播接收者:屏幕锁屏和屏幕的接收者,需要在onCreate方法中实例化

在各自的onReceive方法中:

屏幕锁屏:清空临时存放受保护应用程序的集合,并将标记改为false

屏幕:判断标记,

false:是锁屏时设置的false,需要在的时候继续进行监视,

即将线程启动,开启监视行为

true:不再向下执行,不再执行开启监视行为

如果是服务停止了(标记被改为false了),此时就不会再接

收广播了(服务创建的接收者)

*服务自定义一个广播接收者:用于传递被添加和移除的临时停止受保护的包名(在输

入界面接收这个数据)。

*将数据库内容加载到内存(为了优化,直接查询数据库会比较耗时,查询内存比较快)

*创建意图,开启输入的界面

(注意:在服务中开启Activity,需要设置标志:

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);)

*获取ActivityManager【am】,其中可以有获取正在运行中的任务栈

的方法*初始化服务的广播接收者

开启新线程,让看门狗监视进程

让看门狗监视当前运行的应用程序1更改flag为true,为了可以循环执行线程操作2通过

am获取当前正在运行的任务栈(需限才能获取:

android.permission.GET_TASKS)

am.getRunninsks(maxNum)【infos】

*maxNum:接收的是最大的任务栈,设置为1即可,即集合中的第一个元素为打开

的任务

*返回的是一个集合:集合中的内容按照先后顺序排序,打开的任务栈在最前

面。其中第一个元素为打开的任务栈:infos.get(0)

*获取栈顶的Activity:可以得到此Activity对象,获取包名

5获取到打开的任务栈的包名,判断是否在受保护的集合

文档评论(0)

1亿VIP精品文档

相关文档