• 请不要在回答技术问题时复制粘贴 AI 生成的内容
qq915458022
V2EX  ›  程序员

Android 上如何实现监听自身卸载

  •  
  •   qq915458022 · Jun 21, 2016 · 6749 views
    This topic created in 3789 days ago, the information mentioned may be changed or developed.
    用 native code fork 出来的进程在 L 以上貌似也会被杀掉…求问有什么办法监听啊?
    44 replies  •  2016-07-01 13:34:42 +08:00
    wy315700
    wy315700
    Jun 21, 2016
    1
    多开几个,总有先后顺序
    devzero
    devzero
    Jun 21, 2016 via Android
    2
    据说有种方法是抓 logcat
    ljbha007
    ljbha007
    Jun 21, 2016
    3
    写个服务轮询调用 ps 看进程号还在不 不在就启动
    kookxiang
    kookxiang
    Jun 21, 2016
    4
    记得 UC 浏览器卸载会弹调查问卷,可以看看
    qq915458022
    qq915458022
    OP
    Jun 22, 2016 via Android
    5
    @devzero 卸载的第一步就是杀掉线程,线程都挂了 log 抓不到啊…
    qq915458022
    qq915458022
    OP
    Jun 22, 2016 via Android
    6
    @ljbha007 卸载一开始服务都会全部挂,而且这样做不会损失性能么?
    qq915458022
    qq915458022
    OP
    Jun 22, 2016 via Android
    7
    @kookxiang 在 Android L 以上也会弹么?
    lee015
    lee015
    Jun 22, 2016 via Android
    8
    上全家桶相互监听
    devzero
    devzero
    Jun 22, 2016 via Android
    9
    @qq915458022 如果我没记错的话应该是点击卸载才杀的吧
    kookxiang
    kookxiang
    Jun 22, 2016❤️1
    10
    @qq915458022 N 年前就换了 Chrome 了,所以也不知道新版有没有改了
    ljbha007
    ljbha007
    Jun 22, 2016
    11
    貌似是可以弹窗拦截卸载 Intent 但是这样用户体验非常糟糕 建议放弃这个设计
    qq915458022
    qq915458022
    OP
    Jun 22, 2016 via Android
    12
    @devzero 对呀,但是如果用户点了取消就会以为卸载掉了…
    qq915458022
    qq915458022
    OP
    Jun 22, 2016 via Android
    13
    @kookxiang 我先去找找看,谢谢啦
    qq915458022
    qq915458022
    OP
    Jun 22, 2016 via Android
    14
    @ljbha007 倒是不用拦截😂只是想卸载的时候通知服务器一声
    ljbha007
    ljbha007
    Jun 22, 2016
    15
    @qq915458022 拦截了再转发给系统呀
    missingbobo
    missingbobo
    Jun 22, 2016
    16
    这种应用一般我都是卸载的
    vjnjc
    vjnjc
    Jun 22, 2016
    17
    哇,楼主跟我想到一块去了,有结果的话麻烦 at 我 :)
    shyling
    shyling
    Jun 22, 2016
    18
    在微看点里有个 libhelper.so 好像用来做这个,但是具体实现木有深入了解
    devzero
    devzero
    Jun 22, 2016 via Android
    19
    @qq915458022 是这么个思路,不过感觉和 11L 的差不多 http://hcq0618.blog.163.com/blog/static/178090351201352124640719/
    davin
    davin
    Jun 22, 2016
    20
    很多国产软件 / APP 就是这个尸水性,所以坚决不用。
    qq915458022
    qq915458022
    OP
    Jun 22, 2016 via Android
    21
    @shyling 是要看汇编的节奏么😂😂
    qq915458022
    qq915458022
    OP
    Jun 22, 2016 via Android
    22
    @ljbha007 如果用户点了取消呢?
    qq915458022
    qq915458022
    OP
    Jun 22, 2016 via Android
    23
    @missingbobo 就是卸载时向服务器发送一封遗书 啊…有没有什么危害…
    BSD
    BSD
    Jun 22, 2016❤️2
    24
    这论坛真有意思,经常一起喷流氓软件,却又经常一起研讨怎么才能让 app 更流氓。。。。
    qq915458022
    qq915458022
    OP
    Jun 22, 2016 via Android
    25
    @vjnjc 👌
    erDaren
    erDaren
    Jun 22, 2016
    26
    你,要,干,什,么,
    qq915458022
    qq915458022
    OP
    Jun 22, 2016 via Android
    27
    @BSD 并没有啊,只是向服务器发送一个卸载的统计数据而已
    qq915458022
    qq915458022
    OP
    Jun 22, 2016 via Android
    28
    @erDaren 向服务器发送一个统计数据。国内又没有 google 服务
    torchmu
    torchmu
    Jun 22, 2016
    29
    @devzero 看了一下手上荣耀 6 ,输出的是 act=android.intent.action.PACKAGE_REMOVED ,所以兼容性还是个问题。此外,魅族、华为等默认不输出高级日志,所以这也是个问题。再然后,即便能监听,首先还得保活,这已经是另一个难点了。
    momou
    momou
    Jun 22, 2016
    30
    卸载需要统计吗?
    在一定时间没连接服务器不就可以判定了
    qq915458022
    qq915458022
    OP
    Jun 22, 2016 via Android
    31
    @momou 关机呢
    qq915458022
    qq915458022
    OP
    Jun 22, 2016 via Android
    32
    @torchmu 我的想法是用辅助功能监听卸载的对话框,出现了后立即向服务器发送这么一个意图,如果后续没有取消这个意图就判定为卸载
    guyskk
    guyskk
    Jun 22, 2016
    33
    @qq915458022 要是没联网呢
    liyvhg
    liyvhg
    Jun 22, 2016 via Android
    34
    @qq915458022 如果卸载的时候还收将被卸载的 app 本身控制,可以发送数据到服务器就可以做其他事情,例如阻止卸载,例如卸载的时候释放安装其他 app ,好恐怖。
    qq915458022
    qq915458022
    OP
    Jun 22, 2016 via Android
    35
    @guyskk 所以只能粗略估计
    momou
    momou
    Jun 22, 2016
    36
    @qq915458022 如果一个用户几天都关机还算是有效用户?
    sunpj
    sunpj
    Jun 22, 2016
    37
    l 以上应该做不到了吧 系统机制改了 之前 fork 进程交给系统托管应该是正解
    qq915458022
    qq915458022
    OP
    Jun 22, 2016 via Android
    38
    @sunpj 交给 inil ?
    9hills
    9hills
    Jun 23, 2016
    39
    @qq915458022 你关机一天、两天,总不能关机 7 天吧。关机 7 天和卸载有啥区别。。

    只需要判断 last connection 的时间就好了,超过 7 天的认为卸载掉了
    qq915458022
    qq915458022
    OP
    Jun 23, 2016 via Android
    40
    @9hills 也行,我就这样实现算了
    qq915458022
    qq915458022
    OP
    Jun 23, 2016 via Android
    41
    @vjnjc 来看看吧~我准备这样实现了。
    vjnjc
    vjnjc
    Jun 23, 2016
    42
    @qq915458022 收到,能细问一下辅助功能是什么吗?他是 android 提供的某一个 manager ?
    qq915458022
    qq915458022
    OP
    Jun 23, 2016 via Android
    43
    @vjnjc 这玩意略强啊,几句话说不清楚的…大概意思就是能监控到屏幕最上方 app 的包名和控件类名,去看看开发文档吧
    wzxjohn
    wzxjohn
    Jul 1, 2016
    44
    想通过日志的各位可以歇歇了。。。国内厂商大多直接把日志关了,啥也监控不到啊。。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5125 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 67ms · UTC 06:18 · PVG 14:18 · LAX 22:18 · JFK 01:18
    ♥ Do have faith in what you're doing.