1. App description
AndroSensor supports all the sensors an android device can have and it will tell you which of them is not supported by your hardware.
View in a single screen the data from all device's sensors in real time. Graphical and text output available for each sensor (graphical output not available for proximity, location and battery info):
- location, location provider, accuracy, altitude and speed
- Google maps to show the above info. Tapping on your location shows your address, postal code and location accuracy (if available)
- accelerometer readings,
- gyroscope readings,
- light sensor value,
- ambient magnetic field values,
- device orientation
- pressure sensor (barometer)
- proximity sensor readings
- temperature readings
- battery status, voltage, temperature and health
- sound level meter (decibel)
- If your device supports it, next to the sensor's name, you will see how much power the sensor consumes per hour in mA.
*** If you like this app, please consider purchasing the donate key from Handster. No extra functionalities, just no ads and a bit of support for me to continue producing better apps for android! ***
* Donate version via Handster is a key. It removes ads from all versions of AndroSensor (starting from v1.8.1) and you still get the updates via the Android Market! In case you factory reset your phone you may download it again anytime from your Handster account with no additional charge.
* As of Aug 31, 2011 AndroSensor is available for free via Samsung Apps. Check it out!
As of version 1.9 you may choose how you want values to be displayed, that is under real-time chart output or the good-old text layout. You may switch between graph and text output for each sensor by tapping on the sensor image on the left side. Images that can be tapped are distincted by an orange line on the left edge of the icon. Graphs are not available for Location, Proximity and Battery info.
Enable from settings and press the record button to start capturing sensor values as they happen. When you press again the recording stops and exports the readings to CSV file on your SD Card. Only visible sensors are captured. Recording will be interrupted if you leave the main screen or if you manually turn the screen off. As of version 1.9.2, there is no limit of CSV file length, but AndroSensor must remain running in foreground.
Press MENU to toggle settings, see device info, system log file or a list of sensors that are unavailable for your device.
- Device info gathers as much as it can and prints it out in a simple and easy-to-read view. Mobile signal strength, wifi info, CPU architecture, available and total RAM, internal and external memory, display metrics, OpenGLES version and kernel version are a small part of the information displayed. Clicking on a line copies it's content to clipboard.
- Log view prints out the last ~100 lines of the device system log file, as in logcat. Saving or mailing the log will give you access to the full log file. To enable Logview you need to download the "AndroSensor Log Collector" addon.
- Androsensor never runs in background, so it does not consume battery while you don't use it.
- Supports Apps2SD.
- Enabled for Honeycomb, ICS and tablets.
- 17 Languages supported: English, Greek, Italian, Russian, Spanish, French, German, Hungarian, Portuguese, Romanian, Chinese, Dutch, Swedish, Turkish, Korean, Czech, Polish
* Please be encouraged to email me at fivasim (at) gmail.com if you wish to report a bug, suggest an improvement, request a translation to be added or if you just have a question about the app.
*Ads by AdMob
* NO KIND OF DATA is collected. Network permission is required only for the network location service to display and for the ads.
* Total RAM size shown might be lower than device specs since an amount of memory is bound by the android system (usually 96MB or so)
* GPS altitude does not take into consideration earth's abnormal shape so GPS altitude and google API altitude may differ by up to 50 meters (150 feet).
* Due to compatibility issues the Device Info screen is not available on android 1.6 (Donut).
* Some sensors need to be triggered by an event before they get activated. If light or proximity sensor are "Waiting for event..." , try throwing some extra light on your device to "wake up" the light sensor, and try moving your hand over your device (without touching it) to "wake up" the proximity sensor.
* If the app crashes after an update try uninstalling and reinstalling.
* Bugs will be fixed ASAP if you report them.
Regarding the battery usage:
Kind reminder: AndroSensor never runs in background but it consumes a lot of battery when it is running. Use with caution when in low battery situations.
AndroSensor uses a great deal of battery when it is up and running. It triggers all the sensors of your device plus the GPS (if enabled) and the microphone. It also performs a lot of real time calculations to show the values of the sensors, so it uses a great deal of CPU as well. But you do not have to worry about background usage.
Whenever AndroSensor is closed via the back button, paused via the home button, interrupted by another app coming to foreground or when the screen automatically or by user goes off (checking "Keep Screen On" in Setting prevents automatical turn-off) then all sensors and resources are released, all calculations stop and all threads are killed.
Gingerbread users observing "what has been using your battery" from settings do not be alert by a possible high percentage of AndroSensor in the list. The battery stats that come embeded with android 2.3+ start counting the moment you disconnect your phone from the charger, so if you run androsensor for a few minutes right after disconnecting and then check who's eating that battery you might see that androsensor has been using more than 50% of your battery. Also, these stats are acquired by a rough estimation of these values listed usage_type_cpu, usage_type_cpu_foreground, usage_type_wake_lock, usage_type_gps, usage_type_wifi_running, usage_type_data_send, usage_type_data_recv. Most of these are very high for AndroSensor while it is active, so AndroSensor is a battery killer while active. However it does never run in the background.
As obliged by android standard activity lifecycle, AndroSensor will remain inactive in memory until android system needs that memory and reclaims it. You may force this memory to be released by exiting with the Exit option from the menu. Anyway memory residence does not eat battery. Seeing an instance of AndroSensor in a task manager does not mean it is eating battery, try a system manager instead.
To confirm the above, you can use a task manager and see how much cpu is taken by AndroSensor when it is in the background, and of course, see if your device's battery lasts less on long term usage.
To sum up, AndroSensor kills your battery while it is running, it wouldn't work otherwise. It can deplete your battery in about 5 hours of continuous usage (maybe even less depending on your device). When forced to background everything stops, along with battery consumption. Simple as that!
Update: After many months of testing and debugging I haven't found a way to fix the battery issue for good. Perhaps I shouldn't... It's not really my issue but a general android problem (just google for "gingerbread battery drain"). And it happens with EVERY app that makes use of the sensors that are the root of the problem.
The battery leakage comes from android sensors that are not well supported by the kernel or the android OS. Most usually the accelerometer sensor causes the issue but sometimes the light sensor and the proximity sensor can cause this issue as well. Other sensors seem to have nothing to do with battery drain.
However I have found what's causing it and ways to `patch` over it (unfortunately, no way to permanently fix it).
Trying to invoke a sensor with such a problem, will cause the sensor to stay open even after the app is stoped and disposed of memory.
Another common issue is a conflict. Two apps register the same sensor, then one app unregisters but fails because the sensor is in use by the other app. The sensor stays in use by one of the two apps and this will remain even after both apps are killed.
In most cases there is a way to fix this:
- In the first case, you may just find which sensor is misbehaving (strange readings, very slow response or 'Failed to start' error etc.). Go to AndroSensor's settings and disable that sensor. Then reboot, run AndroSensor once and wait to see if the problem persists. Most usually the light and the proximity sensors are to blame for this issue. Sometimes the issue is caused only if both light and proximity are enabled, but disappears after disabling any of the two.
- If you don't have a misbehaving sensor then there is probably some conflict. Conflicts can be caused (usually in Gingerbread) when having auto-rotate (accelerometer use) or auto-brightness on.
Solution: Go to your device's display settings and disable auto-brightness and auto-rotation. Then reboot, run AndroSensor once and wait to see if the battery drain continues. If the problem persists then there is probably a conflict with some hidden/system service. Most usual is the conflict with SGS and SGS2 secret menu ( by dialling "*#0*#" on the dialer ). I have found no way to bypass this and it can only be solved by disabling the accelerometer and orientation sensors in AndroSensor, then reboot (orientation sensor makes seemless use of the accelerometer).
The only good thing about this, is that in HoneyComb and ICS the issue seems to have disappeared for good!
If you find anything better please feel free to contact me. I'll test the solution and share it here.
Note: All permissions required by androsensor are used only to show the info that can be retrieved by the Android system regarding your device. No kind of data is collected under any circumstances and no tampering of your device is attempted. Androsensor is a diagnostic tool and a showcase of your device's features and values... and nothing more. Here's a short explanation of the permissions required by Androsensor as shown on the Android Market:
- record audio ("android.permission.RECORD_AUDIO") : required for activation of the microphone to measure sound level.
- fine (GPS) location ("android.permission.ACCESS_FINE_LOCATION") : required for getting location to test the functionality of device's GPS.
- coarse (network-based) location ("android.permission.ACCESS_COARSE_LOCATION") : required for getting location to test the functionality of device's network location values.
* No location data is collected (not even for the ads).
- full Internet access ("android.permission.INTERNET") : It is required for the ads, the network based location and for the google maps and the geocoder to work. Geocoder is the function that uses Google API to convert a location to a physical address. You may test this if you tap on your location on Androsensor's map. Also, Internet access is used to retrieve external IP by making a simple GET request to http://fivasim.pcriot.com/ip.php.
- read phone state and identity ("android.permission.READ_PHONE_STATE") : It is required by the "Device Info" view. Among others it retrieves phone IMEI code, serial number, SIM card status-health and SIM serial number. This permission also gives access to an incoming phone call information (only if the call is active, not call history) but this feature is not and will never be used by this app.
- modify/delete USB storage contents modify/delete SD card contents ("android.permission.WRITE_EXTERNAL_STORAGE") : It is required by the "Snapshot" and "Save Log to SD" feature. Gives permission to write only on SD Card / External storage and not internal storage or apps in sdcard. Files are saved for your own later use. Delete possibility is not and will never be used by this app.
- view Wi-Fi state ("android.permission.ACCESS_WIFI_STATE") : It is required by the "Device Info" view for showing wifi information and signal strength.
- view network state ("android.permission.ACCESS_NETWORK_STATE") : It is required by the "Device Info" view for showing mobile network information like operator, antennas in range and mobile signal strength.
Your personal information (Optional)
- read sensitive log data ("android.permission.READ_LOGS") : It is required for viewing device logs. All the logview does is execute shell command "logcat -d" and print the output (or save/email it if the users chooses to do so). It exists only if you download the Log Collector patch.
5.Special thanks to:
- Christina for the Italian translation
- Andrey Moiseev for the Russian translation (Andrey's blog, Andrey's apps)
- Mikhail Sokolov for the Spanish translation
- Jean-Baptiste Lecomte for the French translation (Jean-Baptiste's blog)
- Bela Dora for the Hungarian translation
- Jorge Moojen for the Portuguese translation (Jorge's website)
- Vlad Vidican for the Romanian translation.
- Matei Miron for his help with the Romanian translation.
- Götz Ruhland for his help with the the German translation. (Götz's website)
- Mathias for the Dutch translation.
- Knutars for the Swedish translation.
- Emre for the Turkish translation.
- Gyoohwan Ko for the Korean translation.
- Petr for the Czech translation.
- Jacek for the Polish translation.
- Everybody who has reported a bug or issue.
- Everybody who has rated or made a comment, regardless of how many stars.
*** Thank you! ***
7. The sensors
Androsensor shows how your device understands the environment around it using it's sensors. As any computer-like device, the android understands numbers. Sensors translate environmental forces to numbers.
Many people don't know exactly what all of these values mean. So allow me to explain briefly what each sensor does:
Location: It shows your location with longitude and latitude, along with other values such as speed or elevation. Choosing the mapview will show you what these values mean on a map.
Accelerometer: It measures the amount of force applied on the device trying to force it to move. If you leave the phone flat on a table it will display the values of gravity's acceleration. If you move it around it shows in real time how much force is applied on it in the form of acceleration. The x,y and z axis show the direction of the force. x is relative to the left and right sides of the phone as you hold it looking at the screen. y is relative to the up and down sides of the phone as you hold it looking at the screen. z is relative to the front and back sides of the phone as you hold it looking at the screen.
Gyroscope: It is a little like the accelerometer but measures the rotation speed of the device and not acceleration. This is mostly required for games like 3D racing games and is available only on some of the most expensive devices.
Magnetic Field: Measures force in the 3-axis like the accelerometer but for magnetic forces. You can check this by bringing a magnet near the phone. If there is no magnet or large metal object nearby, it gives you the magnetic field of the earth. Units are uT (microTesla).
Orientation: Shows which way your phone is pointing at. X is relative to magnetic north pole (0 means your device's top points to the north pole, like a compass), y is relative to the ground (0 means phone is left flat, eg on a table... 90 means that phone is standing vertical) and z shows "roll", this is rotation around itself where 0 means phone is facing to the sky and 180 means the screen is facing the ground.
Light: Light sensor measures the intensity of light being thrown on your device. The light sensor is usually located near the earpiece of your device and is mostly used to adjust screen brightness according to the ambient light, so that the screen will be as clear as it can be while not tiring your eyes, or consuming excessive battery power.
Proximity: Proximity sensor checks whether there is some obstacle in a very close distance to your device (usually that would be your hand or your ear). The proximity sensor is usually located near the earpiece of your device and is mostly used to automatically turn the screen off while you are in a call and you bring the phone to your ear, so that you don't accidentally press your screen and mess with the call. Proximity sensor has a very small radius, it detects movement in a short distance varying between 0.5 cm and a couple of inches ( actual values depend on device ).
Pressure: Pressure sensor measures the atmosphaeric pressure in your location. It is actually a barometer for the devices that have one, which are very few currently. The pressure sensor can be used as a normal barometer (which is to predict the weather), but it also helps for more accurate calculation of your elevation/altitude, at which GPS can be off by unacceptable amounts.
Temperature: Ambient temperature value. This is different from battery temperature. This sensor is deprecated in newer versions of android OS and may not work on certain devices, even if it exists.
Relative Humidity: Relative ambient air humidity in percent. (from Wikipedia): Relative humidity is a term used to describe the amount of water vapor in a mixture of air and water vapor. It is defined as the ratio of the partial pressure of water vapor in the air-water mixture to the saturated vapor pressure of water at the prescribed temperature. At a relative humidity of 100 percent, liquid water at the same temperature as the air will no longer evaporate. A relative humidity of 0 percent means that no water vapor is present. Relative humidity is often used instead of absolute humidity in situations where the rate of water evaporation is important, as it takes into account the variation in saturated vapor pressure.
Battery: Not really a sensor, but a message broadcasted by the android system every time a change is detected in the status of the battery.
Sound: Measures the intensity of sound that the phone's microphone receives. It is not very accurate and needs calibration (from Preferences) on each device, but can give you a good idea of:
- how loud a place is when compared to someplace else.
- how well you microphone works and what kind of sounds it is able to intercept.
v18.104.22.168a (Jul 3, 2012) :
- Fixed a force close that occured on some devices when pressing `record`. Apologies for the inconvenience, thanks for reporting.
v22.214.171.124 (Jun 29, 2012) :
- New sensor: Relative Humidity
- Added two extra precision digits for longitude and latitude
- Extended the available record interval values from 0.05 to 120 seconds
- Added GPS bearing in location
- Added a small graph button/indicator in the sensor fields that have graphs available. You may still use the big sensor icon in the left to turn graphs on/off
- Fixed UI flickering for certain ICS devices - lighter UI with same look
- Minor bugfixes and translation corrections.
v126.96.36.199 (Apr 20, 2012) :
- Added help buttons on the right side of each sensor field. Tapping on a help button shows a help text that explains each sensor. Help buttons may be hidden from settings. Texts are currently only available in English.
- Added Polish translation thanks to Jacek.
- Fixed a bug that caused data recording to stop in certain occassions.
- Changed record interval limits. Added -/+ buttons.
- Orientation fix for certain ICS custom ROMs.
v188.8.131.52 (Feb 26, 2012) :
- Added Swedish, Turkish, Korean and Czech translations thanks to Krister Knutars, Emre, Gyoohwan Ko and Petr respectively.
- Recording data has no software limit any more. You may record data for hours.
- Pressing back button while recording throws an alert instead of closing the app. If recording gets interrupted, data collected so far is saved and not lost.
- A couple more bugfixes.
v184.108.40.206 (Jan 14, 2012) :
- Various bugfixes. Thank you all for reporting any kind of issues.
v1.9.4 (Jan 6, 2012) :
- Added Dutch translation thanks to Mathias.
- Fixed compass when changing rotating device (the fix works in android 2.2 and higher).
- Sensor data recording writes down only the selected sensors as expected when changing active sensors from settings.
- Users that have the app before 1.9.2 must uninstall and reinstall. A popup appears to let you know, instead of FCing.
- A couple minor bugfixes.
v1.9.3 (Dec 22, 2011) :
- Better support for Android 4.0+ ICS
- The LogView has been removed from AndroSensor's default package, along with the much commented READ_LOGS permission. If you still want AndroSensor's Log collector search the market for "AndroSensor Log".
- Better compass accuracy for Gingerbread and above.
- Removed compatibility hacks for legacy devices running android 1.6.
v1.9.2 (Dec 4, 2011) :
- Fixed graph scaling and show actual values below graph.
- An AndroSensor directory is created in external storage to save files created by AndroSensor.
- Corrections for Romanian and German translations. Special thanks to Matei and Goetz respectively.
v1.9.1 (Nov 5, 2011) :
- Added Chinese translation thanks to the Ndoo team. Also corrected a few minor translation errors in italian.
- Extra debug output in system logs.
- New Admob SDK.
v1.9 (Oct 24, 2011) :
- Finally added graphs (beta). Just press the sensor icon to switch from text to graph view. Graphs are available only for the icons that have a thin orange line in the left.
- Added Romanian translation thanks to Vlad.
- Display totals for accelerometer and magnetic field.
v1.8.3 (Sep 21, 2011) :
- Fixed an FC / freeze that occured on some devices. Thanks for reporting and apologies for the inconvenience.
- Added Portuguese translation thanks to Jorge.
- Added an option to lock orientation of the app.
v1.8.2 (Sep 10, 2011) :
- Added google altitude. If location is obtained by network and altutude is not available, google's API returns altitude of your location based on longitude and latitude.
- Added number of satellites used for the fix.
- Fixed MapView follow mode issue.
- Minor performance and bugfixes.
v1.8.1 (Aug 19, 2011) :
- Samsung Epic users should be able to use AndroSensor again. Thanks for the feedback.. apologies for the inconvenience.
- Added option for rows/columns format of CSV file.
- Mapview has a default "follow" mode when you're moving. Follow mode deactivates if you scroll the map with your finger and reactivates if you click MENU->Location.
- Few display and translation fixes.
- Donate version via Handster is now a key. It removes ads from all versions of AndroSensor starting from v1.8.1 and you still get the updates via the Android Market!
v1.8a (Aug 9, 2011) :
- Added Hungarian translation (thanks to Bela) and German translation (bitte nicht streng sein!).
- Added multitouch test in device info.
- Added the option to record sensor values overtime and export to CSV.
- Added checkbox in Settings to limit the size of the email when sending log, in case it fails otherwise. The log file is now sent as a file attachment instead of plain text.
v1.7.5 (Jul 31, 2011) :
- Added French translation (thanks to Jean-Baptiste)
- Added list option in "Settings" to select which sensors are activated.
- Attempt to retrieve an error for sensors that exist on hardware but are not supported by software (mostly for temperature sensor) instead of always "Waiting for event". This does not always succeed, but can give a good hint.
- Attempt for finally fixing cpu cores bug that still exists in the Atrix and Droidx2. Apologies about that... Hopefully it's the last fix. Please provide some feedback on this. Thanks!
v1.7.4 (Jul 28, 2011) :
- Added pressure sensor (barometer) support. Special thanks to Johnny for his help.
- Wifi section is not totally empty when not connected to a network. No wifi scan is added since it's not like Androsensor. Androsensor only observes, never intervenes :) .
- Yet another fix for cpu cores bug that remained for a few devices.
- New admob SDK.
- A few minor bugfixes. Thank you all for reporting!
v220.127.116.11 (Jul 18, 2011) :
Fixed cpu cores bug. Sorry about that :)
v1.7.3 (Jul 17, 2011) :
- Added Spanish translation (thanks to Mike)
- Fix mobile signal strength on CDMA networks and wifi signal.
- CPU speed is diplayed in real time along with min and max values. Also added number of CPU cores.
- Bigger ads for tablets.
- There where complaints that app didn't close property on certain devices running 2.3.4. So I added an exit option in main screen option menu to kill the app (press MENU).
- Created a simple Androsensor website. The website includes explanations about the sensors.
v1.7.2 (Jun 29, 2011) :
- Added Russian translation (thanks to Andrey)
- Added WiFi info in "Device info" view. (That's why the new permission is required)
- Language defaults in system locale (if default language is supported).
- Snapshot button is also enabled for the "Device Info".
- Fixed a random FC on MapView.
- Little performance tweaking.
9. Reading AndroSensor's CSV data from sensor
AndroSensor has the ability to record sensor data and export it to a CSV file. This file is saved in your device's SD card (or external memory) in a folder named AndroSensor. When the recording is finished a popup notification appears to tell you the name of the CSV file. The format is "Sensor_record_<dateTime in ISO format>_AndroSensor.csv" (no brackets).
You may transfer the CSV file to your PC and open it with a spreadsheet program like Microsoft Excel or LibreOffice Calc. When you open the file you will be prompted on how you want the program to parse the file for best readability. Below is a screenshot on how to configure it. The screenshot is taken from OpenOffice Spreadsheet, but the same settings apply for Microsoft Excel and LibreOffice Calc.
10. Links / Reviews about AndroSensor
- AndroSensor reviewed by AndroidTapp
- AndroSensor reviewed at TalkAndroid
- AndroSensor reviewed by Android app review source
- AndroSensor reviewed at TechCular
- Παρουσίαση του AndroSensor απ το OSarena