默认
打赏 发表评论 29
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
Android保活从入门到放弃:乖乖引导用户加白名单吧(附7大机型加白示例)
阅读(155556) | 评论(29 收藏10 淘帖2 2
微信扫一扫关注!

1、引言


IM在Android上的保活问题经常在即时通讯网的论坛和技术群里被讨论,自从Android 8.0后系统大大降低了后台运行应用的保活容忍度(详见《Android P正式版即将到来:后台应用保活、消息推送的真正噩梦),保活从黑科技横行的时代进入了技术蛮荒阶段,真要实现保活,技术难度越来越大。

Android保活从入门到放弃:乖乖引导用户加白名单吧(附7大机型加白示例)_00.jpg

不过话说回来,既然用黑科技进行保活是Andriod技术的逆潮流,那何不回头是岸,做个“良民”?

本文将以某款线上的IM产品为例,介绍它是如何引导用户在多款主流机型上加白名单的,并分享了该款IM中已制作完成的多达7款主流Andriod机型的详细加白FAQ页面资源(含完整HTML+图片),方便您进行参考、学习和研究,希望能为你的应用开发带来帮助。

特别申明:本文示例中的资源来自某款真实的IM产品,仅供学习和研究,请勿用作非法用途,如有侵权,请告之于我。

本文已同步发布于“即时通讯技术圈”公众号,欢迎关注:
Android保活从入门到放弃:乖乖引导用户加白名单吧(附7大机型加白示例)_52im_qr_即时通讯技术圈_400px.png
▲ 本文在公众号上的链接是:https://mp.weixin.qq.com/s/JqWloZLBYicpxElVL_HKYw

2、Android保活,变的越来越不可能了


IM产品在Android上的保活问题从早期的系统版本到现在,从未有人停止过尝试。即时通讯通讯网也随着Andriod系统版本的升级,持续整理了很多篇相关文章,比如下面这些(文章的顺序按照Android系统的版本从低到高)。


上面这些文章,我们可以看到,自从Android 8.0即Andriod P)以后,IM以及其它需要在后台保活的产品,存活难度越来越高,黑科技几乎都不起作用了。

于是,一些技术从牛们只能从更深的Android系统层面尝试突破系统的保活限制,比如这两篇:《史上最强Android保活思路:深入剖析腾讯TIM的进程永生技术》、《Android进程永生技术终极揭密:进程被杀底层原理、APP应对被杀技巧》。

正如上面两篇文章,为了跟系统作斗争,可谓斗智斗勇。但Android系统的历史进程终究无人能阻挡,越来越严格的保活限制已经是Android官方及各大手机厂商的共识。

好吧,之前费尽心机折腾的各种黑科技,如今就像浮云一样。。。

Android保活从入门到放弃:乖乖引导用户加白名单吧(附7大机型加白示例)_01.jpg

3、死磕保活?别做梦了,回头是岸


正如上节所述,鉴于Andriod保活变的越来越不可能,很多原本靠黑科技保活的产品,开始重新审视保活技术实现,到底是把保活黑科技这条路走到黑,还是回归Android官方最佳实践(乖乖引导用户手动设置白名单)?

我个人认为,后者是保活技术发展的必然结果,就像之前分享的这篇文章里所做的尝试一样:《2020年了,Android后台保活还有戏吗?看我如何优雅的实现!》,规范地引导用户“加白”。

放弃“黑科技”,并不意味着技术不行,回归“良民”,反而变的一身轻松

Android保活从入门到放弃:乖乖引导用户加白名单吧(附7大机型加白示例)_02.jpg

4、调用系统代码引导用户加白名单,也不完美


之前整理的《2020年了,Android后台保活还有戏吗?看我如何优雅的实现!》一文,是按照不同的机型,自动适配代码并在代码中调用系统的加白名单设置功能。

比如像下面这样的代码调用:
Android保活从入门到放弃:乖乖引导用户加白名单吧(附7大机型加白示例)_WX20200613-105158@2x.png
▲ 以下代码引用自《2020年了,Android后台保活还有戏吗?看我如何优雅的实现!

会弹出这样一个窗口:
Android保活从入门到放弃:乖乖引导用户加白名单吧(附7大机型加白示例)_153402vuqlcoxa8lwuivv8.jpg

这个方法确实不错,但因为机型不同、同机型的ROOM版本不同,代码的兼容处理,可能会相当复杂,所以方法虽好,但也并不能一劳永逸的解决所有问题。

5、应用内提供更多机型的“加白”FAQ帮助,是一个补充办法


正如上节所示,调用系统代码引导用户加白名单确实算的上“优雅”,但在不同的机型、同机型的不同系统版本上,可能差异很大,代码兼容性是个头疼的问题,总之这不是个百分百完美的办法。

这就需要一个补充手段,比如我们可以针对大量不同的机型,针对它的最行或最常用系统版本,在应用内以FAQ帮助网页的方式,为用户提供帮助。

比如可以在手机里打开像下面这样FAQ网页页面:
Android保活从入门到放弃:乖乖引导用户加白名单吧(附7大机型加白示例)_QQ截图20200613112447.jpg

至少能在调用系统代码无法实现的情况下,可以让用户自主找到解决问题的办法。而这便是本文要分享,下节内容会以一个市面上做的比较好的IM应用为例,为你提供一个完整示例。

6、一个完整的“加白”FAQ帮助示例


最近发现的一款市面上的IM应用(此产品跟即时通讯网无任何关系,仅仅是作为技术研究参考对象而已),它内置的“加白”FAQ帮助就很完善。

以下是从该款IM中截下来的图:
Android保活从入门到放弃:乖乖引导用户加白名单吧(附7大机型加白示例)_44.jpg

