游戏加速框架接入文档更新时间: 2024-09-25 20:22:00

一、游戏加速框架背景

近年来,随着手机游戏的制作越来越大型,画质越来越精美,用户对手机性能的要求也越来越高。游戏对系统资源需求之大、对低时延要求之高,都表明了游戏优化工作的复杂性。

游戏一直都是用户最重要的使用场景之一,小米手机也一直把用户的体验放在首位,因此,小米采取开放共赢的心态,推出小米游戏加速接口,希望以此建立起游戏端与平台端的双向通道,与各游戏厂商紧密联系、深入合作,一起致力于小米平台游戏用户的极致游戏体验。

二、游戏加速框架介绍

上传文件

小米游戏加速框架提供了一套便捷高效的信息互通方式,打破了游戏厂商与小米平台侧的信息墙,双方能合力提高游戏在小米平台的用户体验。

通过小米游戏加速框架,游戏能获取到实时的系统信息,并可以根据当前系统状态调整游戏运行逻辑,以提高用户的游戏体验。例如,游戏过程中,过高的设备温度会触发平台侧严格的温控策略,这可能会影响到用户的游戏体验,而游戏加速框架可以实时反馈当前设备的温度状况,游戏可以据此采取更多的手段在性能和温度之间做出平衡,避免触发严格的温控策略。

一局游戏往往会经历众多场景,例如登录、加载、战斗等等,而用户对部分游戏场景的性能尤为关注,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/小米12proandroid 13版本android 13版本
小米12Spro支持支持
小米12SUltra支持支持
红米note11Tproandroid13版本android13版本
红米K50proandroid13版本android13版本
红米K50android13版本android13版本
红米K40V13.0.6.1.32.DEV及之后V13.0.7.0.SKHCNXM及之后

六、更多合作

如果您有任何建议或者反馈,

欢迎致信:migame-help@xiaomi.com

文档内容是否有帮助?
有帮助
无帮助