SlideShare a Scribd company logo
1 of 26
Download to read offline
Sensors on Android
ChinmayVS @ DroidCON-2011
cvs@droidcon$ who am i

• Android >2yrs. Remember           anyone?


•            - sensors development. 10million+ units sold.



• Presently working @

                          PathPartnerTech.com




10:16 PM                 Sensors on Android                  2
Sensors on Android
PART1 : Introduction                                       PART4: Sensor Application development.
•   Sensors on Android                                     Sample android app (code snippets)
•   Famous sensor apps
•   Sensors in Android apps                                PART5: App-dev Tips and tricks
•   Sensor Hardware intro                                  •       Sensor callibration.
                                                                   1. one-turn deserves another (axes-calib)
PART2 : Android Sensor Overview                                    2. zero-calib
•   Overview                                               •       Sensor fusion (hard-way)
•   Porting a new sensor onto Android                      •       Invensense (easy-way)
•   Kernel                                                 •       Polling rate game/ui/fastest
•   Sensor "HAL"                                           •       When to place Wakelocks
                                                           •       When to register/unregister eventListener

PART3 : Porting tips and tricks
•   No motion ≠ 0accel
•   Accel axes 3step calibration
•   Input devices & events (EV_ABS, EV_REL)




10:20 PM                                      Sensors on Android                                               3
“Sense-ors” on Android
                A sensor (also called detector) is a device that measures
           a physical quantity and converts it into a signal which can be read by
                             an observer or by an instrument.

                                            1.    ACCELEROMETER
                                            2.    GYROSCOPE
                                            3.    MAGNETIC_FIELD
                           REAL
                                            4.    LIGHT
                                            5.    PRESSURE
                                            6.    AMBIENT_TEMP
                                            7.    RELATIVE_HUMIDITY

                                            8.    PROXIMITY
                          VIRTUAL
                                            9.    LINEAR_ACCELERATION
                                            10.   GRAVITY
                                            11.   ROTATION_VECTOR


                         DEPRECEATED
                                            12. TEMPERATURE
                                            13. ORIENTATION


10:20 PM                               Sensors on Android                           4
“Famous” sensor apps




10:16 PM         Sensors on Android   5
Sensors in Android applications


             • Use-cases of sensors in apps:
             1.   Active-Input
             2.   Passive-Input            Application developer
             3.   Active-Passive
             4.   Auto-Rotate              Android window manager




10:16 PM                           Sensors on Android               6
Sensors in Android applications (1/4)

• Active input




10:16 PM                 Sensors on Android        7
Sensors in Android applications (2/4)

• Passive input




10:16 PM                 Sensors on Android        8
Sensors in Android applications (3/4)

• Active-passive




10:16 PM                 Sensors on Android        9
Sensors in Android applications (4/4)

• Auto-rotate




10:16 PM                 Sensors on Android        10
Sensor Hardware Intro (1/4)

• Accelerometer




      + ZERO drift
      - Relatively slower response



10:16 PM                             Sensors on Android   11
Sensor Hardware Intro (2/4)

• Gyroscope (MEMS)




      + Extremely quick response
      - Gradual drift with time



10:16 PM                           Sensors on Android   12
Sensor Hardware Intro (3/4)

• Compass (Magnetometer)




      + Obtain Yaw/Azimuth
      + Rotation with the device on a flat surface
      - Picks-up surrounding magnetic noise


10:16 PM                              Sensors on Android   13
Sensor Hardware Intro (4/4)

• Light & Proximity




10:16 PM              Sensors on Android   14
Android Sensors Frameworks Overview

Android App
  • Use SensorManager & SensorEventListener              C
                                                         O
Android Framework                                        N         D
  • SensorService & SensorManager                        T         A
                                                         R         T
Android sensor “HAL”                                     O         A
                                                         L
  • Links the Kernel-Drivers to the framework

Kernel Drivers
  • Device drivers to control and gather data from the actual hardware.

10:16 PM                       Sensors on Android                         15
Porting a sensor onto Android

Q. My board has XYZ sensor. How do I get Android to recognise it?

 Kernel
       Device-driver
       Board File


 Userspace
       Adding New HAL
      -OR-
       Modifying existing HAL




