UnInstallDemo
Android卸载自身,反馈统计
Install / Use
/learn @lzyickobe/UnInstallDemoREADME
Android应用监听自己是否被卸载,卸载后弹出反馈网页
在前人的基础上有这些解决方案
- 监听卸载广播,只能监听到别人卸载。自己被卸载的时候,早就收不到广播了。
- 监听log。这样听起来很靠谱,能稳定监听到,但是发送操作不靠谱。
- 监听/data/data/<package name>。当Android卸载应用的时候,会先删除这里的文件。可以轮询监听,可以优化成unix文件监听方式,,这样只用等待文件监听服务的回调。
采用了第3种解决办法,并对其进行了优化:
问题:
监听/data/data/<package name>这个目录,还存在以下几个问题:
- 清除数据、插拔USB线、覆盖安装等操作引起程序误判卸载。
- 重复监听的问题。
- 用户将已在Internal SD卡安装好的应用移动到external SD卡,导致监听不正常。
原因:
- 由于inotify_add_watch(fileDescriptor, path, IN_DELETE)这个函数会监听path目录下所有文件的删除操作导致。
- 重复调用JNI的init方法
- 暂时未修复
解决方法:
- 监听不应该针对整个文件夹,而是某个文件。
- 重复监听的问题,都可以通过加文件锁来防止
详细方案可参考我的博文:Android监听自己是否被卸载
参考自:
https://github.com/sevenler/Uninstall_Statics
http://www.cnblogs.com/zealotrouge/p/3157126.html
http://www.cnblogs.com/zealotrouge/p/3159772.html
http://www.cnblogs.com/zealotrouge/p/3182617.html
Related Skills
node-connect
342.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
85.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
342.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
342.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
