欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > Android >内容正文

Android

卸载Android app弹出浏览器的一种实现

发布时间:2025/3/15 Android 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 卸载Android app弹出浏览器的一种实现 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

2019独角兽企业重金招聘Python工程师标准>>>

    卸载Android应用程序时,经常会弹出网页,做些用户数据的调查统计。Android是可以获取到其它应用被卸载掉这个事件,但是并不能获取自身被卸载这个事件。从纯粹的java层是没法实现的,本文介绍一种方法来实现它。


原理

    简单来说就是创建后台进程,监控文件夹的删除事件。比如说app的包名是com.myname.myapp,后台进程监控的文件夹就是/data/data/com.myname.myapp。如何监控文件夹被删除这一事件,主要用的是inotify系列函数,这在jni中的进程通讯的另一种实现方式 有介绍。


注意点

  • 后台进程只需要一个就行了,不需要多个的,之前我注意到企鹅的一款产品做这个功能时,后台启动了多个进程。如何实现?可以参考Android JNI层确保只有一个进程的一个实现,提供一种思路。

  • 几种重点测试情形:a. 清理app的数据  b.升级app   c. 强制关闭app,然后重启app。


  • 代码

    github地址 uninstallWatcher

    代码实现以及demo都有了,接口也已经封装好,判断后台进程是否唯一,有点过于简单,欢迎完善代码。

    代码使用也很简单。

    public class DemoApp extends Application{@Overridepublic void onCreate() {Log.i("UninstallDemoApp", "onCreate");WatchDog.init2("com.bananachip.uninstall", "libwatchDog.so", WatchDog.getUserSerial(this), "http://www.baidu.com");super.onCreate();}}

    程序员都看得懂,不做解释。

    我这个实现中,判断进程是否存在做的比较简单,仅仅是查询进程名libwatchDog.so。使用时自己要改名。


    如何编译?

    jni部分不是通过eclipse编译的。

    cd jni

    ndk-build

    rename.bat

    使用eclipse运行demo


    其它

    1.  本文参考了其它博客,不过博客实现有不少问题。

    2. 不是所有的android机型删掉app之后都能弹出网页,比如小米,红米,这些机型会对后台进程进行额外的管理。


    ------------欢迎评头品足

    ------------by jacksonke




    转载于:https://my.oschina.net/u/1445604/blog/496907

    总结

    以上是生活随笔为你收集整理的卸载Android app弹出浏览器的一种实现的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。