android 后台保活解析
在 Android 平台上实现后台保活越来越困难(尤其是 Android 8.0+ 和 12+),系统对后台运行限制非常严格。**没有 100% 保活的方法**,但可以通过多种手段提高存活率。以下是基于 Kotlin 的常见保活步骤(合法、非恶意场景)。1. 添加必要权限(AndroidManifest.xml)```xmluses-permission android:name="android.permission.FOREGROUND_SERVICE" /uses-permission android:name="android.permission.WAKE_LOCK" /uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" /!-- 如果需要使用广播唤醒 --uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /``` 注意:`REQUEST_IGNORE_BATTERY_OPTIMIZATIONS` 需要动态申请。2. 创建前台服务(Foreground Service)前台服务必须显示一个常驻通知,用户可见,被杀死概率较低。2.1 定义服务类(Kotlin)```kotlinimport android.app.*import android.content.Contextimport android.content.Intentimport android.os.IBinderimport android.os.PowerManagerimport androidx.core.app.NotificationCompatclass KeepAliveService : Service() { private lateinit var wakeLock: PowerManager.WakeLock override fun onCreate() { super.onCreate() // 获取唤醒锁(保持 CPU 运行) val powerManager = getSystemService(Context.POWER_SERVICE) as PowerManager wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "KeepAlive:WakeLock") wakeLock.acquire() } override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { // 创建通知渠道(Android 8.0+) createNotificationChannel() n