10:16 PM                         Sensors on Android                 16
Porting a sensor onto Android (kernel)

       Device-driver
            Poll/Interrupt? Hybrid-approach = Workqueues
            Early-suspend hook
            input_report_abs() / input_report_rel()



       Board File
            Interrupt, GPIO, SPI/I2C-lines
            Axes-remap to device axes platform_data




12:15 AM                               Sensors on Android   17
Porting a sensor onto Android (kernel)

 Workqueues




12:09 AM                  Sensors on Android        18
Porting a sensor onto Android (kernel)

 Early-Suspend hook



 Input Events




12:13 AM                  Sensors on Android        19
Porting a sensor onto Android (userspace)

 Sensor-HAL

       Adding
           – Reference Implementation : http://goo.gl/jjF3l
           – Sensor-HAL implemented in : android/device/<vendor>/<device>/libsensors
           – Generates library : system/lib/hw/sensors.<TARGET_BOARD_PLATFORM>.so


       Modifying
           – Update sensors.cpp in sSensorList[]
           – Derive a new sensor object, Include appropriate file
           – Update i/p dev name in constructor




12:30 AM                                 Sensors on Android                            20
Sensor Fusion

 Advantages
      –    Faster data samples
      –    Less noise in data samples
      –    More Accurate data samples
      –    Advanced Sensor data (Gestures, Glyphs, Shake-count, Step-count)

 Disadvantage
      –    Higher power consumption


 Implement inside App
      – Register multiple sensor-listeners.
      – Correlate-data.

 Implement using Custom-Library
      – android/device/sample/frameworks/PlatformLibrary http://goo.gl/OI8sg


12:30 AM                                  Sensors on Android                   21
Using Sensors in your app




    SensorEvent     http://goo.gl/hWOQu

    SensorManager   http://goo.gl/1DRUv




12:30 AM                         Sensors on Android   22
App-dev Tips and tricks

 Sensor callibration.
  1. one-turn deserves another (axes-calib)
  2. zero-calib
 Sensor fusion
       Hard-way
       Easy-way (Invensense ) http://goo.gl/bHmDe
 Polling rate ui/normal/game/fastest?
 When to register/unregister eventListener
 When to place Wakelocks




1:08 AM                               Sensors on Android   23
App-dev Tips and tricks



                                  register sensorlistener


                                      acquire wakelock


                                      release wakelock


                                unregister sensorlistener




1:04 AM          Sensors on Android                         24
What Next?

• Moving on…
      – Sensor Framework on Android 4.0 (ICS)
      – Sensor Drivers on Kernel 3.0


• Sensor-Fusion
     –     App / library
     –     Unified Kernel driver(sensors-class)

• Calorie-counter/Diet Advisor
    “You spent 800calories since breakfast. Have a Greek-salad and a cup of milk…”

• Location-fix without GPS (using sensors  wink-wink)

                                                                     http://goo.gl/ipbrL


12:57 AM                                    Sensors on Android                             25
Thank You!!

                     Questions?

              android-porting        android-developers

              android-kernel         android-platform



           CONTACT ME            http://goo.gl/kKMOr




10:16 PM                Sensors on Android                26

More Related Content

What's hot

What's hot (20)

Drone Applications.pptx
Drone Applications.pptxDrone Applications.pptx
Drone Applications.pptx
 
Radar Basics
Radar BasicsRadar Basics
Radar Basics
 
Design and Implementation of Security Based ATM theft Monitoring system
Design and Implementation of Security Based ATM theft Monitoring systemDesign and Implementation of Security Based ATM theft Monitoring system
Design and Implementation of Security Based ATM theft Monitoring system
 
GNSS
GNSSGNSS
GNSS
 
Sniffer for Detecting Lost Mobile
Sniffer for Detecting Lost MobileSniffer for Detecting Lost Mobile
Sniffer for Detecting Lost Mobile
 
Drone technology,UAV
Drone technology,UAVDrone technology,UAV
Drone technology,UAV
 
soldier tracking and health monitoring system
soldier tracking and health monitoring systemsoldier tracking and health monitoring system
soldier tracking and health monitoring system
 
Radar Presentation
Radar PresentationRadar Presentation
Radar Presentation
 
