Android設備上的傳感器模擬工具:SensorSimulator
本文介紹一個Android設備上的傳感器模擬工具:SensorSimulator。
為什么要使用SensorSimulator
1.沒有設備。
Android開發中要用到某些傳感器,沒有真實設備,或者已有的設備不具備某種傳感器。
這種情況當然首先是買設備,畢竟程序最終是要跑在真實設備上的,再山寨的應用也務必在真實設備上跑一跑比較好,(真實設備用多了之后就發現不怎么愛用模擬器了)。
當然,考慮實際情況,在不一定立即有設備的情況下,可以用這個傳感器模擬工具來開發。
2.比使用真實設備更容易控制、更方便。
即便有裝備好的真實設備,利用這個工具也可以進行一些參數的具體調試,畢竟,要嚴格控制真實設備的各種角度,人手工操作不太准確;
並且開發的時候一邊要寫代碼,一邊要動來動去也不太方便。
3. Telnet Simulator部分的功能可以模擬GPS和電池電量。
因為GPS必須是在室外才可以得到數據,所以這項模擬功能很有必要(當然,Eclipse也可以往模擬器發送GPS的經緯度坐標值)。
SensorSimulator功能:
關於該項目功能的詳細介紹可以參看文后的鏈接。
可以模擬的傳感器有:
accelerometer(加速度計), compass(羅盤), orientation(方向傳感器), temperature(溫度傳感器), light(光傳感器), proximity(接近傳感器), pressure(壓力傳感器), linear acceleration(線性加速度計), gravity(重力感應傳感器), gyroscope(陀螺儀) and rotation vector sensors(旋轉向量傳感器)。
這個SensorSimulator工具可以把模擬的傳感器數據傳到Android模擬器,也可以記錄真實設備上的傳感器數據。
SensorSimulator下載和安裝:
1.下載:
去這個鏈接
http://code.google.com/p/openintents/wiki/SensorSimulator
有項目相關介紹,然后點擊其中的下載鏈接,進入下載頁面:
http://code.google.com/p/openintents/downloads/list?q=sensorsimulator
下載最新的sensorsimulator-x.x.x.zip壓縮包。
我寫這篇文章的時候最新的壓縮包是叫sensorsimulator-2.0-rc1.zip。
2.解壓這個壓縮包,得到一系列的東東:

readme中包含了目錄結構的介紹和簡單的使用指南。
3.安裝手機端的程序
bin目錄下擴展名為.apk的程序就是手機端的程序了。
有兩個安裝包。
請連好設備或者打開模擬器。
如果是豌豆莢和真機的話雙擊應該就能安裝。
不行的話可以用命令行,進入當前路徑后輸入:
adb install SensorSimulatorSettings-2.0-rc1.apk
adb install SensorRecordFromDevice-2.0-rc1.apk
包名不同的話,請注意更改包名。。
安裝完成后命令行會有Success提示。
在手機或模擬器上出現的圖標是這樣的:

4.打開PC端的程序:
bin目錄下擴展名為.jar的程序即為PC端程序。
我是雙擊就可以執行,這個貌似跟配置有關,如果你雙擊執行不了,也可以進入命令行執行下列命令:
java –jar sensorsimulator-2.0-rc1.jar
后面是具體的jar包名,如果不同請注意修改。
成功后出現的界面如下:

5.運行手機端程序,進行連接
運行手機端程序,填入PC端程序中左下角顯示的IP地址還有端口號。
端口號顯示在PC程序設置面的Socket中。

設置完之后轉入Testing Tab,選擇連接。
開始的時候沒有連接成功,用的IP是192.168.1.101。
吃了個飯回來換成10.0.2.2就連接成功了!
連接好后如下圖:

左邊是PC端程序,右邊是我的模擬器。
6.使用PC端軟件控制傳感器數據
連接好后就可以利用PC端軟件進行各種調節。

注意,選中的傳感器類型變化之后需要Disconnect,再重新Connect一下。
可以看到模擬器中顯示的數字是和數據顯示區域實時對應的,不需要手動刷新。
這樣,通過鼠標,就可以在PC端改變模擬器的傳感器數值了。
參考資料
Google code:
http://code.google.com/p/openintents/wiki/SensorSimulator
相關介紹:
http://www.openintents.org/en/node/6
http://www.openintents.org/en/node/23
