实践是知识的母亲,知识是生活的明灯。这篇文章主要讲述Android NDK开发——应用监听自身卸载,弹出用户反馈调查相关的知识,希望能为你提供帮助。
转载请注明出处:
http://blog.csdn.net/allen315410/article/details/42521251
监听卸载情景和原理分析
1,
情景分析
【Android NDK开发——应用监听自身卸载,弹出用户反馈调查】在上上篇博客中我写了一下NDK开发实践项目,
使用开源的LAME库转码MP3,
作为前面几篇基础博客的加深理解使用的,
但是这样的项目用处不大,
除了练练NDK功底。这篇博客,
我将讲述一下一个各大应用中很常见的一个功能,
同样也是基于JNI开发的android应用小Demo,
看完这个之后,
不仅可以加深对NDK开发的理解,
而且该Demo也可以使用在实际的开发中。不知道大家在使用一个Android应用的时候,
当我们卸载这个应用后,
设备上会弹出一个“用户反馈调查”的网页出来,
也许很多人没有留意过或者直接忽视了,
那么从现在开始请留意,
大家不妨下载一下“豌豆荚”“360”之类的应用装上,
然后卸载,
看看设备上有没有弹出浏览器,
浏览器上打开的“XXX用户反馈”?
上面写了一些html表单,
问我们“你为毛要卸载我们这么好的应用啊?
”“我们哪里得罪你了?
”“卸载之后,
你丫的还装不?
”,
呵呵,
开个玩笑,
实际效果如下图:
文章图片
好了, 上面的图片是感觉似曾显示啊? 那么这样的一个小功能是怎么实现的呢? 我们先从java层以我们有的Android基础分析一下:
1, 监听系统的卸载广播, 但是这个只能监听其他应用的卸载广播的动作, 通过卸载广播监听自己是监听不到的: 失败
2, 系统配置文件, 做一个标记应用是否卸载, 判断标记来show用户反馈, 显然这也是不合理的, 因为应用卸载之后, 配置文件也没有了。
3, 静默安装另一个程序, 监听自己的应用被卸载的动作。前提是要root, 才能实现。但是市场绝大多数手机都是默认没有root权限的。
4, 服务检测, 只能是自己开启, 当自身被卸载了, 服务也一并被干掉了。
以上几点看起来都无法实现这个功能, 确实如此啊, 单纯的从Java层是做不到这一点的。
2, 原理分析
上面情景分析后表明Java实现不了这样的一个功能, 是否该考虑一下使用JNI了, 用C在底层为我们实现这样一个打开内置浏览器加载用户反馈网页即可, 在知道这个方法之前, 我们有必要了解以下几个知识点。
推荐阅读
- 用eclipse开发Android,用Genymotion测试时报错adb发生错误
- Android SDK开发包国内下载地址
- Android native thread相关
- macaca环境搭建(web 和 android)
- android去掉EditView的默认焦点问题
- Android Phone进程启动过程详解
- Android Studio第三十二期 - RecycleView不同布局适配器写法
- C++ STL中的set::erase用法介绍
- 在数组中插入最小值,以使数组总和成为质数