v1.0.3版本的核心目标是应对AGC审核反馈、提升性能和清理技术债。经过27项优化,bundle.js从163.4KB压缩至106.5KB,降幅35%。本文总结三大优化方向的实战经验。
一、安全加固(7项)
AGC审核反馈中,权限收窄和用户保护是重点。7项安全加固覆盖了Web组件权限、隐私弹窗和退出机制三个层面:
- 权限收窄:geolocationAccess设为false、mixedMode设为None、fileAccess设为false,移除不必要的Web组件权限
- 隐私弹窗:将"不同意"按钮改为AlertDialog二次确认,防止用户误触拒绝隐私协议后无法使用
- 退出机制:terminateSelf() + process.exit(0) 双保险,确保应用能真正退出而非仅最小化
- 防穿透:遮罩层添加防点击穿透,isAlive标志实现异步取消机制
二、性能优化(10项)
性能优化是最能直接提升用户体验的方向。10项优化涵盖渲染、事件和资源管理:
- 增量渲染:拓扑画布只重绘变化区域,避免全量刷新
- 防抖机制:拖拽和resize事件添加防抖,减少不必要的计算
- 监听器清理:页面切换时主动清理事件监听器,防止内存泄漏
- IapService单例重置:resetInstance()方法确保IAP状态不会跨实验残留
- 深色模式SVG修复:SVG文字在深色模式下不可见的问题,通过fill属性动态适配解决
三、代码清理(10项)
代码清理虽然不直接影响功能,但对可维护性和包大小有显著影响:
- 移除空实现接口和死代码,减少bundle体积
- DeviceJSON接口规范化,统一设备数据结构
- 消除!important,样式优先级规范化
- 启用esbuild --minify压缩,bundle.js从163KB降至106KB
核心经验:优化不是一次性的工作,而是持续的过程。每次审核反馈都是一次优化契机,将审核要求转化为系统性的代码改进,而非临时补丁。