HarmonyOS鸿蒙Next中app如何锁死120帧不下降

HarmonyOS鸿蒙Next中app如何锁死120帧不下降 目前flutter鸿蒙app在滑动的时候会达到120帧,但是不滑动一小会就降到了60帧,想要实现静止的时候也120帧,该如何实现?

7 回复

开发者您好,当前系统暂未开放 锁死120帧 的能力;

为了更快解决您的问题,尽量补全以下信息,我们看下是否能够通过优化的手段解决卡顿问题:

  1. 问题现象(如:报错日志(获取方式:xxx)、异常截图、问题背景);
  2. 复现代码(如最小复现demo);
  3. 版本信息(如:开发工具、手机系统版本信息);

更多关于HarmonyOS鸿蒙Next中app如何锁死120帧不下降的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


你好,如果不能让整个应用锁死120帧,可以让单个页面锁死120帧么?这个页面只要是120帧,app的弹幕就不会出现抖动和延迟。

当前无法做到锁死120帧,请您提供复现代码(如最小复现demo),我们看下是否能够通过优化的手段解决卡顿问题;

hello,有人遇到过类似问题么。因为应用有弹幕,如果降到了60帧,就会不流畅

这不是系统的事么?,

在HarmonyOS Next中,可通过Display模块的setRefreshRate方法锁定帧率。使用getDefaultDisplaySync()获取默认显示对象,调用setRefreshRate(120)将刷新率固定为120Hz。需在module.json5中声明ohos.permission.CAPTURE_SCREEN权限。注意,部分设备可能因硬件限制无法支持恒定高帧率模式。

在HarmonyOS Next中,可通过以下方式保持应用稳定运行在120帧:

  1. 在config.json中配置高刷新率支持:
{
  "module": {
    "abilities": [
      {
        "name": "MainAbility",
        "configChanges": ["orientation", "keyboardHidden"],
        "metaData": {
          "customData": [
            {
              "name": "hwc_flags",
              "value": "high_refresh_rate"
            }
          ]
        }
      }
    ]
  }
}
  1. 在Flutter侧通过Platform Channel调用鸿蒙原生接口:
// 请求保持高刷新率
static const platform = MethodChannel('com.example/refresh_rate');
await platform.invokeMethod('keepHighRefreshRate');
  1. 鸿蒙原生侧实现:
// 在Ability中
public class MainAbility extends Ability {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        // 获取窗口并设置刷新率
        Window window = getWindow();
        if (window != null) {
            WindowManager.getInstance().setPreferredRefreshRate(
                window.getWindowHandle(), 
                120 // 目标刷新率
            );
        }
    }
}
  1. 如需持续保持高帧率,建议在需要保持高帧率的页面生命周期中动态调整:
// 页面显示时
@Override
protected void onForeground(Intent intent) {
    super.onForeground(intent);
    setPreferredRefreshRate(120);
}

// 页面隐藏时恢复默认
@Override
protected void onBackground() {
    super.onBackground();
    setPreferredRefreshRate(0); // 0表示系统默认
}

注意:持续高刷新率会增加功耗,建议仅在必要场景使用,并在适当时机恢复默认设置。

回到顶部