Skip to content

附录4:APP怎么保活(杀不死)?

pppscn edited this page Aug 16, 2022 · 8 revisions

v3.x 开始内置 Cactus 增强保活措施

Android Keep Alive(安卓保活),Cactus 集成双进程前台服务,JobScheduler,onePix(一像素),WorkManager,无声音乐

详见:https://github.com/gyf-dev/Cactus

网友提供方案:

1、稳定保活发送方案 使用红米9A手机

(PS.不推荐这么搞,优先采用app内置的增强保活方案) 1. 使用usb线接入电脑或者服务器。 2. 安装adb组件。 3. 打开开发者模式 4. adb进行授权 adb attach 然后允许授权 5. 配置定时任务每分钟执行命令 适用 v2.x.x :adb shell am start -n com.idormy.sms.forwarder/com.idormy.sms.forwarder.MainActivity 适用 v3.x.x :adb shell am start -n "com.idormy.sms.forwarder/com.idormy.sms.forwarder.activity.SplashActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER


via:sinyu1012/AndroidKeepAlive

前言

  • 什么是保活?保活就是在用户主动杀进程,或者系统基于当前内存不足状态而触发清理进程后,该进程设法让自己免于被杀的命运或者被杀后能立刻重生的手段。
  • 为什么保活:赢得在线时长、实时需求

思路

  • 前台进程
  • 可见进程
  • 服务进程
  • 后台进程
  • 空进程

主流思路有两个:

  • 提升进程优先级,降低被杀概率
  • 进程被杀后,重新拉起进程

保活方案(不互斥)

  • startForeground 启动前台服务【官方提供,会有通知,保活性不高】
    • 进阶点:开启前台Service
  • 多任务列表窗口加锁【用户自行设置】
  • 多任务列表窗口隐藏App【设置路径: 通用设置不在最近任务列表中显示
  • 多个app关联唤醒【目前不支持,用户自行通过其他方式定时启动APP】
  • 忽略电池优化开关【设置路径: 通用设置忽略电池优化设置,适用于 Android 6.0+
  • 无障碍服务【PS.此方案暂时不打算搞】
  • 应用自启动权限(各个系统不一样)【设置路径: 通用设置开机启动
  • QQ 的 1 像素(可以使进程的优先级在屏幕锁屏时间由4提升为最高优先级1)【设置路径: 通用设置1像素透明Activity保活,适用于 SmsForwarder v2.4.3+
  • 后台播放无声音乐【设置路径: 通用设置后台播放无声音乐,适用于 SmsForwarder v2.4.3+
  • 双进程保活,适用于 Android 6.0 之前【PS.此方案不打算搞】
  • Tim 流氓保活方案开源库【PS.此方案不打算搞,太流氓了】
  • 终极方案:跟各大系统厂商建立合作关系,OOM_ADJ 【PS.此路不通,没有门路搞这个!】
  • 配置定时执行adb命令【用户自行设置】

PS. 打勾【✔】表示目前已经支持