NDK-实现监听应用卸载弹出网页

  • 内容
  • 评论
  • 相关

前言

在我们使用360手机助手的时候,当卸载360以后,会打开一个反馈的网页,虽然猜想大多数人和我一样直接关了,但是其实现却是一个很有意思的东西,应用都被卸载完了,居然还能打开网页,下面就来介绍下其的实现(Android 5.0以下有效)。

实现

通过效果图我们可以看到,当我们开启卸载监听以后,在最近程序列表里面杀死了我们的应用,可是当卸载的时候还是能打开我们指定的网页。

其实是我通过在native层fork了一个进程,在Android 5.0之前,通过任务栏只能杀死应用的进程,native进程还是能够继续运行。

那么当什么时候我们的native进程知道应用被卸载了呢?其实应用安装就是解压apk的过程,应用数据都放在/data/data/package-name/目录下面,如果这个目录没了,那么就说明apk被卸载了,我们可以通过while(1)来循环监听,不过linux给我们提供了一个更好的方法,使用inotify监控文件动作。具体用法可以参考:江淼的Blog

通过上面的分析我们就清楚了大致步骤了,开启一个native进程通过inotify监听/data/data/package-name/目录是否存在,当目录被删除的时候打开一个网页即可。具体实现如下,注释已经很清晰。

Demo下载地址:github

参考链接:生死看淡,不服就干!  、江淼的Blog

评论

0条评论

发表评论

电子邮件地址不会被公开。