搜索
暂无数据
小游戏打包指引更新时间: 2024-09-27 14:16:00

一、分包规则支持的属性

属性类型含义描述
nameString分包名称名称可以用在分包API中。
rootString资源目录资源目录,编译时会把目录下的所有资源都打到这个分包中去。

下面是一个分包规则示例,位于工程的 manifest.json 文件:

{    
"package": "com.minigame.demo", 快游戏包名
"name": "mini game", 快游戏名称
"icon": "/image/logo.png", 快游戏icon
"versionName": "1.0.0", 快游戏版本
"versionCode": 1, 快游戏版本号,int 类型
"minPlatformVersion": 1076, 最小支持版本,int 类型
"orientation": "portrait", 不填或默认值为portrait,对快应用无效。取值为portrait或landscape
"type": "game", 不填或默认值为app,取值为app或game
"config"": {
"logLevel": "log" logLevel取值off,error,warn,info,log,debug,trace
},
subpackages: [ 分包配置
{
"name": "sub1Name", 子包名称
"root": "sub1/" 可以指定一个目录,目录根目录下的 main.js 会作为入口文件
},
{
"name": "sub2Name", 子包名称
"root": "sub2.js" 也可以指定一个 JS 文件
}
]
}

二、源码组织

├── sign                      rpk包签名模块
│ └── debug 调试环境
│ ├── certificate.pem 证书文件
│ └── private.pem 私钥文件
│ └── release 线上环境
│ ├── certificate.pem 证书文件
│ └── private.pem 私钥文件
├── logo.png 游戏图标(非必须)
├── sub1 子包目录(非必须)
│ └── main.js 子包入口js
├── sub2.js 子包js(非必须)
├── main.js 游戏入口js
└── manifest.json 项目配置文件,配置游戏图标、包名等

三、hap-toolkit分包输出结构

com.application.quickgame.rpk    整体压缩包(包名+.rpk)     

--->com.application.quickgame.rpk    原整包(包名+.rpk)     

--->main.rpk    分包主包(main+.rpk)      

--->sub1Name.rpk    sub1分包(子包名+.rpk)      

--->sub2Name.rpk    sub2分包(子包名+.rpk)

四、应用大小限制

  • 整个小游戏的所有分包总和不超过 10M;
  • 单个分包/基础包大小不能超过 5M;
  • 整体压缩包(包含原整包和所有分包;)不超过20M。

com.application.quickgame.rpk    整体压缩包(包名+.rpk) (最大20M)     

--->com.application.quickgame.rpk    原整包(包名+.rpk) (最大10M)     

--->main.rpk    分包主包(main+.rpk) (主包,最大5M)     

--->sub1Name.rpk    sub1分包(子包名+.rpk) (单个分包,最大5M)     

--->sub2Name.rpk    sub2分包(子包名+.rpk)(单个分包,最大5M)

五、分包加载API

LoadSubpackageTask qg.loadSubpackage(Object object)

加载游戏子包。注意:主包或子包不能引用未加载的包中的模块。

参数Object object

属性类型必填说明
nameString分包的名字,需要和分包配置中的值对应,可以是name或者root
successFunction接口调用成功的回调函
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(无论成功失败都会执行)

LoadSubpackageTask.onProgressUpdate(Function callback)

用于获取分包加载状态

callback回调函数的参数Object res

属性键值类型说明
progressNumber分包下载进度百分比
totalBytesWrittenNumber已经下载的数据长度,单位 Bytes
totalBytesExpectedToWriteNumber预期需要下载的数据总长度,单位 Bytes

六、代码示例

const loadTaskA = qg.loadSubpackage({
name: 'sub1Name',
success: function(data) {
console.info('加载分包 sub1Name 成功')
},
fail: function(err) {
console.info('加载分包 sub1Name 失败', err)
}
})
loadTaskA.onProgressUpdate(res => {
console.log('sub1Name 下载进度', res.progress)
console.log('sub1Name 已经下载的数据长度', res.totalBytesWritten)
console.log('sub1Name 预期需要下载的数据总长度', res.totalBytesExpectedToWrite)
})

七、最低兼容框架版本号

小游戏打包时需填写“最低兼容框架版本号”,现阶段建议填写1076

八、小游戏编译工具使用说明

https://dev.mi.com/xiaomihyperos/documentation/detail?pId=1110

上一篇:
下一篇: