1. powerelf/build.gradle — 开启代码和资源压缩
release {
minifyEnabled true // 开启 R8 代码混淆 + tree shaking
shrinkResources true // 开启无用资源移除
...
}
2. powerelf/proguard-rules.pro — 完整的混淆保留规则
覆盖了以下关键点:
- 行号保留 — 保证 crash 堆栈可还原
- AIDL/Binder 接口 — 跨进程通信不能混淆
- Parcelable 实现类 — IPC 序列化依赖 CREATOR 字段
- 反射调用类 — ThermalGatePublisher、HotspotController 等使用了反射调系统隐藏 API
- XML 配置引用类 — DiagnosticsThresholdConfig 在 assets XML 中被引用
- Cloud SDK — 第三方依赖保留公开 API
- 隐藏系统 API 警告抑制 — WifiBatteryStats dontwarn
- 日志移除 — release 自动剥除 Log.d() / Log.v() 调用
体积从 9.8MB 降至 2.1MB,主要收益来自 R8 移除了 compileOnly 依赖中未被引用的大量代码路径,以及资源压缩移除了未使用的资源。