以下是该款IM应用中的运行演示视频(点此打开视频链接):


目前该应用中FAQ帮助已覆盖7款主流Andriod机,以下是完整示例页面链接:


可以看到,这款IM里的“加白”FAQ做的还是比较细、覆盖的机型也比较典型, 如果你有类似的想法或需求,完全可以参考这款产品的实现。尤其在一些特定的场景(比如企业内部的IM等)下,这种方式还是能解决大部分终端用户的问题的。

7、覆盖7款主流机型的“加白”FAQ页面静态资源(附件下载)


我整理了上节中提到的这款IM产品中的全部“加白”FAQ帮助页面静态资源,覆盖7款主流Andriod机型,如果你也需要同样的东西,可以参考这份完整的示例实现,打包到手机中使用之。

以下是这份静态资源示例的内容(图太长,已截掉了一部分):
Android保活从入门到放弃:乖乖引导用户加白名单吧(附7大机型加白示例)_55.jpg

以下是这份静态资源示例的打包附件(点击可下载):
覆盖7款主流机型的“加白”FAQ页面示例(HTML CSS 图片).zip (5.48 MB , 下载次数: 595 , 售价: 2 金币)

附录:更多精品资源汇总


[1] 精品源码下载:

[2] 精品文档和工具下载:

[3] 精选视频、演讲PPT下载:

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

上一篇:Android进程永生技术终极揭秘:进程被杀底层原理、APP应对被杀技巧下一篇:要做国外IM聊天应用,请问Android默认的FCM推送支持锁屏呼叫吗

本帖已收录至以下技术专辑

推荐方案
评论 29
哈哈哈,放弃了
引用:liu1348789134 发表于 2020-06-22 11:38
哈哈哈,放弃了

放弃挣扎。。。忘记保活黑科技。。
苦海无边 回头是岸
引用:kk.zhang 发表于 2020-06-23 14:55
苦海无边 回头是岸

正解
试了这个方法,一小时后还是被杀了。。下载了这个悦跑圈app,看到通知栏上面,有悦跑圈正在运行,是不是还开了service来保活呢。。。
引用:土豆 发表于 2020-06-30 10:29
试了这个方法,一小时后还是被杀了。。下载了这个悦跑圈app,看到通知栏上面,有悦跑圈正在运行,是不是还 ...

加白名单还被杀?
引用:JackJiang 发表于 2020-06-30 13:25
加白名单还被杀?

是啊,我们做的一个收款的app,想一直在后台,有人付款就报声音的,,,电池白名单和允许后台允许都开了,,可以坚持一个小时,,不加的话,几分钟就没声音了
引用:JackJiang 发表于 2020-06-30 13:25
加白名单还被杀?

我看这个app,应该是开了服务吧,应该不止加白名单

978978.png (127.9 KB, 下载次数: 715)

978978.png
引用:土豆 发表于 2020-06-30 18:15
我看这个app,应该是开了服务吧,应该不止加白名单

它开了个前台服务,你也试试加一个前台服务,android系统明确表示了前台服务的存活优先级很高。
引用:JackJiang 发表于 2020-06-30 22:12
它开了个前台服务,你也试试加一个前台服务,android系统明确表示了前台服务的存活优先级很高。

好的,谢谢啦,我也开个试下
引用:土豆 发表于 2020-07-01 08:53
好的,谢谢啦,我也开个试下

嗯 你试试看,是什么效果你反馈我看看
引用:JackJiang 发表于 2020-07-01 11:10
嗯 你试试看,是什么效果你反馈我看看

嗯,可能过几天才能反馈,现在测试部在忙别的
引用:土豆 发表于 2020-07-01 11:43
嗯,可能过几天才能反馈,现在测试部在忙别的

ok
引用:土豆 发表于 2020-07-01 11:43
嗯,可能过几天才能反馈,现在测试部在忙别的

1. 加入电池优化白名单,忽略电池优化
2. 启动前台服务
3. 允许自启动

兄弟,测试的怎么样了?
引用:古德爱_hjO06 发表于 2020-07-08 11:15
1. 加入电池优化白名单,忽略电池优化
2. 启动前台服务
3. 允许自启动

还没开始测呢最近忙别的去了,我现在就是加这3个。。允许自启动这个对用户来说还是挺麻烦的啊,不知道有没有什么办法可以一键允许
引用:古德爱_hjO06 发表于 2020-07-08 11:15
1. 加入电池优化白名单,忽略电池优化
2. 启动前台服务
3. 允许自启动

加了这3个,目前反馈的结果是五小时后还能保活(灭屏状态下)。感觉前台服务很重要,不加前台服务,只能保持一小时。

版主,需要加这3个。
1. 加入电池优化白名单,忽略电池优化
2. 启动前台服务
3. 允许自启动
加了这3个,目前反馈的结果是五小时后还能保活(灭屏状态下)。感觉前台服务很重要,不加前台服务,只能保持一小时。
引用:土豆 发表于 2020-07-22 09:53
版主,需要加这3个。
1. 加入电池优化白名单,忽略电池优化
2. 启动前台服务

是的,前台服务存活级别很高。我在小米上实测试,加了前台服务,差不多可以存活24小时。按照常理来说,用户一般不会间隔24小时还不再次手动打开im,如果再次打开,应该存活时间还会重置,理论上可以一直活下去
引用:土豆 发表于 2020-07-22 09:51
加了这3个,目前反馈的结果是五小时后还能保活(灭屏状态下)。感觉前台服务很重要,不加前台服务,只能 ...

太好了!另外,整个过程中,网络有没有被限制,比如熄屏后没多久,长连接就断开的情况?
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部