Android Sensors (4) 传感器使用最佳实践

 

访问和使用传感器的最佳实践

 

  当你设计你的传感器实践时,你需要遵守一些guidelines:

 

1.注销传感器监听

  当你用完传感器或者传感器的activity暂停时,一定要注销传感器的listener。

  如果传感器listener被注册了但是它的activity暂停了,传感器将持续获取数据并且使用电池资源,除非你注销它。

  可以阅读unregisterListener(SensorEventListener)获取更多相关信息。

 

2.不要在模拟器上测试你的代码

  不能在模拟器上测试你的传感器代码,因为模拟器不能模拟传感器。你必须在一个物理设备上。

 

3.不要阻塞onSensorChanged()方法

  传感器数据改变的频率很高,所以系统会经常调用onSensorChanged(SensorEvent) 方法,所以在这个方法中,你应该尽量少做一些事情,免得阻塞它。

  如果你的应用要求你做一些数据过滤或者传感器数据的削减,你应该在这个方法之外进行。

 

4.避免使用废弃(deprecated)方法或传感器类型

  一些方法和常量已经废弃了,就不建议使用了。

  比如TYPE_ORIENTATION 这个类型已经废弃,为了得到方向数据,你应该使用getOrientation() 方法。

  类似的,TYPE_TEMPERATURE 已经废弃,在Android 4.0 设备上应该使用TYPE_AMBIENT_TEMPERATURE来代替它。

 

5.在使用前验证传感器

  在你尝试从传感器读取数据之前,你先要验证它是否在设备上存在。

 

6.谨慎选取传感器delay

  当你用 registerListener()方法注册传感器时,确认你选取了一个合适的传递率,传感器可以以非常高的频率传递数据。

  允许系统传递多余的数据会浪费系统的资源和浪费电池电量。

 

参考资料

  API Guides:Sensors Overview

  http://developer.android.com/guide/topics/sensors/sensors_overview.html

 

posted @ 2013-03-12 01:48  圣骑士wind  阅读(1674)  评论(0编辑  收藏  举报