跳到主要内容

功耗优化方案(Sensor)

问题

引擎UI线程会在10ms左右持续监听sensor数据,然后postmessage给worker线程,涉及到二个部分的耗时:UI线程每隔10ms,postmessage给worker线程;TS侧监听的数据透传到C++侧。
大部分游戏只需要进行旋转,不需要这么多额外的开销,只需要配置oritation字段即可

优化方案

1.oritation字段配置: 参考文档
2.注释掉sensor消息传递(TuanjieMainWorker.ets 文件中的enableSensor方法中):

  private enableSensor(sensorType: ESObject, sensorRate: ESObject) {
try {
const self = this;
sensor.on(sensorType, (data: ESObject) => {
//TuanjieLog.info('------sensor sensorType: ' + sensorType + ', x: ' + data.x + ', y: ' + data.y + ', z: ' + data.z);

let sensorData: ESObject = {
type: sensorType
};
self.extractSensorDatas(sensorData, data);
//注释掉下面这行
//TuanjieMainWorker.getInstance().postMessage({ type: 'OnSensor', data: sensorData });
}, { interval: sensorRate });
} catch (err) {
console.error('------sensor.on fail, errCode: ' + err.code + ', msg: ' + err.message + ', type: ' + sensorType);
}
}