=保活机制=

20210401  福州,潮湿,android 规整

 

【提供优先级】

 

※AndroidManifest.xml中配置persistent属性

限制:程序必须是系统程序,即其安装目录为/system/apk/目录下才会有效。安装后路径为 /data/apk/目录下即使设置了该属性也不会有效果。

 

※提高service优先级,开启前台通知栏

※与NotificationManager交互,让进程变成可感知进程

限制:后台运行时对用户会有感知。在8.0以上也会受一定限制,锁屏后会被杀

 

※发送/接收广播,别让自己变成空进程

限制:只是稍微提高被杀的几率

 

※监听锁屏广播开启“1像素”Activity提升优先级

限制:锁屏熄屏一定时间后会被干掉,不起作用

 

※后台循环播放无声音频

限制:Android7.0以下适用,且一直播放音频费电损害用户的利益

 

========================================================================================

【应用拉活方案】

 

※利用系统广播拉活

应用:监听全局静态广播:比如时间更新的广播、开机广播、解锁屏、网络状态、亮屏暗屏解锁等

限制:已经不适用,Android8.0上隐式广播限制,只能动态注册,即要程序运行才能监听到这些广播。

 

※利用第三方应用广播拉活

推送互相唤醒复活:极光、友盟、以及各大厂商的推送

同派系APP广播互相唤醒:比如今日头条系、阿里系

保活互助联盟

限制:

1)要集成他们的sdk或加入联盟,互相拉活。

2)反编译分析top应用软件寻找外发的广播,后续版本该广播随时可能被移除或改为不外发

 

※利用系统Service机制拉活

将 Service 设置为 START_STICKY,利用系统机制在 Service 挂掉后自动拉活

限制:

1)service异常杀死后重启时间线性增长(5s,10s,……),达5次后将不再拉取

2)通过 Root 权限的管理工具或系统工具通过 forestop 停止掉的,无法重启(国内主流手机厂商均采用forestop这种方式)

 

※利用Native进程拉活

利用 Linux 中的 fork 机制创建 Native 进程,在 Native 进程中监控主进程的存活,当主进程挂掉后,在 Native 进程中立即对主进程进行拉活。

限制:5.0起系统回收策略改成进程组。 高版本上黑科技也是采用这种方式的演变,这是一个相互博弈的过程,旧版本可用下一个版本可能就被修复,技术要求高。

 

※利用定时器、JobScheduler 机制拉活

系统满足一定条件时会触发执行某项的任务

限制:Android6.0以下可用,7.0上有一定影响(在电源管理中授权)。在7以上版本一键清理后就无法重启

 

※利用账号同步机制拉活

Android 系统的账号同步机制会定期同步账号进行,该方案目的在于利用同步机制进行进程的拉活。添加账号和设置同步周期 AccountManager 实现方法就是SyncAdapter ,利用系统的Account进行回调,启动Service 执行Sync操作。该方案需要在 AndroidManifest 中定义账号授权与同步服务。

限制:适用8.0以下对这部分未阉割的系统,8以上已修复

 

※其他拉活方案

利用辅助功能拉活,将应用加入厂商或管理软件白名单。

限制:

1)花钱与厂商合作。

2)编写FAQ文档引导用户加白,系统的加白名单设置功能,不同机型和版本适配复杂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值