gratitude.durian.xpcool.com/WECHAT_ADAPTATION_SUMMARY.md
2026-08-14 18:01:45 +08:00

9.5 KiB
Raw Permalink Blame History

报恩榴莲 - 微信小游戏适配完成总结

已完成工作

1. 核心代码适配

main.js - 微信入口文件

位置: E:\xxcool\project\gratitude.durian.xpcool.com\js\main.js

功能:

  • 微信环境初始化
  • 音频中断处理(来电/通知自动暂停/恢复)
  • 加载进度显示
  • 性能监控和 GC 调度
  • 广告预加载
  • 设备信息上报

关键代码:

// 监听音频中断
wx.onAudioInterruptionBegin(() => this.pauseAudio());
wx.onAudioInterruptionEnd(() => this.resumeAudio());

// 性能优化
wx.setPreferredFramesPerSecond(60);

AdManager.ts - 广告管理器

位置: cocos-prototype/assets/scripts/core/AdManager.ts

优化内容:

  • 微信广告 SDK 完整集成
  • 激励视频广告(复活、道具)
  • 插屏广告(关卡结束)
  • 广告频控每日最多18次间隔60秒
  • 广告预加载机制
  • 错误处理和降级策略
  • 数据统计上报

新增方法:

AdManager.showReviveAd(onReward, onClose);      // 复活广告
AdManager.showRemoveFruitAd(onReward, onClose); // 道具广告
AdManager.showInterstitial(onComplete);         // 插屏广告
AdManager.preloadAds();                         // 预加载
AdManager.getStats();                           // 获取统计

AudioManager.ts - 音频管理器

位置: cocos-prototype/assets/scripts/core/AudioManager.ts

优化内容:

  • 微信音频中断监听和自动恢复
  • 音频源池化5个并发音效
  • BGM 淡入淡出效果
  • 内存管理(深度清理)
  • 状态监控接口

新增方法:

audioManager.deepClean();       // 深度清理内存
audioManager.getStatus();       // 获取状态
audioManager._initWeChatAudio(); // 微信音频初始化

中断处理流程:

来电/通知 → onAudioInterruptionBegin
         → 暂停所有音频
         → 记录BGM状态

通话结束 → onAudioInterruptionEnd
         → 恢复BGM如果之前正在播放
         → 音效不自动恢复(瞬时播放)

SaveManager.ts - 存档管理器

位置: cocos-prototype/assets/scripts/core/SaveManager.ts

优化内容:

  • 微信存储 API 优先wx.setStorageSync / wx.getStorageSync
  • 降级到 localStorageWeb 环境)
  • 双备份机制(主存储 + 备份)
  • 自动保存每30秒
  • 存档版本迁移
  • 数据导入/导出
  • 微信云存储支持(可选)

新增功能:

saveManager.exportSave();        // 导出存档Base64
saveManager.importSave(data);    // 导入存档
saveManager.uploadToCloud();     // 上传云端(需云开发)
saveManager.downloadFromCloud(); // 下载云端
saveManager.getSaveSize();       // 存档大小
saveManager.stopAutoSave();      // 停止自动保存

存储策略:

保存时: 
  1. 先保存到 backup key
  2. 再保存到主 key
  3. 失败时从 backup 恢复

加载时:
  1. 尝试从主 key 加载
  2. 失败时从 backup key 恢复
  3. 都失败则使用默认数据

2. 配置文件

wechat-config.js - 性能配置

位置: cocos-prototype/wechat-config.js

包含:

  • 性能参数FPS、最大水果数、对象池大小
  • 分包配置core、levels、audio、ui
  • 资源加载策略
  • GC 优化设置
  • 调试监控配置

关键配置:

performance: {
    targetFPS: 60,
    maxFruitsOnScreen: 40,
    gcInterval: 30000,
    memoryWarningThreshold: 200,
}

subpackages: [
    { name: 'core', root: 'subpackages/core/' },
    { name: 'levels', root: 'subpackages/levels/', lazy: true },
    { name: 'audio', root: 'subpackages/audio/', lazy: true },
]

3. 构建脚本

build-wechat.bat / build-wechat.ps1

位置: cocos-prototype/build-wechat.*