Soldier Health Monitoring and Position Tracking using LoRa Communications
Soldier Health Monitoring and Position Tracking using LoRa CommunicationsSoldier Health Monitoring and Position Tracking using LoRa Communications
Soldier Health Monitoring and Position Tracking using LoRa Communications
 
Gesture controled robot
Gesture controled robotGesture controled robot
Gesture controled robot
 
Smart quill ppt
Smart quill pptSmart quill ppt
Smart quill ppt
 
Savdhaan (Women Security App)
Savdhaan (Women Security App)Savdhaan (Women Security App)
Savdhaan (Women Security App)
 
Lidar
LidarLidar
Lidar
 
PIR sensing with arduino
PIR sensing  with  arduinoPIR sensing  with  arduino
PIR sensing with arduino
 
GPS DOCUMENT
GPS DOCUMENTGPS DOCUMENT
GPS DOCUMENT
 
HAPTIC TECHNOLOGY
HAPTIC TECHNOLOGY HAPTIC TECHNOLOGY
HAPTIC TECHNOLOGY
 
Radar
RadarRadar
Radar
 
Radar system
Radar systemRadar system
Radar system
 
Fire fighting robot
Fire fighting robotFire fighting robot
Fire fighting robot
 
SENSORS for attitude determination in Satellites
SENSORS for attitude determination in SatellitesSENSORS for attitude determination in Satellites
SENSORS for attitude determination in Satellites
 

Similar to Sensors on android

Sensors and location based services
Sensors and location based servicesSensors and location based services
Sensors and location based servicesChinmay V S
 
Sensor Observation Service Client for Android Mobile Phones
Sensor Observation Service Client for Android Mobile PhonesSensor Observation Service Client for Android Mobile Phones
Sensor Observation Service Client for Android Mobile PhonesCybera Inc.
 
Sensors in Android (old)
Sensors in Android (old)Sensors in Android (old)
Sensors in Android (old)Ahsanul Karim
 
Programming The Real World
Programming The Real WorldProgramming The Real World
Programming The Real Worldpauldeng
 
Developing Rich Interfaces in JavaFX for Ultrabooks
Developing Rich Interfaces in JavaFX for UltrabooksDeveloping Rich Interfaces in JavaFX for Ultrabooks
Developing Rich Interfaces in JavaFX for UltrabooksFelipe Pedroso
 
Android Workshop Day 1 Part 2
Android Workshop Day 1 Part 2Android Workshop Day 1 Part 2
Android Workshop Day 1 Part 2Ahsanul Karim
 
Final presentation today
Final presentation todayFinal presentation today
Final presentation todaynusratlima
 
INTERNET OF THINGS IMPLEMENTATION FOR WIRELESS MONITORING OF AGRICULTURAL...
INTERNET OF THINGS IMPLEMENTATION FOR WIRELESS MONITORING     OF AGRICULTURAL...INTERNET OF THINGS IMPLEMENTATION FOR WIRELESS MONITORING     OF AGRICULTURAL...
INTERNET OF THINGS IMPLEMENTATION FOR WIRELESS MONITORING OF AGRICULTURAL...chaitanya ivvala
 
Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai
Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai
Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai Itvedant
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentIJERD Editor
 
Trends in mobile sensors: how smartphones keep changing our life
Trends in mobile sensors: how smartphones keep changing our lifeTrends in mobile sensors: how smartphones keep changing our life
Trends in mobile sensors: how smartphones keep changing our lifeSnapbackLabs
 

Similar to Sensors on android (20)

Sensors and location based services
Sensors and location based servicesSensors and location based services
Sensors and location based services
 
Sensor Observation Service Client for Android Mobile Phones
Sensor Observation Service Client for Android Mobile PhonesSensor Observation Service Client for Android Mobile Phones
Sensor Observation Service Client for Android Mobile Phones
 
Android 1.8 sensor
Android 1.8 sensorAndroid 1.8 sensor
Android 1.8 sensor
 
Sensors in Android (old)
Sensors in Android (old)Sensors in Android (old)
Sensors in Android (old)
 
Semantics and Sensors
Semantics and SensorsSemantics and Sensors
Semantics and Sensors
 
Programming The Real World
Programming The Real WorldProgramming The Real World
Programming The Real World
 
