核心要点: 24/7 移动代理手机的电池衰减来自高荷电状态下的日历老化,而非循环次数。通过 OEM 自带开关或智能插座 + ADB 脚本 把充电上限设到 80%,把 iProxy 与 OpenVPN 标记为"无限制" ,关闭 Android 省电模式与自适应电池 ,并把环境温度控制在 25°C 以下。这套组合可以把典型 Android 代理手机从 12 个月内损失 30–40% 容量,推到 12 个月仍保留 90% 以上的状态,相当于硬件服役周期延长 2–3 倍。
为什么电池健康度是 24/7 代理手机的瓶颈
移动代理手机电池寿命是任何 24/7 Android 代理业务里最可预测、占比最高的一项成本。移动代理跑在真实的 Android 手机上,全天候插着市电;手机本身就是消耗品。在一年到两年的 24/7 使用周期里,电池是最先出现衰减的部件。一颗典型锂电池在无管理充电模式下,12 到 18 个月会损失 25% 到 40% 的初始容量。手机仍然能开机,但负载下温度更高,代理连接掉线更频繁,最终电芯会鼓胀到把机壳或屏幕顶开。
实验室基准已经给出了清晰的解释。Battery University 的 BU-808 储存表 给出的估算是:以钴系锂电池为例,在 25°C 下满电存放一年还剩约 80% 容量,而 40% 电量下存放一年仍有 96%;同样在 40°C 下满电存放一年,则只剩约 65%。
对任何规模的代理集群而言,这种更换节奏都是移动代理运营中最大的一笔可预测成本。其背后的老化机理已经被研究得相当清楚,并且会随着运营者可控的几个变量而变化:电芯所处的上限电压、停留在该电压的时间,以及工作温度。
这篇文章覆盖锂电池如何衰减的电化学原理、24/7 运行场景下的具体影响、Android 端的配置取舍(很多"省电"功能其实在主动削弱代理在线率),以及在手机代理农场里可用于管理充电过程的硬件方案。
锂电池到底是怎么工作的
一颗锂电池有三个核心部件:石墨负极、钴酸锂或类似化合物的正极,以及一层让锂离子在两者之间往返的电解液。此外还有防止电极短路的隔膜,以及两侧的集流体:负极用铜,正极用铝。
充电时,电场把锂离子从正极晶格中推出,挤进石墨负极。锂离子嵌入石墨的碳层之间,这个过程叫做嵌入(intercalation)。放电时,锂离子反向迁移,回到正极时释放出的能量通过外部电路变成电流输出。
电芯的荷电状态(State of Charge,SoC),也就是"还剩多少电",对应的是有多少锂离子停留在负极、有多少在正极。100% SoC 时,负极接近饱和;0% SoC 时,正极接近饱和。
电芯电压就是手机测量并以百分比显示出来的那个数值。但电压和 SoC 并不是线性关系,它更像一条拉长的 S 曲线,而这条非线性关系正是整篇文章里最关键的一个事实。
电压曲线与 80% 拐点
把典型锂电池的电压对 SoC 画出来,会出现三个区域:
- SoC 低于约 20%:电压从约 3.4V 急剧跌向 3.0V 的截止电压。低于 3.0V 时,电芯会自我关闭以保护。
- SoC 在约 20% 到 80% 之间:电压平缓地从约 3.6V 上升到约 4.05V。这是曲线上"舒服"的工作区。
- SoC 高于约 80%:电压从 4.05V 陡升到 4.20V 的硬上限(某些化学体系会拉到 4.35V,原理一致)。
80% 之上的过渡区通常被称作曲线的"拐点"。这并不是营销话术,而是电化学状态从"舒适"切到"应力"的真实分界。越过拐点之后,电芯会同时发生两件事:
- 石墨负极几乎被锂离子塞满。晶格在机械上已经膨胀到接近极限,像一块绷在临界状态的海绵。再嵌入一颗锂离子的代价更高,结构缺陷的风险也更大。
- 电压逼近电解液的电化学稳定窗口。在 4.20V 附近,电解液分子已经处在能否保持完整的边缘。再往上,副反应会指数级加快。
为什么曲线比百分比更重要 手机显示"100%“时,电芯电压约为 4.20V;显示"80%“时,电芯电压约为 4.05V。屏幕上看似只差 20%,电压差却是 0.15V,而这 0.15V 对应大约 2–3 倍的老化速率差距;BU-808 把同一关系总结为:峰值充电电压每比 4.20V 降低 0.10V,循环寿命大致翻倍。
高荷电状态为什么会加速老化
高 SoC 下最主要的老化机制是 SEI 膜(固体电解质界面膜)增长。SEI 是电芯首次充电时在负极表面形成的一层薄膜,本身是有用的:它阻止负极继续与电解液反应。但 SEI 并不稳定。在高电压下,电解液会在 SEI 表面缓慢分解,使其增厚,每一次分解都消耗一小部分可循环利用的锂离子。被锁住的锂离子无法再参与循环,电芯的可用容量随之下降。
SEI 增长与电压、温度近似遵循 Arrhenius 关系。经验法则是:最大充电电压每降低 0.1V,电芯循环寿命大致翻倍;同样的电压敏感性也会减轻日历老化压力。温度方向一致:工作温度每降低 10°C,都是真实意义上的寿命延长,而不是表面好看。
正极一侧还有第二个机制。高电压下,正极晶格中的过渡金属(钴、锰、镍等)会溶出进入电解液,迁移到负极并沉积在表面。这会污染 SEI,进一步加速劣化。这就是为什么习惯性充到 100% 的电芯,其衰减往往比循环次数所能预测的还要快。
日历老化,也就是单纯随时间、电压和温度推移而发生的衰减(无论电芯是否在循环),是常年插电的手机最关键的变量。BU-808 的储存表给出了运营者最需要的数字:锂电池在 25°C、100% SoC 下存放一年剩约 80%;同表中 40% SoC 条件下则剩约 96%。同行评议的锂电池日历老化研究 给出方向一致的结论:100% 储存 SoC 的影响极大,而在 80% 以下影响明显减弱。
对 24/7 代理手机来说,结论很直接:让它一直插着电、保持在 100%,日历老化就会主导整个寿命。手机几乎不循环(因为永远是满电的),因此也不存在用循环次数"换"来的服务里程。
深度放电同样有害
低 SoC 这一面的镜像问题比较少被讨论,但同样真实存在。
SoC 低于约 20% 时,正极几乎被锂离子塞满,其晶体结构开始变得不稳定。在富钴正极中,氧原子可能从晶格中释放出来。当电压跌到 2.5V 以下(远低于手机显示的"0%"),负极一侧的铜集流体会开始溶解进电解液。一旦电芯掉到这一档,后续充电时可能形成枝晶状沉积,提高内阻并带来内部短路风险。
手机固件会在远早于此之前把电芯切断,一般是在电芯电压 3.0V,也就是屏幕上显示的"0%"。但即便如此,反复在截止电压附近循环仍然会带来应力,长期在 5% 附近见底的电芯,比每次在 30% 见底的电芯老化更快。
20% 到 80% SoC 这一区间,对两侧电极而言都是结构和电化学层面应力最低的工作窗口。电池研究中反复提到的"20–80 法则"原因就在这里。
79→80% 与 99→100% 的悖论
一个常见的困惑:如果把手机设为只充到 80%,那它不就是一直在 79% 和 80% 之间反复循环吗?这怎么会比 99%↔100% 更好?
答案是:百分比波动本身不重要,重要的是波动发生在哪个电压区间。
79→80% 循环让电芯在大约 4.00V 与 4.05V 之间往返。这个电压下 SEI 增长缓慢,电解液分解缓慢,石墨晶格有空间弹性变形。电芯把这种波动当成一次温和的微循环。
99→100% 循环则在大约 4.17V 和 4.20V 之间。这里 SEI 增长速率高出数倍,电解液氧化速率呈指数级抬升,石墨晶格处于最大应力状态。即使只是 1% 的顶部补电,损伤也明显不成比例。
实际效果上,被锁定在 80% 上限、绝大多数时间在 4.00V 附近做微循环的手机,可以比无限制充电的手机多撑 2–5 倍寿命。BU-808 的充电电压表给出的循环估算是:4.20V/电芯约 300–500 次循环,4.06V/电芯约 600–1,000 次,3.92V/电芯约 1,200–2,000 次,正好对应代理手机从不再 100% 浮充开始的那段区间。
24/7 代理运营中真正杀死电池的因素,按影响排序
对于一台插着电跑代理节点的手机,主要老化机制按影响大致从大到小排列如下:
- 高 SoC 下的日历老化。 长时间停留在 100% 是最糟糕的模式。浮充电压保持在 4.20V,会持续推高 SEI 增长。
- 温度。 BU-808 的储存表估算:25°C、100% 满电存放一年还剩约 80%,但 40°C、100% 满电存放一年只剩约 65%。一台塞在墙边、夏天又没什么气流的机柜里,电池正好运行在这条曲线最贵的那一段。
- 高倍率充电。 快充会让电芯升温并冲击电极。对 24/7 运营场景,0.3 至 0.5C 的慢充比快充友好得多。
- 深度放电。 对常年插电的手机影响相对小,但如果手机偶尔因断电跌到 5%,这些事件累计起来比每次只到 30% 的手机伤害更大。
- 循环次数。 这是电池规格表里写的"循环寿命"对应的指标,但对永远插电的手机来说几乎无关紧要:手机几乎不循环,主导因素是日历老化。
一个有用的心智模型:把手机每停留在 4.10V 以上电压的每一分钟视为"贵”,3.7V 到 4.05V 之间的每一分钟视为"便宜”,3.4V 以下的每一分钟同样"贵"。
Android 电池机制与对代理在线率的影响
理解这一部分需要两个心智模型。
第一个是 App Standby Bucket(应用待机分组) 体系。Android 9 引入,并在之后每个版本里持续收紧。每个应用根据用户的交互频率被分配到五个分组之一(active、working_set、frequent、rare、restricted)。分组越低,可执行的 job、闹钟越少,到了 rare 和 restricted 还会被严重限制网络访问。同样从 Android 9 开始的**自适应电池(Adaptive Battery)**功能,在分组之上再叠加一层机器学习模型。Doze 模式(Android 6 引入)则在最底层,当手机空闲且静置时延后后台网络与 CPU 活动。
第二个是前台服务(foreground service)契约。一个持有前台服务、并显示常驻通知的应用,会被系统视为用户可感知的工作,绝大多数分组相关的限制在服务运行期间会被暂停。iProxy 与其他所有长连接型网络应用一样,依靠前台服务保持可达。
官方 Android Standby Bucket 文档里有一个值得记住的细节:“这些限制只在设备使用电池供电时生效。设备充电时,系统不施加这些限制。” 这个豁免条款正是为什么常年插着电源的手机,即使在 rare 或 frequent 分组里通常依然能跑代理。也正因为如此,使用智能插座循环充电的手机(会在充电与不充电之间切换)可能在断电窗口期突然触发分组限制。还有两条特定规则无论是否在充电都生效:Android 12 的 restricted 桶,以及 Android 15 的前台服务时长上限。
下面是按版本列出的、对 24/7 代理 App 有影响的变化,重点放在运营者要做什么。
想直接看每一步怎么点? 下面按版本的小节解释每个版本"改了什么"以及"为什么"。如果你只关心在每个 Android 版本上如何把 iProxy 和 OpenVPN for Android 隧道应用都设为"无限制"的具体点击步骤(含截图),请看如何在 Android 上为 iProxy 和 OpenVPN 关闭电池优化 。系统层面的开关(省电模式、自适应电池、80% 充电上限)请看配套指南:关闭 Android 省电模式与设置代理手机 80% 充电上限 。
Android 9(API 28):应用待机分组、自适应电池、FOREGROUND_SERVICE
- 引入 App Standby Buckets 与 Adaptive Battery。低桶应用的 job 与闹钟会被逐级限流。
- 目标 SDK 为 Android 9 的应用必须申请
FOREGROUND_SERVICE权限,否则启动前台服务会抛出SecurityException。 - 被挂起应用的通知会被隐藏直到应用恢复,而不是被直接取消。
对常年插电、跑在 Android 9 上的代理手机来说,只要应用持有前台服务,这些变化都不是致命的。
Android 10(API 29):后台启动 Activity 限制
- 后台中的应用不能再启动 Activity,只有少量豁免(通知跳板、无障碍服务等)。
- 后台定位需要单独的运行时权限(
ACCESS_BACKGROUND_LOCATION),与前台定位分离。
代理应用一般不会从后台启动 Activity,所以影响不大。只有当应用需要通过远程指令把自身 UI 拉回前台时,这条规则才重要。
Android 11(API 30):权限自动重置、WorkManager 成为必选
- 用户"几个月没交互"的应用,运行时权限会被自动重置。这是 Android 12 应用休眠机制的前身。
- 目标 API 30+ 的应用,Firebase JobDispatcher 与 GcmNetworkManager 全部禁用。WorkManager 是唯一受支持的调度器。
- 后台定位不能再通过运行时弹窗申请,用户必须显式去设置里授予。
对一个"用户装一次就不再打开"的代理应用而言,权限自动重置是个真实风险。要么用户每隔几个月手动打开一次,要么逐应用关闭休眠(Android 12 起提供该开关)。
Android 12(API 31):应用休眠、restricted 桶、后台启动 FGS 禁令
这是第一个会在常年插电场景下打破 24/7 代理的版本,原因是多条变化叠加。
- 应用休眠。 建立在 Android 11 权限自动重置之上。几个月未使用的应用会被吊销权限并进入休眠状态,在用户再次打开之前都无法在后台运行。逐应用开关:设置 → 应用 → iProxy → 关闭"如果应用未使用则暂停应用活动"(或对应 OEM 的同义标签)。
restricted待机桶。 在rare之下新增第五档桶。即便在充电状态下也施加限制:每天最多在一次 10 分钟的批处理窗口内运行 1 个 job,每天最多 1 个闹钟(精确或非精确均可),并对网络做严格限流。触发条件:用户 45 天未交互,或应用因过多广播 / 绑定被标记。- 后台不能启动前台服务。 目标 SDK 为 Android 12+ 的应用,本身在后台时不再允许启动前台服务,只有小范围豁免(闹钟、推送、无障碍服务、点击通知等)。代理应用的前台服务必须从系统认可的"前台"上下文启动(开机完成、精确闹钟、用户交互)。
- Phantom 进程上限。 每个应用最多 32 个子进程。对会派生大量子进程的应用有影响,单进程代理应用几乎不会撞到这条。
Android 12+ 上运营者要做的事:显式关闭代理应用的休眠;确保前台服务从被允许的上下文启动;每隔一两个月显式打开一次应用,把它挡在 rare 桶之外,并避开 45 天后被丢进 restricted 桶的触发条件。
Android 13(API 33):POST_NOTIFICATIONS 运行时权限、restricted 桶进一步收紧
- POST_NOTIFICATIONS 升级为运行时权限。 目标 API 33+ 的应用必须在显示普通通知之前申请该权限。Android 通知权限文档 对前台服务给出了一个重要区分:如果用户拒绝该权限,前台服务的提示仍会出现在任务管理器中,只是不再出现在通知栏。这意味着前台服务不会仅因为通知权限被拒就降级为普通后台服务,但运营者会失去通知栏这条用于发现掉线和重启的可视信号。
restricted桶触发时间由 45 天缩短到 8 天,针对目标 Android 13+ 的应用。一个一周左右没被用户显式打开的代理应用,就可能掉入restricted。- BOOT_COMPLETED 在用户设置的"受限"电池状态下被屏蔽。 Android 文档原文:“如果你的应用目标为 Android 13,且被用户置于后台电池使用的受限状态,系统将不会再发送 BOOT_COMPLETED 或 LOCKED_BOOT_COMPLETED 广播,直到应用因其他原因被启动。” 开机自启在这个状态下不再有保证。
- 任务管理器 UI 允许用户从通知抽屉看到并停止前台服务,无论通知权限是否被授予。
Android 13+ 上运营者要做的事:首次安装时就授予 POST_NOTIFICATIONS 以便观察与诊断;在逐应用电池设置中把代理应用设为"无限制";接受 8 天窗口的现实:应用必须周期性地"被用过",要么靠正常使用,要么靠一个外部看门狗(ADB 脚本 + cron)按计划重新打开它。
Android 14(API 34):前台服务类型强制声明、JobScheduler ANR
- 强制声明前台服务类型。 每个长时间运行的前台服务都必须在 manifest 中声明类型:
dataSync、mediaPlayback、connectedDevice、specialUse、shortService、health、remoteMessaging等。未声明类型的应用会被直接杀掉;声明错误的应用可能被 Google Play 政策标记。 - JobScheduler ANR 强制执行。 如果
onStartJob或onStopJob在主线程上运行过久,系统会触发 ANR(“No response to onStartJob”)。以前这种情况是静默失败的。 - 调用
JobScheduler中setRequiredNetworkType()或setRequiredNetwork()时,必须持有 ACCESS_NETWORK_STATE,否则抛SecurityException。
对代理应用来说最关键的是前台服务类型声明。选错类型会直接影响后续的限制范围,包括下面要讲的 Android 15 6 小时上限。
Android 15(API 35):前台服务 6 小时上限
- 目标 Android 15 的应用,前台服务类型
dataSync与新引入的mediaProcessing受 24 小时窗口累计 6 小时的运行时长上限,详见 Android 的前台服务超时文档 。前台服务运行满 6 小时后,系统会调用Service.onTimeout();如果服务没有在几秒内调用stopSelf(),就会抛出RemoteServiceException(“A foreground service of type dataSync did not stop within its timeout”)。 - 配额耗尽后,再次启动
dataSync或mediaProcessing前台服务会抛出ForegroundServiceStartNotAllowedException,提示 “Time limit already exhausted for foreground service type dataSync”。 - 6 小时预算在用户把应用带回前台时重置。对 24/7 代理节点来说,这件事自己不会发生。
- 不受 6 小时上限约束的前台服务类型包括
specialUse、connectedDevice、mediaPlayback、camera、phoneCall、microphone与location(受当时 Google Play 关于各类型用途的政策约束)。
这条规则是最容易打破 24/7 代理运行的一项变化。对应的缓解方式是:声明一个符合应用用途、又不受 6 小时上限约束的前台服务类型。iProxy 这类做流量转发的角色,比起 Google 设计给"周期性同步用户数据"的 dataSync,更贴近 specialUse 或 connectedDevice。
Android 16(API 36):JobScheduler 配额进一步收紧
- 根据 Android 16 行为变更文档
,基于待机桶的 job 运行时长配额 现在也作用于
active桶,而不仅是更低的桶。 - 顶状态与前台服务并发的 job 配额。 那些在应用可见时启动、应用不可见后继续运行的 job,以及与前台服务并发执行的 job,现在都必须遵守此前可以绕过的运行时长配额。
JobInfo.setImportantWhileForeground完全废弃并被忽略。scheduleAtFixedRate在应用回到有效生命周期之后只会补跑一次错过的执行,而不再像以前那样把所有错过的执行一次性补完。- 新增
STOP_REASON_TIMEOUT_ABANDONED,用于区分未被妥善清理的 job 与一般超时。
对一个在主前台服务旁还使用 job 的代理应用而言,实际影响是:job 不能再依赖"与前台服务并发"来获得无限运行时间。长时间的工作要么放进前台服务本身,要么放在用户主动发起的数据传输 job 里。
Android 17(API 37):后台启动 Activity 进一步收紧
- Background Activity Launch(BAL)进一步限制。 此前使用
MODE_BACKGROUND_ACTIVITY_START_ALLOWED的应用需要迁移到MODE_BACKGROUND_ACTIVITY_START_ALLOW_IF_VISIBLE,否则后台 Activity 启动会被屏蔽。 - 后台音频收紧。 音频播放、音频焦点与音量相关 API 现在要么需要前台服务并具备 while-in-use 能力,要么需要
USAGE_ALARM类型的精确闹钟权限。主要影响媒体类应用。
对典型代理应用而言,Android 17 基本无感:只需确认 targetSdkVersion 是最新的,并且应用不依赖从后台拉起 Activity。
OEM 定制系统的"杀手功能"(与 Android 版本正交)
抛开原生 Android,OEM 定制系统普遍带有激进的电池管理策略,严重程度从尚可接受(原生 Pixel)到几乎敌对(华为)不等。常见模式与对应解决方法:
| OEM / 系统 | 激进策略 | 默认状态 | 代理与 VPN 应用应设为 |
|---|---|---|---|
| Google Pixel(原生 Android) | 逐应用电池优化、自适应电池、应用待机分组 | 已优化 | iProxy 与 OpenVPN 设为无限制;无人值守的代理手机建议关闭自适应电池 |
| 小米(MIUI、HyperOS) | 自启动管理、MIUI 省电策略、“高耗电"警告 | 限制性高(非系统应用默认禁止自启) | 自启动开启,在最近任务中锁定,逐应用电池设为无限制 |
| 三星(One UI) | “将未使用的应用置于休眠”、休眠应用列表、深度休眠应用列表 | 休眠列表会随时间自动膨胀 | 加入绝不休眠的应用;确认应用不出现在休眠或深度休眠列表里;关闭 “将未使用的应用置于休眠” |
| Realme / Oppo / OnePlus(ColorOS) | “高后台耗电"警告会接到强制关闭动作、应用启动管理 | 原生默认激进 | 允许自动启动、关闭后台冻结、关闭异常应用优化 |
| 华为 / 荣耀(EMUI、HarmonyOS) | 应用保护、手动启动锁定、系统清理工 | 默认未开启保护 | 加入受保护应用;在启动 → 手动管理下开启自动启动、关联启动、后台运行 |
针对最严重的几家额外说明。小米 MIUI 与 HyperOS 默认禁止任何非系统应用自启动,因此如果不显式打开自启动开关,代理应用在重启之后根本不会自动起来。三星 One UI 维护着一份会自动膨胀的隐藏休眠应用列表:哪怕初次配置看起来都对,几周后运营者没主动打开过的代理应用还是可能被丢进去。华为 EMUI 与 HarmonyOS 历史上需要在单独的"电池管家"页面里把应用标记为"受保护”,否则系统清理工会在应用进入后台几分钟内把它杀掉。
社区维护的 dontkillmyapp.com 项目按 1–5 分跟踪最糟糕的几家以及对应的逐 OEM 缓解方法,对任何运营混合机型集群的运营者都值得收藏。本表的 Android 版本侧配套(省电模式、自适应电池,以及 Pixel 与 Samsung 上的 80% 充电上限)请看系统层面的省电设置指南 。
Wi-Fi 休眠策略
有些手机会在屏幕熄灭时断开 Wi-Fi 以省电。这对代理是致命的:手机要么只剩移动数据,要么直接断开代理连接。把 Wi-Fi 锁在"始终开启"或"插电时不断开”,通常在设置 → Wi-Fi → 高级 → 休眠期间保持 Wi-Fi 开启。
该做什么,按优先级排序
- 彻底关闭省电模式。 不要让它自动触发。详见逐版本操作指南 。
- 把 iProxy 应用以及它所依赖的 VPN 隧道应用设为"无限制"(或"不优化")。具体路径因 Android 版本而异;从 Android 9 到 16 的逐版本点击步骤见逐应用"无限制"操作指南 。
- 首次安装时授予 POST_NOTIFICATIONS(Android 13+)。
- 关闭代理应用的应用休眠 与"暂停未使用应用"(Android 12+)。
- 把代理应用加入 OEM 各自的白名单,对应上表:小米开启自启动、最近任务锁定;三星关闭深度休眠、加入绝不休眠应用;Realme/Oppo 保持后台运行;华为加入受保护应用。
- 绝不要从应用信息页强制停止代理应用。 Android 15+ 上,被强制停止的状态会持续到直接或间接的用户操作,并会取消所有待发 intent;一旦发生,需要重新打开应用。
- 确认代理应用的前台服务类型不受 6 小时上限约束(Android 15+、目标 SDK 35+ 的应用)。
- 插电时把 Wi-Fi 锁定为常开。
- 关闭自适应电池;或者接受它可能把代理应用降权的现实,并定期审计。
- 关闭流量节省,以及任何"限制后台数据"开关。
- 每隔几周显式打开一次代理应用,把它挡在
rare和restricted桶之外(Android 13+ 尤其重要,8 天未使用就触发)。
总原则 凡是承诺通过限制后台活动来省电的设置,都会拖垮代理在线率。代理本身就是后台活动。把这一类全部关掉,转而依靠充电侧措施(下一节讲)来延长电池寿命。
硬件方案:智能插座与定时充电
让 24/7 手机长期停留在 20–80% 甜区,最可靠的办法是控制供电输入,而不是依赖软件。一部分手机内置充电上限(Google Pixel 6a+ 提供"限制至 80%",Samsung One UI 6.1+ 有"电池保护",索尼有"Battery Care",小米在部分机型的 HyperOS 中隐藏了 80% 充电上限),但多数手机并没有;即便有,实现也常常不稳定。
智能插座(也就是 Wi-Fi 控制的市电插座)提供了一种通用解法。插座按计划开关充电器;手机通过网络上报荷电状态(或在任何集群管理面板里上报),一个简单的循环就能把电充到约 80%、空载、然后在 SoC 跌到约 30% 时恢复充电。
实战方案:
- 现成智能插座。 TP-Link Tapo、Sonoff 等 Wi-Fi 插座单价 5 到 15 美元,能接入大多数家庭自动化平台。最朴素的做法是固定时间表(充 4 小时、断 8 小时),作为初步方案够用,但不跟踪真实 SoC。
- Tasmota 或 ESPHome 固件。 给智能插座刷开源固件,就能通过 MQTT 或本地 HTTP API 控制,意味着脚本可以读取手机真实电量并切换插座。
- Home Assistant。 如果已经在跑 Home Assistant,集成很直接:一个电池传感器(通过 ADB 脚本或专门的电池广播 App)读取 SoC,自动化在阈值切换插座。
- DIY USB 线断路。 用一个由 ESP32 或树莓派控制的继电器切断 USB 电源线,可以在更靠近设备的位置做同样的事。这种方式在大规模部署下最便宜,但也最脆弱。
通用方案(一只智能插座加一段读取手机 SoC 并在 30% 与 80% 切换插座的 ADB 脚本)适用于任何 Android 机型,不依赖 OEM 是否内置充电上限。详细操作见系统层面省电指南中的"智能插座 + ADB 脚本"小节 。
注意:让手机保持运行 部分手机在断开充电器后会进入深度睡眠或休眠,即使屏幕亮着也一样。具体机型要测试:在智能插座处于"断电"那段周期里,确认手机仍然继续转发代理流量。如果不行,可能需要保持唤醒锁的 App,或者把断电时段缩短。
对大多数手机来说,一个合理的目标排程是:充到 80%(一般从 30% 起需要 1 到 2 小时)、闲置直到 SoC 跌到 30%(正常代理流量下一般 8 到 12 小时)、然后再次充电。这样每天会产生 2 到 3 次温和电压区间的部分循环,而不是长期 4.20V 浮充。
代理运营者的电池寿命实操清单
每部手机理想上要在投产前一次性配置好:
- 把充电上限设到 80%,方式不限:OEM 自带开关(Pixel 6a+、Samsung One UI 6.1+),或智能插座定时方案。通用 ADB 方案 适用任何机型。
- 避免 SoC 跌到 20% 以下。 如果流量负载导致手机掉电速度超过充电器供电速度,那是布线或充电器功率的问题,应在电芯开始受损之前先解决。
- 在系统层关闭省电模式和自适应电池。 详见系统层电池设置指南 。
- 把 iProxy 和 OpenVPN 在逐应用电池设置中设为"无限制",并打开自启动、加上后台锁定。逐版本操作步骤:在 Android 上关闭 iProxy 与 OpenVPN 的电池优化 。
- 把代理应用从 OEM 杀手中加白。 按上表:小米开启自启动并在最近任务中锁定;三星关闭深度休眠并加入绝不休眠应用;Realme/Oppo 保持后台运行;华为加入受保护应用。
- 插电时把 Wi-Fi 锁为常开,禁止休眠。
- 优先选择内置 80% 充电上限的设备。 iProxy 推荐的 Android 设备清单 专门标注了 Pixel 8/9 与近几代 Galaxy 机型,原因之一就是这项功能。
- 慢充。 长期插电场景使用 1A 或 1.5A 的电源适配器,而不是 3A 快充。电流更低意味着温度更低、电芯应力更小。
- 管理温度。 不要把手机紧密堆叠。不要把它们放在路由器、调制解调器上面或阳光直射下。让手机周围保持空气流通,理想环境温度低于 25°C。空气流通本身很重要,相关内容见 4G 代理网络搭建指南 中的集群卫生小节。
- 每季度审计一次。 手机系统更新可能会重新启用之前关闭的功能,每 90 天检查一次。连接设置清单 覆盖了与这次审计配套的更宏观的运营卫生。
什么时候让手机退役
即便照顾得再仔细,电池仍然是消耗品。代理手机的实际退役阈值是容量降到约新机的 70%。再往下,会同时出现三件事:
- 负载下电压跌得更狠,尤其在流量峰值期间会引起间歇性掉线。
- 电芯升温更快,自我加速衰减。
- 物理鼓包风险显著上升。鼓胀的电芯可能把屏幕、后盖顶开,极少数情况下还会刺穿并起火。
大多数 Android 手机在设置中或通过 ADB(dumpsys battery)能查到电池健康度。运营集群的代理运营者应当每月跟踪健康度,赶在鼓包出现之前轮换手机。在 70% 容量时退役并转售或挪作他用是一笔可预期的成本;让一颗 50% 容量的电芯把屏幕顶坏,则是可预期成本再加上一台报废设备。一开始就选对硬件能在这里省下不少:iProxy 的推荐设备列表
跟踪了那些系统支持周期长、电池菜单可预测、并内置 80% 充电上限的机型,这些特性会让本文中提到的所有设置都更简单。
参考数字
本文给出的建议(充电上限 80%、避免 100% 浮充、慢充、管理温度、调好 Android 让它不去打扰代理)并不是泛泛的"最佳实践"。每条都对应一种随电压或温度呈指数级放大的衰减机制:SEI 增长、正极过渡金属溶出、电解液氧化、Arrhenius 温度关系。电芯对电压与温度的敏感度是真实的,而屏幕上的百分比恰恰把这种敏感度遮住了。
下面是两个用于评估成本收益的锚点。把它们看作集群规划估算,而不是任何具体电芯化学的保证:基线来自 BU-808 的储存表与充电电压表,24/7 代理场景则在此之上叠加了真实环境中的热量、快充和无人值守 Android 系统等变量。
- 一台用默认 Android 设置、插着快充、长期停在 100%、塞在闷热机架里的 24/7 代理手机:通常在 12 个月内损失 30% 到 40% 的初始容量。
- 同一台手机,充电上限设到 80%、用智能插座慢充、OS 省电相关全部关闭、OEM 杀手已加白,并放在 22°C 有气流的房间里:通常在 12 个月时仍保有 90% 以上的初始容量,并且很可能在 36 个月时仍高于 70% 的退役阈值。
配置成本很小:每台设备一只智能插座、每个机型一次性的设置审计,加上逐应用"无限制"指南 与系统层省电指南 里覆盖的逐应用与系统层开关。把每 12 个月一换变成每 30 到 36 个月一换,整体节约随集群规模线性扩大;只要集群超过 5 台,配置时间在第一个季度就能回本。