广告SDK组件关停实战
应用里弹广告、推通知的不是「广告」两个字,而是一家家 SDK 的组件:穿山甲、优量汇、快手广告联盟各自带自己的 service 与 receiver。这篇按「定位 → 核实 → 处理 → 验证」的顺序,把组件层关停广告的做法走一遍。工具本身的功能与获取入口见 Blocker 组件开关工具。
一、定位:两条路
路 A:内置规则库。 规则页里直接搜 SDK 名字(如「穿山甲」),命中的应用、涉及的组件、禁用后有无副作用的说明一次列出。常见 SDK 都有收录,先走这条。
路 B:类名前缀自查。 规则库没覆盖的冷门 SDK,按前缀在应用组件列表里过滤。常见对照:
| SDK | 常见类名前缀 |
|---|---|
| 穿山甲(Pangle) | com.bytedance.sdk.openadsdk |
| 优量汇(广点通) | com.qq.e.ads、com.qq.e.comm |
| 快手广告联盟 | com.kwad.sdk |
| 百度移动广告 | com.baidu.mobads |
| AdMob | com.google.android.gms.ads |
| 友盟统计/推送 | com.umeng |
| 极光推送 | cn.jpush |
同一个应用常同时集成多家:广告 SDK 负责弹窗,推送 SDK 负责拉活跃,统计 SDK 负责埋点,互相之间还会唤醒。
二、核实再动手
前缀只是识别参考,不是禁用依据——SDK 大版本更新可能换包名。点开组件看完整类名与说明,确认归属与用途再决定;统计类组件建议谨慎(有些应用用它做崩溃上报,甚至做存活检测)。
三、处理顺序
- 先动 receiver 和 service——广告与推送的活跃点大多在这两类;
- activity 关多了界面会缺功能,确认是广告落地页再关;
- 每关一组就回应用里验证一次:广告消失、功能正常,再继续下一组;
- 调整完导出一份该应用的规则文件存底,重装或换机直接恢复。
四、被「复活」的组件
用 PackageManager 通道禁掉的组件,个别应用会捕获异常后自己再启用。把这类组件换到 Intent Firewall 通道再禁一次:IFW 只拦意图、不改状态,应用察觉不到,也就不会挣扎。两种通道的行为差异与切换方法在介绍站里有更细的对照。
处理完广告 SDK,顺手把关联唤醒的推送通道也过一遍,思路相同。授权环境没就绪的先看 无Root手机走Shizuku通道的授权步骤;关出问题了的,按 组件误关后的恢复顺序 处理。