Appearance
Cocos 游戏加载底座 — 快速演示
用现成底座 APK + 测试游戏包,验证「下载 zip → 解压缓存 → 运行 Cocos Creator 2.4 游戏」整条链路。
流程:安装底座 APK → 用 CDN 上的游戏 zip 启动 → adb / Intent 拉起。
演示资源(CDN)
| 资源 | 地址 |
|---|---|
| 底座 APK | CocosStore-release-1.0.28.20260922.apk |
| 示例游戏 eatme | eatme.zip |
| 示例游戏 tyttyt | tyttyt.zip |
底座包名:com.qcode.cocosstore
启动 Action:com.qcode.cocosstore.action.LOAD_GAME
宿主工程接入 AAR 见同目录 Maven 集成。
0. 准备环境
| 环境 | 说明 |
|---|---|
| Android 手机 / TV 盒子 | 建议 Android 5.0+;需能访问上述 CDN |
| adb | 手机开 USB 调试,或无线 adb |
1. 安装底座 APK
bash
# 下载后安装(也可浏览器下载再 adb)
adb install -r CocosStore-release-1.0.28.20260922.apk底座 APK 文件名带版本号(
CocosStore-release-<版本>.apk),下载后以实际文件名为准。
成功后桌面通常没有图标(故意不带桌面入口),只能用 Intent / adb 启动。
确认已安装:
bash
adb shell pm path com.qcode.cocosstore2. 启动演示(推荐:CDN + eatme)
设备能访问 CDN 时,不必再在电脑起 HTTP:
bash
adb shell am force-stop com.qcode.cocosstore
adb shell am start -a com.qcode.cocosstore.action.LOAD_GAME \
-n com.qcode.cocosstore/org.cocos2dx.gameloader.CocosGameActivity \
--es zip_url "http://cdn.release.qcast.cn/JsViewTestCase/cocos2d/测试用游戏包/eatme.zip" \
--es game_id "eatme"预期:
- 首次:短暂加载后进入横屏游戏;剩余资源在后台继续下载
- 再次用同一个
game_id:命中缓存,直接进入游戏
换另一个游戏(tyttyt):
bash
adb shell am start -a com.qcode.cocosstore.action.LOAD_GAME \
-n com.qcode.cocosstore/org.cocos2dx.gameloader.CocosGameActivity \
--es zip_url "http://cdn.release.qcast.cn/JsViewTestCase/cocos2d/测试用游戏包/tyttyt.zip" \
--es game_id "tyttyt"Intent 参数
| Extra | 必填 | 说明 |
|---|---|---|
zip_url | 是 | 游戏 zip 的 HTTP(S) 地址 |
game_id | 否 | 游戏标识,同时作为本地缓存目录名;建议填稳定英文 id,不传则用 zip 文件名 |
缓存位置:
text
/data/data/com.qcode.cocosstore/files/games/<game_id>/3. 可选:用本机 HTTP 提供 zip
想换成自己的游戏包时,把 zip 放到电脑上起个静态服务:
bash
cd /path/to/zips
python3 -m http.server 8000查电脑局域网 IP(Mac:ipconfig getifaddr en0),确保设备与电脑同一网段,URL 用局域网 IP(不要用 127.0.0.1,那指向设备自己):
text
http://192.168.x.x:8000/game.zip
python -m http.server不支持 Range 请求,只能用于验证功能是否跑通; 想看到「先进入游戏、剩余资源后台补齐」的加速效果,请把包放到支持 Range 的服务器或 CDN 上。
4. 从其它 App 拉起(可选)
java
Intent intent = new Intent("com.qcode.cocosstore.action.LOAD_GAME");
intent.setPackage("com.qcode.cocosstore");
intent.putExtra("zip_url",
"http://cdn.release.qcast.cn/JsViewTestCase/cocos2d/测试用游戏包/eatme.zip");
intent.putExtra("game_id", "eatme");
startActivity(intent);5. 常见问题
| 现象 | 排查 |
|---|---|
| 一直下载失败 / 超时 | 设备能否打开 CDN 链接;用本机 HTTP 时检查防火墙与局域网 IP |
| 进游戏黑屏 / 立即退出 | zip 根目录是否有 main.js;不要用 Web 构建产物 |
| 首次进入较慢 | 服务器不支持 Range 时会退化为整包下载;改用支持 Range 的 CDN / 静态服务 |
| 提示空间不足 | 换更大存储,或卸载重装底座 |
| 没有桌面图标 | 正常;请用 adb / Intent 启动 |
| 启动后仍显示旧游戏 | 同一 game_id 命中缓存所致;换一个新的 game_id,或清掉应用数据后重试 |
查看日志:
bash
adb logcat | grep -E "CocosGameActivity|cocos2d-x"6. 一分钟最短路径
- 安装 CocosStore-release-1.0.28.20260922.apk
- 执行第 2 节
am start(eatme CDN) - 几秒内进入横屏游戏;再次启动同一游戏秒进 → 演示成功