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
💡
核心经验:优化不是一次性的工作,而是持续的过程。每次审核反馈都是一次优化契机,将审核要求转化为系统性的代码改进,而非临时补丁。