gpt4 book ai didi

Android:在没有内存分配的情况下读取加速度计?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:13:30 24 4
gpt4 key购买 nike

我正在为 Android (2.1+) 开发一款游戏,使用加速度计作为用户输入。我使用在 Activity 开始时向传感器管理器注册的传感器监听器,如下所示:

mSensorManager.registerListener(SystemRegistry.inputSystem.mSensorListener,
accSensor, SensorManager.SENSOR_DELAY_UI);

效果很好,我只是读取了 onSensorChanged(SensorEvent event) 中的加速度计值,以便在我的游戏循环中使用它:

public void onSensorChanged(SensorEvent event){
accX = event.values[0];
accY = event.values[1];
accY = event.values[2];
}

我正在编写一个实时游戏,所以我试图避免在我的代码中分配任何内存,因为我想最大限度地减少垃圾收集。问题是每次出现 SensorEvent 时,传感器管理器实际上都会分配内存。例如,这里是 ddms 分配跟踪器的输出:

51  28  android.hardware.SensorEvent    9   android.hardware.SensorManager$ListenerDelegate createSensorEvent   
50 28 float[] 9 android.hardware.SensorEvent <init>

显示每个事件分配的 28*2=56 字节。这似乎具有经常触发垃圾收集器的效果,这会导致一些滞后......所以这是我的问题:有没有办法在不分配任何内存的情况下实现同样的事情(获取当前加速度矢量)?有没有办法在不等待事件的情况下实际按需读取此向量的值?

最佳答案

听起来像是我们需要修复的东西,我会在内部提交错误。

关于Android:在没有内存分配的情况下读取加速度计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4979256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com