Developing Rich Interfaces in JavaFX for Ultrabooks
Developing Rich Interfaces in JavaFX for UltrabooksDeveloping Rich Interfaces in JavaFX for Ultrabooks
Developing Rich Interfaces in JavaFX for Ultrabooks
 
Week12.pdf
Week12.pdfWeek12.pdf
Week12.pdf
 
Android Workshop Day 1 Part 2
Android Workshop Day 1 Part 2Android Workshop Day 1 Part 2
Android Workshop Day 1 Part 2
 
Final presentation today
Final presentation todayFinal presentation today
Final presentation today
 
INTERNET OF THINGS IMPLEMENTATION FOR WIRELESS MONITORING OF AGRICULTURAL...
INTERNET OF THINGS IMPLEMENTATION FOR WIRELESS MONITORING     OF AGRICULTURAL...INTERNET OF THINGS IMPLEMENTATION FOR WIRELESS MONITORING     OF AGRICULTURAL...
INTERNET OF THINGS IMPLEMENTATION FOR WIRELESS MONITORING OF AGRICULTURAL...
 
Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai
Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai
Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and Development
 
Trends in mobile sensors: how smartphones keep changing our life
Trends in mobile sensors: how smartphones keep changing our lifeTrends in mobile sensors: how smartphones keep changing our life
Trends in mobile sensors: how smartphones keep changing our life
 
Soli sensor
Soli sensorSoli sensor
Soli sensor
 
Android the future
Android  the futureAndroid  the future
Android the future
 
Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)
 
Android Sensor
Android SensorAndroid Sensor
Android Sensor
 
All about android
All about androidAll about android
All about android
 
Embedded Android : System Development - Part III
Embedded Android : System Development - Part IIIEmbedded Android : System Development - Part III
Embedded Android : System Development - Part III
 

Recently uploaded

Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 

Recently uploaded (20)

Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 

