openintents から 無料で公開されている.

サポートされるセンサーは以下.
加速度計
時針
向き
温度
光
近接性
気圧
重力
線形加速度
回転ベクトル
ジャイロスコープ
できること
デバイスにセンサーイベントを送信
パソコン上及びデバイス上でそのイベントを記録
記録したイベントをデバイス上で再生
Downloads - openintents - Make Android applications work together. - Google Project Hosting
ダウンロードした zipアーカイブを展開して bin/ 以下.
sensorsimulator-2.0-rc1/ ├── bin │ ├── SensorRecordFromDevice-2.0-rc1.apk │ ├── SensorSimulatorSettings-2.0-rc1.apk │ └── sensorsimulator-2.0-rc1.jar
デバイス向けapk とパソコン向けjar が確認できる.
イベントの送受信は,
SensorSimulatorSettings-2.0-rc1.apk
sensorsimulator-2.0-rc1.jar
の2つ.
デバイスにインストールして, パソコン上でクライアントを起動.
$ cd sensorsimulator-2.0-rc1 $ adb install bin/SensorRecordFromDevice-2.0-rc1.apk $ adb install bin/SensorSimulatorSettings-2.0-rc1.apk $ open bin/sensorsimulator-2.0-rc1.jar

パソコンから送信したセンサーイベントの記録は, 「Senario Simulator」タブから.
実機でのセンサー操作の記録は, SensorRecordFromDevice-2.0-rc1.apk 側から.
その他ソースコード, サンプルなど, アーカイブに同梱されている.
sensorsimulator-2.0-rc1/
├── SensorRecordFromDevice
│ ├── AndroidManifest.xml
│ ├── assets
│ ├── build.properties
│ ├── build.xml
│ ├── default.properties
│ ├── lib
│ ├── libs
│ ├── proguard.cfg
│ ├── readme_SensorRecordFromDevice.txt
│ ├── res
│ │ ├── drawable-hdpi
│ │ │ └── icon.png
│ │ ├── drawable-ldpi
│ │ │ └── icon.png
│ │ ├── drawable-mdpi
│ │ │ └── icon.png
│ │ ├── layout
│ │ │ ├── list_item.xml
│ │ │ └── record.xml
│ │ └── values
│ │ └── strings.xml
│ ├── src
│ │ └── org
│ │ └── openintents
│ │ └── sensorsimulator
│ │ └── record
│ │ ├── Global.java
│ │ ├── SensorRecordFromDeviceActivity.java
│ │ ├── SensorRecordService.java
│ │ ├── SensorsAdapter.java
│ │ └── SimpleSensor.java
│ ├── template\ of\ build-private.properties
│ └── template\ of\ local.properties
├── SensorSimulator
│ ├── TODOs
│ ├── build-release.xml
│ ├── configDir.txt
│ ├── interpolationFiles
│ │ ├── load.ss.xml
│ │ └── save.ss.xml
│ ├── readme_SensorSimulator.txt
│ └── src
│ ├── configPhone.txt
│ ├── org
│ │ └── openintents
│ │ └── tools
│ │ └── simulator
│ │ ├── Global.java
│ │ ├── SensorServer.java
│ │ ├── SensorServerThread.java
│ │ ├── SensorSimulator.java
│ │ ├── SensorsScenario.java
│ │ ├── SimulatorInstances.java
│ │ ├── TelnetSimulator.java
│ │ ├── controller
│ │ │ ├── AllSensorsController.java
│ │ │ ├── DeviceController.java
│ │ │ ├── SensorSimulatorController.java
│ │ │ ├── SensorsScenarioController.java
│ │ │ ├── StateControllerBig.java
│ │ │ ├── StateControllerSmall.java
│ │ │ ├── TelnetSimulatorController.java
│ │ │ ├── sensor
│ │ │ │ ├── AccelerometerController.java
│ │ │ │ ├── BarcodeReaderController.java
│ │ │ │ ├── GravityController.java
│ │ │ │ ├── GyroscopeController.java
│ │ │ │ ├── LightController.java
│ │ │ │ ├── LinearAccelerationController.java
│ │ │ │ ├── MagneticFieldController.java
│ │ │ │ ├── OrientationController.java
│ │ │ │ ├── PressureController.java
│ │ │ │ ├── ProximityController.java
│ │ │ │ ├── RotationVectorController.java
│ │ │ │ ├── SensorController.java
│ │ │ │ ├── TemperatureController.java
│ │ │ │ └── WiiAccelerometerController.java
│ │ │ └── telnet
│ │ │ ├── BatteryAddonController.java
│ │ │ └── GPSAddonController.java
│ │ ├── main
│ │ │ └── SensorSimulatorMain.java
│ │ ├── model
│ │ │ ├── SensorsScenarioModel.java
│ │ │ ├── StateModel.java
│ │ │ ├── sensor
│ │ │ │ ├── SensorSimulatorModel.java
│ │ │ │ └── sensors
│ │ │ │ ├── AccelerometerModel.java
│ │ │ │ ├── BarcodeReaderModel.java
│ │ │ │ ├── GravityModel.java
│ │ │ │ ├── GyroscopeModel.java
│ │ │ │ ├── LightModel.java
│ │ │ │ ├── LinearAccelerationModel.java
│ │ │ │ ├── MagneticFieldModel.java
│ │ │ │ ├── OrientationModel.java
│ │ │ │ ├── PressureModel.java
│ │ │ │ ├── ProximityModel.java
│ │ │ │ ├── RotationVectorModel.java
│ │ │ │ ├── SensorModel.java
│ │ │ │ ├── TemperatureModel.java
│ │ │ │ └── WiiAccelerometerModel.java
│ │ │ └── telnet
│ │ │ ├── FileRunnable.java
│ │ │ ├── FileThread.java
│ │ │ ├── TelnetServer.java
│ │ │ ├── TelnetSimulatorModel.java
│ │ │ ├── Vector.java
│ │ │ ├── WiiMoteData.java
│ │ │ └── addons
│ │ │ ├── BatteryAddonModel.java
│ │ │ └── GPSAddonModel.java
│ │ ├── util
│ │ │ ├── FileExtensionFilter.java
│ │ │ ├── HtmlTextPane.java
│ │ │ ├── Interpolate.java
│ │ │ ├── JTextFieldLimit.java
│ │ │ ├── PhoneSensors.java
│ │ │ ├── SynchronizedInteger.java
│ │ │ └── XMLUtil.java
│ │ └── view
│ │ ├── DevicePanel.java
│ │ ├── SensorsScenarioView.java
│ │ ├── StateViewBig.java
│ │ ├── StateViewSmall.java
│ │ ├── gui
│ │ │ └── util
│ │ │ ├── SensorButton.java
│ │ │ └── TimeScrollBar.java
│ │ ├── help
│ │ │ └── HelpWindow.java
│ │ ├── sensor
│ │ │ ├── AllSensorsView.java
│ │ │ ├── DeviceView.java
│ │ │ ├── SensorSimulatorView.java
│ │ │ └── sensors
│ │ │ ├── AccelerometerView.java
│ │ │ ├── BarcodeReaderView.java
│ │ │ ├── GravityView.java
│ │ │ ├── GyroscopeView.java
│ │ │ ├── LightView.java
│ │ │ ├── LinearAccelerationView.java
│ │ │ ├── MagneticFieldView.java
│ │ │ ├── OrientationView.java
│ │ │ ├── PressureView.java
│ │ │ ├── ProximityView.java
│ │ │ ├── RotationVectorView.java
│ │ │ ├── SensorView.java
│ │ │ ├── TemperatureView.java
│ │ │ └── WiiAccelerometerView.java
│ │ └── telnet
│ │ ├── TelnetSimulatorView.java
│ │ └── addons
│ │ ├── BatteryAddonView.java
│ │ └── GPSAddonView.java
│ └── pics
│ ├── button_start.png
│ ├── button_stop.png
│ ├── icon_add.png
│ ├── icon_copy.png
│ ├── icon_cursor.png
│ ├── icon_delete.png
│ ├── icon_edit.png
│ ├── icon_help.png
│ ├── icon_play_pause.png
│ ├── icon_sensor_simulator.png
│ ├── icon_stop.png
│ ├── menu_console.png
│ ├── menu_help.png
│ ├── menu_sensor_simulator.png
│ └── menu_settings.png
├── SensorSimulatorSettings
│ ├── AndroidManifest.xml
│ ├── build-lib-content.txt
│ ├── build.properties
│ ├── build.xml
│ ├── default.properties
│ ├── libs
│ ├── proguard.cfg
│ ├── readme_SensorSimulatorSettings.txt
│ ├── res
│ │ ├── drawable
│ │ │ ├── mobile001a.png
│ │ │ ├── mobile001a_32.png
│ │ │ ├── mobile_shake001a_32.png
│ │ │ ├── mobile_shake_application001.png
│ │ │ ├── mobile_shake_application001a.png
│ │ │ ├── settings001a.png
│ │ │ └── settings001a_32.png
│ │ ├── drawable-hdpi
│ │ ├── drawable-ldpi
│ │ ├── drawable-mdpi
│ │ ├── layout
│ │ │ ├── sensorsimulator.xml
│ │ │ └── sensorsimulator_row.xml
│ │ └── values
│ │ └── strings.xml
│ ├── src
│ │ └── org
│ │ └── openintents
│ │ └── sensorsimulator
│ │ ├── SensorSimulatorSettingsActivity.java
│ │ ├── db
│ │ │ ├── SensorSimulator.java
│ │ │ └── SensorSimulatorConvenience.java
│ │ ├── dbprovider
│ │ │ └── SensorSimulatorProvider.java
│ │ └── hardware
│ │ ├── Sensor.java
│ │ ├── SensorEvent.java
│ │ ├── SensorEventListener.java
│ │ ├── SensorManagerSimulator.java
│ │ ├── SensorNames.java
│ │ └── SensorSimulatorClient.java
│ ├── template\ of\ build-private.properties
│ └── template\ of\ local.properties
├── bin
│ ├── SensorRecordFromDevice-2.0-rc1.apk
│ ├── SensorSimulatorSettings-2.0-rc1.apk
│ ├── readme_SensorRecordFromDevice.txt
│ ├── readme_SensorSimulator.txt
│ ├── readme_SensorSimulatorSettings.txt
│ └── sensorsimulator-2.0-rc1.jar
├── lib
│ └── sensorsimulator-lib-2.0-rc1.jar
├── readme.txt
├── release
│ ├── RELEASE-CHECKS.txt
│ ├── build.properties
│ ├── build.xml
│ └── readme.txt
└── samples
├── SensorRealDevice
│ ├── AndroidManifest.xml
│ ├── default.properties
│ ├── res
│ │ ├── drawable
│ │ │ └── icon.png
│ │ ├── layout
│ │ │ └── main.xml
│ │ └── values
│ │ └── strings.xml
│ └── src
│ └── org
│ └── openintents
│ └── samples
│ └── SensorRealDevice
│ └── SensorRealDeviceActivity.java
└── SensorSimulatorDemo
├── AndroidManifest.xml
├── default.properties
├── lib
│ └── gsoc_openintents_sensorsimulator.jar
├── res
│ ├── drawable
│ │ └── icon.png
│ ├── layout
│ │ └── main.xml
│ └── values
│ └── strings.xml
└── src
└── org
└── openintents
└── samples
└── SensorSimulatorDemo
└── SensorSimulatorDemoActivity.java
82 directories, 185 files
実機でシナリオ作成して, 繰り返しテストするのに良いだろう,とか.