展开本页目录
开始前准备什么
- 下载练习包,先阅读 README 中的依赖和运行范围。
- 使用独立练习目录;starter 是待完成任务,reference 是作者参考实现。
- 账号型功能须在自己的授权环境执行;本题不要求提供真实凭据。
- 先确认分析路径
- 保存规则原件
- 找出包级覆盖
- 追踪反射依据
- 保留必要成员
- 提出有据建议
- 验证只读移交
1. 先确认分析路径
按官方Skill检查AGP/R8版本与是否可生成定量报告。满足Standalone或Quantitative条件才使用对应路径;无法生成时明确启发式边界。
2. 保存规则原件
对原创proguard-rules.pro计算前后SHA。只读分析不能直接删除广泛规则,也不能为展示“优化成功”改写输入。
本题本地命令
bash check.sh3. 找出包级覆盖
fixtures.**保活所有成员,把它列为Refine候选。没有真实保活报告时不能声称减少了多少类或APK体积。
4. 追踪反射依据
Main.java通过Class.forName和getDeclaredMethod访问Payment.total。编译并真实执行返回450,证明字符串合同确实存在。
5. 保留必要成员
具体Payment.total规则与广泛包规则分开判断。普通直接调用搜索看不到反射关系,不能据此把必要规则删掉。
6. 提出有据建议
作者参考报告只说明来源、影响候选和未验证项。官方Skill模型未运行,定量score留空,不把作者评估包装成R8报告。
7. 验证只读移交
再次核对规则SHA不变。正式改规则后还需release构建与设备路径测试;本文Java反射输出不能代替那些检查。
怎样确认已经完成
- 遵守官方技能只读不改代码
- 量化数据只能取自实际报告
- 保留反射必要规则
- 已只读核对作者keep规则并用javac/java执行真实字符串反射;未运行R8分析任务、APK优化或AI Skill,不捏造体积收益、保活分数或设备验证。
常见问题
Android Skills 怎么找出让 APK 变大的过宽 keep 规则?
先确认规则覆盖范围,再追踪直接调用、字符串反射和消费者规则;无法取得定量报告时只做有据的启发式候选,不自动改文件。
反射需要保留的类和冗余 ProGuard 规则怎么区分?
不一定。它可能覆盖反射入口或库合同;先列收窄候选并做release/设备验证。本题保留Payment.total的真实字符串反射依据。
哪些功能已经实际执行?
已只读核对作者keep规则并用javac/java执行真实字符串反射;未运行R8分析任务、APK优化或AI Skill,不捏造体积收益、保活分数或设备验证。



