1 つのセンサーをリッスンするだけで済みます。
sensorManager = (SensorManager)context.getSystemService(Context.SENSOR_SERVICE);
accSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sensorManager.registerListener(this, accSensor, SensorManager.SENSOR_DELAY_GAME);
パフォーマンスに関しては、私の経験では、最速でもパフォーマンスに大きな影響はありませんが、覚えておくべきいくつかの薄い点があります。到着した値は、すぐに別のスレッドにダンプして処理する必要があります。センサー スレッドですべての処理を行うと、将来のサンプルのパフォーマンスや配信時間に影響を与える可能性があります。
SensorData から値をコピーし、values 配列への参照を保持しないでください。これらは、後で再利用される可能性のある固定プールの一部であり、コードの下から変更したくない場合があります。
SENSOR_DELAY_FASTEST は、精度を気にする場合は一般的に適していません。速度は、ぎくしゃくしたデータを持つという代償を伴います。センサー データを最速で lof にダンプし、デバイスを安定した平らな面に置きます。SENSOR_DELAY_GAME を使用すると、レポートするものが何もないためサンプルの速度が低下しますが、それは正しいことですが、レポートする変更がたくさんあると考えているため、まだ大量のサンプルをダンプします。モトローラはこれとは別の話です。なぜなら、彼らは重複したサンプルを積極的に取り締まり、デバイスを平らな面に設置すると、報告されたサンプルの数が 0 になるからです。