概述
在某些场景下,我们想让某些app能一直在前台或者后台运行,而不被Android系统杀死.这时就涉及到了应用保活.应用保活可以从两个方向来实现,一个是应用层,一个是系统层.
Android系统进程优先级
应用保活从本质上来讲就是提高进程的优先级.详细可以参考以下博客:
https://www.jianshu.com/p/4ee14aa23f07
下面是Android定义的ADJ值.
应用保活
对用开发app的公司来说,由于没有系统源码,所以只能从app层面来考虑保活;但是对于rom定制厂商来说就可以从系统层实现app保活.
应用层方式
应用层保活可以参考下面的博客:
https://blog.csdn.net/qq_30993595/article/details/90678273
该博客详细介绍了几种主流的应用保活方式.
系统层方式
对于没有白名单机制的Android版本
--- a/frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -518,6 +518,9 @@ public class ActivityManagerService extends IActivityManager.Stub
static final String SYSTEM_DEBUGGABLE = "ro.debuggable";
+ // hefang add for disable kill service