功能:

  • 自动清理旧构建
  • 执行 Cocos Creator 构建
  • 资源优化(预留压缩接口)
  • 生成版本信息
  • 计算包体大小
  • 检查主包限制(≤ 20MB

使用方法:

# PowerShell推荐
.\build-wechat.ps1 -Version "1.0.0"

# Batch
build-wechat.bat

4. 文档体系

WECHAT_OPTIMIZATION_GUIDE.md

内容:

  • 性能指标要求
  • 包体优化技巧
  • 内存管理策略
  • 渲染优化方法
  • 音频优化指南
  • 网络优化建议
  • 低端机适配方案
  • 构建发布流程

重点章节:

  1. 代码分包策略
  2. 对象池实现示例
  3. GC 触发时机
  4. Draw Calls 优化
  5. 真机测试步骤

WECHAT_DEPLOYMENT_GUIDE.md

内容:

  • 测试前准备清单
  • 本地测试流程
  • 真机测试要点
  • 常见问题排查
  • 上传到微信后台
  • 提交审核指南
  • 运营与维护建议
  • 数据分析模板

关键流程:

构建 → 模拟器测试 → 真机测试 → 上传 → 提交审核 → 发布

WECHAT_QUICK_REFERENCE.md

内容:

  • 快速开始命令
  • 包体限制速查
  • 常用微信 API
  • 资源规范
  • 调试技巧
  • 性能优化速查
  • 关键指标
  • 上线清单

用途: 开发时快速查阅的速查卡


📊 技术亮点

1. 完善的错误处理

所有关键模块都有 try-catch 和降级策略:

try {
    // 尝试微信 API
    wx.setStorageSync(key, data);
} catch (e) {
    // 降级到 localStorage
    localStorage.setItem(key, data);
}

2. 智能的资源管理

  • 对象池减少 GC 压力
  • 资源预加载提升体验
  • 自动清理防止内存泄漏

3. 数据安全保障

  • 双备份存档机制
  • 版本迁移支持
  • 导入/导出功能

4. 性能监控完善

  • FPS 实时监控
  • 内存占用预警
  • 广告展示频控
  • 数据统计上报

🎯 下一步行动

立即执行(今天)

  1. 替换广告位 ID

    // AdManager.ts
    AD_UNIT_ID_REVIVE = 'adunit-你的真实ID';
    AD_UNIT_ID_REMOVE_FRUIT = 'adunit-你的真实ID';
    AD_UNIT_ID_INTERSTITIAL = 'adunit-你的真实ID';
    
  2. 构建微信包

    .\build-wechat.ps1 -Version "1.0.0"
    
  3. 微信开发者工具测试

    • 导入 build/wechatgame 目录
    • 模拟器基础功能测试

本周内完成

  1. 真机测试

    • iOS 设备测试
    • Android 设备测试
    • 低端机兼容性测试
    • 广告展示验证
  2. 性能优化

    • 根据测试结果调整参数
    • 压缩资源文件
    • 优化启动速度
  3. 准备提审材料

    • 截取 5 张 gameplay 截图
    • 编写游戏简介
    • 准备图标和宣传图

两周内完成

  1. 提交审核

    • 登录微信公众平台
    • 上传版本
    • 提交审核
  2. 数据监控准备

    • 设置数据看板
    • 配置事件埋点
    • 准备运营计划

📈 预期效果

性能指标

指标 目标值 当前状态
启动时间 < 3s 已优化
FPS 60 已配置
内存占用 < 200MB 已监控
包体大小 < 20MB ⚠️ 需验证
崩溃率 < 1% 已优化

商业指标(预估)

指标 目标值
次日留存 > 30%
7日留存 > 10%
广告完成率 > 60%
eCPM > ¥50
ARPU > ¥0.5

🔍 验收清单

代码层面

  • main.js 微信环境初始化完成
  • AdManager 广告频控实现
  • AudioManager 中断处理完成
  • SaveManager 双备份机制完成
  • 性能配置文件创建

文档层面

  • 优化指南编写完成
  • 部署指南编写完成
  • 速查卡制作完成
  • 构建脚本测试通过

待完成

  • 真机测试
  • 广告位 ID 替换
  • 包体大小验证
  • 提审材料准备

💡 使用建议

给开发者

  1. 阅读顺序:

    • 先看 WECHAT_QUICK_REFERENCE.md 了解概况
    • 构建时参考 build-wechat.ps1
    • 遇到问题查 WECHAT_OPTIMIZATION_GUIDE.md
    • 提审前看 WECHAT_DEPLOYMENT_GUIDE.md
  2. 关键注意点:

    • 广告必须真机测试
    • 主包不能超过 20MB
    • 启动时间控制在 3 秒内
    • 定期清理内存防止泄漏
  3. 调试技巧:

    • 使用 vConsole 查看真机日志
    • 微信开发者工具的 Performance 面板
    • 埋点数据上报验证

给测试人员

  1. 测试重点:

    • 广告能否正常展示和完成
    • 存档是否持久化
    • 音频中断后是否恢复
    • 长时间运行是否卡顿
  2. 测试设备:

    • iPhone 8 或以上iOS
    • 中高端 Android 机
    • 如有可能,测试低端机

📞 技术支持

问题反馈

如遇到技术问题,请提供:

  1. 设备型号和系统版本
  2. 错误日志截图
  3. 复现步骤
  4. 性能数据FPS、内存

资源链接


总结

本次微信小游戏适配工作已完成以下核心内容:

代码适配: 4个核心模块全面优化
配置文件: 性能参数和分包策略完善
构建脚本: 自动化构建流程就绪
文档体系: 4份详细文档覆盖全流程

项目已具备上线条件,只需:

  1. 替换广告位 ID
  2. 真机测试验证
  3. 准备提审材料
  4. 提交微信审核

祝《报恩榴莲》上线顺利,大获成功!🎉🍈


最后更新: 2026-08-14
适配版本: v1.0.0
适用平台: 微信小游戏
开发引擎: Cocos Creator 3.8