AutoStarter vs dont-kill-my-app:Android 自启动权限开源库终极横评
【免费下载链接】AutoStarterThis library helps bring up the autostart permission manager of a phone to the user so they can add an app to autostart.项目地址: https://gitcode.com/gh_mirrors/au/AutoStarter
你是否遇到过这样的糟心事:App 在国产手机上总是收不到推送通知、后台一锁屏就被"杀掉"?这背后就是Android 自启动权限在作祟。今天我们要横评的两款开源项目——AutoStarter和 dont-kill-my-app,正是为了解决"安卓自启动权限"难题而生的明星方案。前者是一行代码调起设置页的开发库,后者是教用户手动设置的引导工具,到底谁更适合你的场景?读完这篇横评,你就能做出判断。
为什么"安卓自启动权限"成了老大难问题?
一切要从国产 ROM 的特殊机制说起。小米、华为、OPPO、vivo 等厂商为了省电,默认会把"不认识的 App"加入后台黑名单,导致 App 无法在后台运行,也收不到 FCM/推送消息。
更麻烦的是,自启动权限设置页没有公开的 Android SDK API,每个厂商的入口包名、Activity 都不一样,官方文档里根本查不到。开发者只能靠"黑名单式"维护各厂商的跳转路径——这正是 AutoStarter 这类库存在的意义。
两位选手简介:AutoStarter 与 dont-kill-my-app 分别是什么?
AutoStarter:一行代码调起自启动设置页
AutoStarter 是一个面向开发者的轻量级 Android 库(API 14+),核心思想非常直接:它预先收集了各厂商"自启动权限管理页"的包名和 Activity 组件名,通过 Intent 直接跳转过去。整个核心实现只有一个类:AutoStartPermissionHelper.kt,采用单例模式,极简、无弹窗、无多余依赖。
dont-kill-my-app:手把手教用户关掉"杀后台"
dont-kill-my-app 则完全是另一种思路:它是一个面向普通用户的引导工具,把各品牌手机的"后台保活"设置路径整理成图文教程。用户打开后按图索骥,一步步找到"电池优化""自启动管理"等开关并手动关闭,从根上解决 App 被杀的问题。
核心差异:五大维度横向对比
| 对比维度 | AutoStarter | dont-kill-my-app |
|---|---|---|
| 🎯 项目定位 | 面向开发者的依赖库 | 面向普通用户的引导工具 |
| ⚙️ 使用方式 | Gradle 引入 + 一行代码调用 | 打开 App / 网页看图文教程 |
| 🔧 实现原理 | Intent 深度跳转到厂商设置页 | 图文步骤引导手动设置 |
| 📱 支持厂商 | 约 10 家(详见下文) | 覆盖面更广、更新更活跃 |
| 📦 集成成本 | 极低,一条依赖即可 | 无需集成,开箱即用 |
| 👥 适用人群 | App 开发者、推送服务接入方 | 普通用户、客服指引 |
一句话总结:AutoStarter 帮你"跳过去",dont-kill-my-app 教你"自己找"。
AutoStarter 快速接入:3 步搞定自启动权限
如果你是一名 Android 开发者,想在 App 里引导用户开启自启动权限,AutoStarter 是最快的路径。
第 1 步:Gradle 引入依赖
在模块的build.gradle中添加一行依赖即可(通过 JitPack 仓库):
implementation 'com.github.judemanutd:autostarter:1.1.0'第 2 步:调用核心 API 调起设置页
在需要的位置(比如检测到设备不支持推送时)调用:
AutoStartPermissionHelper.getInstance().getAutoStartPermission(context)它会根据Build.BRAND自动识别品牌,并跳转到对应厂商的自启动管理页面。方法返回布尔值,告诉开发者跳转是否成功。示例工程的完整写法可以参考 MainActivity.kt。
第 3 步:先检测设备是否支持
跳转前建议先做一次"体检",避免在不支持自启动权限的设备上做无用功:
AutoStartPermissionHelper.getInstance().isAutoStartPermissionAvailable(context)如果返回false,说明当前设备是原生 Android 系统或无需该权限,可以安心跳过引导。
支持的厂商清单:你的手机在里面吗?
根据 README.md 的说明,AutoStarter 目前已支持以下厂商(部分标注"未测试"):
- 小米 / 红米 / POCO(
com.miui.securitycenter) - 华为(
com.huawei.systemmanager) - 荣耀(未测试)
- OPPO(未测试)
- vivo(未测试)
- 三星(
com.samsung.android.lool) - 华硕(
com.asus.mobilemanager) - 乐视(
com.letv.android.letvsafe) - 诺基亚(
com.evenwell.powersaving.g3) - 一加(未测试)
由于厂商会不定期更换包名和页面路径,这类"名单式"方案非常依赖社区维护。幸运的是,AutoStarter 也欢迎 PR 贡献,遇到新机型可以一起补充。
到底怎么选?一份简单的决策清单
- ✅ 你是App 开发者,想自动跳转到自启动设置页 → 选AutoStarter
- ✅ 你是普通用户,手机 App 总被杀后台 → 用dont-kill-my-app
- ✅ 你接入了Firebase/推送服务,国产机型收不到通知 → AutoStarter + 引导弹窗的组合拳最合适
- ✅ 你想研究各厂商设置页的跳转细节→ 直接阅读 AutoStartPermissionHelper.kt 源码,里面的 Intent 构造与降级回退逻辑非常值得参考
- ✅ 你想跑一遍 Demo 体验效果 → 用
git clone https://gitcode.com/gh_mirrors/au/AutoStarter拉取仓库,app模块就是一个完整的示例工程
总结
Android 自启动权限是国产 ROM 生态下绕不开的痛点,AutoStarter 用极简的 Intent 跳转方案,把"调起自启动设置页"这件事压缩到了一行代码;而 dont-kill-my-app 则用海量图文教程覆盖了更广的机型。两者并非竞争关系,而是互补关系——开发者用 AutoStarter 完成"引导跳转",用户配合手动设置,双管齐下,才能让推送和后台服务在国产手机上真正"活"下来。选哪个?看你的角色就一目了然了。🚀
【免费下载链接】AutoStarterThis library helps bring up the autostart permission manager of a phone to the user so they can add an app to autostart.项目地址: https://gitcode.com/gh_mirrors/au/AutoStarter
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考