一、游戏加速框架背景
近年来,随着手机游戏的制作越来越大型,画质越来越精美,用户对手机性能的要求也越来越高。游戏对系统资源需求之大、对低时延要求之高,都表明了游戏优化工作的复杂性。
游戏一直都是用户最重要的使用场景之一,小米手机也一直把用户的体验放在首位,因此,小米采取开放共赢的心态,推出小米游戏加速接口,希望以此建立起游戏端与平台端的双向通道,与各游戏厂商紧密联系、深入合作,一起致力于小米平台游戏用户的极致游戏体验。
二、游戏加速框架介绍
.jpg)
小米游戏加速框架提供了一套便捷高效的信息互通方式,打破了游戏厂商与小米平台侧的信息墙,双方能合力提高游戏在小米平台的用户体验。
通过小米游戏加速框架,游戏能获取到实时的系统信息,并可以根据当前系统状态调整游戏运行逻辑,以提高用户的游戏体验。例如,游戏过程中,过高的设备温度会触发平台侧严格的温控策略,这可能会影响到用户的游戏体验,而游戏加速框架可以实时反馈当前设备的温度状况,游戏可以据此采取更多的手段在性能和温度之间做出平衡,避免触发严格的温控策略。
一局游戏往往会经历众多场景,例如登录、加载、战斗等等,而用户对部分游戏场景的性能尤为关注,MOBA类游戏的团战、FPS类游戏的决赛等等,重点场景下游戏对系统资源的需求也是巨大的。游戏种类繁多,场景信息更多,平台端很难对此一一识别,因此小米平台端也希望借由小米游戏加速接口,从游戏端获取合作游戏的重点场景信息。平台端分析该场景下的重点资源需求,并针对该场景做精确优化,极力确保重点游戏场景下的高性能体验。
厂商可以使用预设的接口和场景信息与手机平台端进行交互,也可以深入合作,共同定制更适合游戏的个性化场景信息。
三、接入方式
请发送邮件至 migame-help@xiaomi.com,获取适配Jar包。
四、接口介绍
1、信息查询类接口
游戏可以通过此类接口快速获取系统信息
String getSdkVersion()
函数简介:获取当前Sdk版本信息
返回信息:当前Sdk版本信息
参数信息:无
String getJoyoseVersion()
函数简介:获取当前Joyose版本信息
返回信息:当前Joyose版本信息
参数信息:无
boolean isSupportedGame()
函数简介:查询当前游戏是否被支持
返回信息:当前游戏是否被支持
参数信息:无
String queryMobileNetwork()
函数简介:查询当前数据网络信息
返回信息:当前游戏所使用的数据网络信息,包括数据网络类型,数据网络信号强度。例:”rat:4G,signal_rsrp: -85“
参数信息:无
int getGameMode()
函数简介:查询用户选择的游戏模式。均衡模式下温控限制较严,建议游戏优先考虑功耗和发热
返回信息:
- 0 代表均衡模式
- 1 代表性能模式
- <0 代表异常信息
参数信息:无
String querySystemInfo(int type)
函数简介:实时查询当前系统信息,用于获得上述API未覆盖的系统信息
返回信息:以联调确定的格式展示指定的系统信息
参数信息:type为联调确定的系统信息类型
备注信息:此接口需联调,确定返回格式
2、场景通知类接口
游戏可以通过此类接口,实时通知系统游戏当前的场景信息,系统根据该信息启用对应的优化方案,以提高游戏的用户体验
void launchCompleted()
函数简介:标记游戏启动完成场景,系统及时结束boost操作,以降低游戏功耗
返回信息:无
参数信息:无
void gameUpdating(boolean updating)
函数简介:标记游戏局内更新场景,触发系统更新场景优化 ,如对网络进行加速等手段,以加快更新速度
返回信息:无
参数信息:
- true 代表游戏内更新开始
- false 代表游戏内更新结束
void gameLoading(boolean loading)
函数简介:标记游戏加载场景,触发系统加载场景优化,以加快加载速度
返回信息:无
参数信息:
- true 代表游戏加载场景开始
- false 代表游戏加载场景结束
void battleStart(boolean start)
函数简介:标记游戏内对战前后场景,触发系统对战优化,提高对战内的游戏性能,降低功耗与温升
返回信息:无
参数信息:
- true 代表游戏对局开始
- false 代表游戏对局结束
void heavyScene(boolean start, int timeout)
函数简介:标记游戏即将进入重负载场景,系统提前对资源进行调配,防止卡顿和掉帧
返回信息:无
参数信息:
- 参数start,true 代表重负载场景开始,false 代表重负载场景结束
- 参数timeout,代表预计重负载场景时长,参数仅在场景开始时生效,单位为ms,最长不超过 20*1000 ms
void lightScene(boolean start, int timeout)
函数简介:标记游戏即将进入轻负载场景,系统会在此时安排特定优化方案
返回信息:无
参数信息:
- 参数start,true 代表轻负载场景开始,false 代表轻负载场景结束
- 参数timeout,代表预计轻负载场景时长,参数仅在场景开始时生效,单位为ms
void tagThread(int tid, HardwareEnum hardware, LevelEnum level)
函数简介:标记游戏重点线程,指明其对某些系统资源的强需求,系统会对该线程安排特定优化方案
返回信息:无
参数信息:
- 参数tag,需要标记的线程id
- 参数hardware,代表该线程需要的资源类型,包括:CPU,GPU,MEM,IO,MOBILE,WIFI
- 参数level,代表该线程对资源需求的级别,包括:LEVEL_NORMAL,LEVEL_MID,LEVEL_HIGH
void updateGameInfo(String json)
函数简介:游戏发送其他场景信息,如用户选择的目标帧率,画质级别等
返回信息:无
参数信息:符合联调规定格式的json字符串
备注信息:此接口需联调,确定返回格式
3、系统回调类接口
系统提供给游戏开发者系统事件的回调接口,帮助开发者实时获取系统状态,进行合适的优化
void registerThermalChangedListener(ThermalChangedListener listener)
函数简介:注册系统温度变化时回调
返回信息:无
参数信息:
- ThermalChangedListener类型为温度变化回调接口,开发者需自行实现该接口
- 温度发生变化时,回调ThermalChangedListener的onChanged接口
void onChanged(int level)
函数简介:设备温度等级发生变化时回调
返回信息:无
参数信息:参数level,代表当前温度等级,0代表正常温度,1代表中等温度,2代表高温度
void unregisterThermalChangedListener(ThermalChangedListener listener)
函数简介:取消注册温度变化时回调
返回信息:无
参数信息:同 registerThermalChangedListener 函数
4、加速优化类接口
系统提供定制化的资源加速方案,需深入合作联调
void boostGame(HardwareEnum hardware, LevelEnum level, int timeout)
函数简介:对指定系统资源进行加速
返回信息:无
参数信息:
- 参数hardware,代表需要加速的资源类型,包括:CPU,GPU,MEM,IO,MOBILE,WIFI
- 参数level,代表需要加速的资源需求的级别,包括:LEVEL_NORMAL,LEVEL_MID,LEVEL_HIGH
- 参数timeout,代表预计加速持续时长,单位为ms,最长不超过 10*1000 ms
备注信息:需联调确定加速方案
void stopBoostGame(HardwareEnum hardware)
函数简介:停止对指定系统资源进行加速
返回信息:无
参数信息:参数hardware,代表需要停止加速的资源类型,包括:CPU,GPU,MEM,IO,MOBILE,WIFI
备注信息:需联调确定加速方案
void applyHardwareResource(HardwareEnum res, String json)
函数简介:实时调配硬件资源
返回信息:无
参数信息:
- 参数hardware,代表需要实时调配的硬件资源类型,包括:CPU,GPU,MEM,IO,MOBILE,WIFI
- 参数json,代表符合联调规定的json字符串,用于传递联调确定的必须的参数
备注信息:需联调确定加速方案
五、支持设备版本
手机型号 | 开发版 | 稳定版 | 备注 |
小米13系列 | 支持 | 支持 | |
小米12/小米12pro | android 13版本 | android 13版本 | |
小米12Spro | 支持 | 支持 | |
小米12SUltra | 支持 | 支持 | |
红米note11Tpro | android13版本 | android13版本 | |
红米K50pro | android13版本 | android13版本 | |
红米K50 | android13版本 | android13版本 | |
红米K40 | V13.0.6.1.32.DEV及之后 | V13.0.7.0.SKHCNXM及之后 |
六、更多合作
如果您有任何建议或者反馈,
欢迎致信:migame-help@xiaomi.com