Sensors on android

  • 2. cvs@droidcon$ who am i • Android >2yrs. Remember anyone? • - sensors development. 10million+ units sold. • Presently working @ PathPartnerTech.com 10:16 PM Sensors on Android 2
  • 3. Sensors on Android PART1 : Introduction PART4: Sensor Application development. • Sensors on Android Sample android app (code snippets) • Famous sensor apps • Sensors in Android apps PART5: App-dev Tips and tricks • Sensor Hardware intro • Sensor callibration. 1. one-turn deserves another (axes-calib) PART2 : Android Sensor Overview 2. zero-calib • Overview • Sensor fusion (hard-way) • Porting a new sensor onto Android • Invensense (easy-way) • Kernel • Polling rate game/ui/fastest • Sensor "HAL" • When to place Wakelocks • When to register/unregister eventListener PART3 : Porting tips and tricks • No motion ≠ 0accel • Accel axes 3step calibration • Input devices & events (EV_ABS, EV_REL) 10:20 PM Sensors on Android 3
  • 4. “Sense-ors” on Android A sensor (also called detector) is a device that measures a physical quantity and converts it into a signal which can be read by an observer or by an instrument. 1. ACCELEROMETER 2. GYROSCOPE 3. MAGNETIC_FIELD REAL 4. LIGHT 5. PRESSURE 6. AMBIENT_TEMP 7. RELATIVE_HUMIDITY 8. PROXIMITY VIRTUAL 9. LINEAR_ACCELERATION 10. GRAVITY 11. ROTATION_VECTOR DEPRECEATED 12. TEMPERATURE 13. ORIENTATION 10:20 PM Sensors on Android 4
  • 5. “Famous” sensor apps 10:16 PM Sensors on Android 5
  • 6. Sensors in Android applications • Use-cases of sensors in apps: 1. Active-Input 2. Passive-Input Application developer 3. Active-Passive 4. Auto-Rotate Android window manager 10:16 PM Sensors on Android 6
  • 7. Sensors in Android applications (1/4) • Active input 10:16 PM Sensors on Android 7
  • 8. Sensors in Android applications (2/4) • Passive input 10:16 PM Sensors on Android 8
  • 9. Sensors in Android applications (3/4) • Active-passive 10:16 PM Sensors on Android 9
  • 10. Sensors in Android applications (4/4) • Auto-rotate 10:16 PM Sensors on Android 10
  • 11. Sensor Hardware Intro (1/4) • Accelerometer + ZERO drift - Relatively slower response 10:16 PM Sensors on Android 11
  • 12. Sensor Hardware Intro (2/4) • Gyroscope (MEMS) + Extremely quick response - Gradual drift with time 10:16 PM Sensors on Android 12
  • 13. Sensor Hardware Intro (3/4) • Compass (Magnetometer) + Obtain Yaw/Azimuth + Rotation with the device on a flat surface - Picks-up surrounding magnetic noise 10:16 PM Sensors on Android 13
  • 14. Sensor Hardware Intro (4/4) • Light & Proximity 10:16 PM Sensors on Android 14
  • 15. Android Sensors Frameworks Overview Android App • Use SensorManager & SensorEventListener C O Android Framework N D • SensorService & SensorManager T A R T Android sensor “HAL” O A L • Links the Kernel-Drivers to the framework Kernel Drivers • Device drivers to control and gather data from the actual hardware. 10:16 PM Sensors on Android 15
  • 16. Porting a sensor onto Android Q. My board has XYZ sensor. How do I get Android to recognise it?  Kernel  Device-driver  Board File  Userspace  Adding New HAL -OR-  Modifying existing HAL 10:16 PM Sensors on Android 16
  • 17. Porting a sensor onto Android (kernel)  Device-driver  Poll/Interrupt? Hybrid-approach = Workqueues  Early-suspend hook  input_report_abs() / input_report_rel()  Board File  Interrupt, GPIO, SPI/I2C-lines  Axes-remap to device axes platform_data 12:15 AM Sensors on Android 17
  • 18. Porting a sensor onto Android (kernel)  Workqueues 12:09 AM Sensors on Android 18
  • 19. Porting a sensor onto Android (kernel)  Early-Suspend hook  Input Events 12:13 AM Sensors on Android 19
  • 20. Porting a sensor onto Android (userspace)  Sensor-HAL  Adding – Reference Implementation : http://goo.gl/jjF3l – Sensor-HAL implemented in : android/device/<vendor>/<device>/libsensors – Generates library : system/lib/hw/sensors.<TARGET_BOARD_PLATFORM>.so  Modifying – Update sensors.cpp in sSensorList[] – Derive a new sensor object, Include appropriate file – Update i/p dev name in constructor 12:30 AM Sensors on Android 20
  • 21. Sensor Fusion  Advantages – Faster data samples – Less noise in data samples – More Accurate data samples – Advanced Sensor data (Gestures, Glyphs, Shake-count, Step-count)  Disadvantage – Higher power consumption  Implement inside App – Register multiple sensor-listeners. – Correlate-data.  Implement using Custom-Library – android/device/sample/frameworks/PlatformLibrary http://goo.gl/OI8sg 12:30 AM Sensors on Android 21
  • 22. Using Sensors in your app SensorEvent http://goo.gl/hWOQu SensorManager http://goo.gl/1DRUv 12:30 AM Sensors on Android 22
  • 23. App-dev Tips and tricks  Sensor callibration. 1. one-turn deserves another (axes-calib) 2. zero-calib  Sensor fusion  Hard-way  Easy-way (Invensense ) http://goo.gl/bHmDe  Polling rate ui/normal/game/fastest?  When to register/unregister eventListener  When to place Wakelocks 1:08 AM Sensors on Android 23
  • 24. App-dev Tips and tricks register sensorlistener acquire wakelock release wakelock unregister sensorlistener 1:04 AM Sensors on Android 24
  • 25. What Next? • Moving on… – Sensor Framework on Android 4.0 (ICS) – Sensor Drivers on Kernel 3.0 • Sensor-Fusion – App / library – Unified Kernel driver(sensors-class) • Calorie-counter/Diet Advisor “You spent 800calories since breakfast. Have a Greek-salad and a cup of milk…” • Location-fix without GPS (using sensors  wink-wink) http://goo.gl/ipbrL 12:57 AM Sensors on Android 25
  • 26. Thank You!! Questions? android-porting android-developers android-kernel android-platform CONTACT ME http://goo.gl/kKMOr 10:16 PM Sensors on Android 26