Cactus

Project Url: gyf-dev/Cactus
Introduction: Android Keep Alive(安卓保活),keeplive 集成双进程前台服务,JobScheduler,onePix(一像素),WorkManager,无声音乐
More: Author   ReportBugs   
Tags:

使用

android studio

   implementation 'com.gyf.cactus:cactus:1.1.2'

用法(具体 api 请参考注释,这里就不一一列出来了)

java 用法

  • 注册
      Cactus.getInstance()
            .isDebug(true)
            .setPendingIntent(pendingIntent)
            .addCallback(new CactusaddCallback())
            .register(this)
    
  • 注销
      Cactus.getInstance().unregister(this)
    
  • 重启

      Cactus.getInstance().restart(this)
    

    kotlin 用法

  • 注册

      cactus {
         setPendingIntent(pendingIntent)
         setMusicId(R.raw.main)
         isDebug(true)
         addCallback(object : CactusCallback {
                override fun doWork(times:Int) {
    
                }
    
                override fun onStop() {
    
                }
         })
      }
    
  • 注销
      cactusUnregister()
    
  • 重启
      cactusRestart()
    

    混淆规则(proguard-rules.pro)

      -keep class com.gyf.cactus.entity.* {*;}
    

流程图

框架流程图

保活效果,仅供参考(数字代码 oom_adj 优先级,优先级数字越小越不容易被杀)

维度 android 6.0 以下虚拟机 android 7.1 虚拟机 android 7/8/8.1/9/10 虚拟机 vovo x23 android 9 华为 mate20 /OnePlus (android 9)
前台 0 0 0 0 0
后台(优化前) 6 立马死了 11 8 11
后台(优化后) 1 3 3 4 3
息屏(优化前) 6 立马死了 11 9 11
息屏(优化后) 0 3 3 4 3
  • 说明:oom_adj 优先级数字越小越不容易被杀

    | oom_adj | 说明 | oom_adj | 说明 | | :-------------: |:-------------:| :-------------:| :-------------:| | 0 | 前台进程 | 1 |可见进程 | | 2 | 可感知的进程,比如那种播放音乐 | 3 |正在备份的进程 | | 4 | 高权重进程 | 5 |有 Service 的进程 | | 6 | 与 Home 交互的进程 | 7 |切换进程 | | 8 | 不活跃的进程 | 9 |缓存进程,也就是空进程 | | 11 | 缓存进程,也就是空进程 | 15 |缓存进程,空进程,在内存不足的情况下就会优先被 kill | | 16 | 预留的最低级别,一般对于缓存的进程才有可能设置成这个级别 | | |

更新说明

1.1.2

  • 增加注销和重启功能
  • 增加判断服务是否是在运行中
  • 增加 hideNotificationAfterO 方法(是否隐藏 Android 8.0 以上通知栏)
  • 优化代码

1.1.1

  • 重点:修复 1.1.0 版本由于新增设置渠道 api(setNotificationChannel)忘记做渠道判断,导致在 8.0 以下手机奔溃,1.0.8 版本不受影响

1.1.0

  • 除了 android7.1 手机都可以隐藏通知栏了
  • 增加一些通知栏相关 api,比如可以自定义 view 了
  • 优化代码

1.0.8

  • 解决设置后台可以播放音乐,奔溃重启后无法继续播放音乐的问题

1.0.7

  • 增加前后台切换监听
  • 增加设置后台是否可以播放音乐的 api

联系我

  • QQ 群 314360549(问题交流)
Apps
About Me
Google+: Trinea trinea
GitHub: Trinea