SlideShare a Scribd company logo
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

Flutter talkshow
Flutter talkshowFlutter talkshow
Flutter talkshow
Nhan Cao
 
IOS vs Android presentation by Saikrishna
IOS vs Android presentation by SaikrishnaIOS vs Android presentation by Saikrishna
IOS vs Android presentation by Saikrishna
Saikrishna Tanguturu
 
Android Operating System (Androrid OS)
Android Operating System (Androrid OS)Android Operating System (Androrid OS)
Android Operating System (Androrid OS)
Siddharth Belbase
 
Flutter: Future of App Development
Flutter: Future of App DevelopmentFlutter: Future of App Development
Flutter: Future of App Development
9 series
 
Presentation on Android application
Presentation on Android applicationPresentation on Android application
Presentation on Android applicationAtibur Rahman
 
Top 11 Mobile App Development Frameworks
Top 11 Mobile App Development FrameworksTop 11 Mobile App Development Frameworks
Top 11 Mobile App Development Frameworks
Albiorix Technology
 
Mobile Applicaiton Development Unit 3.pdf
Mobile Applicaiton Development Unit 3.pdfMobile Applicaiton Development Unit 3.pdf
Mobile Applicaiton Development Unit 3.pdf
nihitagrawal4
 
Mobile Operating Systems
Mobile Operating SystemsMobile Operating Systems
Mobile Operating Systems
Andreas Jakl
 
Android summer training report
Android summer training reportAndroid summer training report
Android summer training report
Shashendra Singh
 
Mobile programming pendahuluan
Mobile programming pendahuluanMobile programming pendahuluan
Mobile programming pendahuluan
Tenia Wahyuningrum
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
Benny Skogberg
 
Android vs iOS
Android vs iOSAndroid vs iOS
Android vs iOS
Abhishek Zala
 
Build beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutterBuild beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutter
RobertLe30
 
Flutter frame work
Flutter frame workFlutter frame work
Flutter frame work
samash
 
Mobile Application Development: Hybrid, Native and Mobile Web Apps
Mobile Application Development: Hybrid, Native and Mobile Web AppsMobile Application Development: Hybrid, Native and Mobile Web Apps
Mobile Application Development: Hybrid, Native and Mobile Web Apps
Paul Sons
 
TO DO list APP Called Do It
TO DO list APP Called Do ItTO DO list APP Called Do It
TO DO list APP Called Do It
محمود فرغلي
 
Flutter workshop
Flutter workshopFlutter workshop
Flutter workshop
Vishnu Suresh
 
TYBSC IT SEM 6 PROJECT MANAGEMENT NOTES
TYBSC IT SEM 6 PROJECT MANAGEMENT NOTESTYBSC IT SEM 6 PROJECT MANAGEMENT NOTES
TYBSC IT SEM 6 PROJECT MANAGEMENT NOTES
WE-IT TUTORIALS
 

What's hot (20)

Flutter talkshow
Flutter talkshowFlutter talkshow
Flutter talkshow
 
IOS vs Android presentation by Saikrishna
IOS vs Android presentation by SaikrishnaIOS vs Android presentation by Saikrishna
IOS vs Android presentation by Saikrishna
 
Android Operating System (Androrid OS)
Android Operating System (Androrid OS)Android Operating System (Androrid OS)
Android Operating System (Androrid OS)
 
Flutter: Future of App Development
Flutter: Future of App DevelopmentFlutter: Future of App Development
Flutter: Future of App Development
 
Presentation on Android application
Presentation on Android applicationPresentation on Android application
Presentation on Android application
 
Top 11 Mobile App Development Frameworks
Top 11 Mobile App Development FrameworksTop 11 Mobile App Development Frameworks
Top 11 Mobile App Development Frameworks
 
Mobile Applicaiton Development Unit 3.pdf
Mobile Applicaiton Development Unit 3.pdfMobile Applicaiton Development Unit 3.pdf
Mobile Applicaiton Development Unit 3.pdf
 
Mobile Operating Systems
Mobile Operating SystemsMobile Operating Systems
Mobile Operating Systems
 
Android summer training report
Android summer training reportAndroid summer training report
Android summer training report
 
Mobile programming pendahuluan
Mobile programming pendahuluanMobile programming pendahuluan
Mobile programming pendahuluan
 
Android Training
Android TrainingAndroid Training
Android Training
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
 
Android vs iOS
Android vs iOSAndroid vs iOS
Android vs iOS
 
Build beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutterBuild beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutter
 
Flutter frame work
Flutter frame workFlutter frame work
Flutter frame work
 
Mobile Application Development: Hybrid, Native and Mobile Web Apps
Mobile Application Development: Hybrid, Native and Mobile Web AppsMobile Application Development: Hybrid, Native and Mobile Web Apps
Mobile Application Development: Hybrid, Native and Mobile Web Apps
 
Android Operating System
Android Operating SystemAndroid Operating System
Android Operating System
 
TO DO list APP Called Do It
TO DO list APP Called Do ItTO DO list APP Called Do It
TO DO list APP Called Do It
 
Flutter workshop
Flutter workshopFlutter workshop
Flutter workshop
 
TYBSC IT SEM 6 PROJECT MANAGEMENT NOTES
TYBSC IT SEM 6 PROJECT MANAGEMENT NOTESTYBSC IT SEM 6 PROJECT MANAGEMENT NOTES
TYBSC IT SEM 6 PROJECT MANAGEMENT NOTES
 

Similar to Sensors on android

Sensors and location based services
Sensors and location based servicesSensors and location based services
Sensors and location based services
Chinmay 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 Phones
Cybera Inc.
 
Android 1.8 sensor
Android 1.8 sensorAndroid 1.8 sensor
Android 1.8 sensor
Ahsanul Karim
 
Sensors in Android (old)
Sensors in Android (old)Sensors in Android (old)
Sensors in Android (old)Ahsanul Karim
 
Semantics and Sensors
Semantics and SensorsSemantics and Sensors
Semantics and Sensors
Joshua Shinavier
 
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 2
Ahsanul Karim
 
Final presentation today
Final presentation todayFinal presentation today
Final presentation today
nusratlima
 
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 Development
IJERD 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 life
SnapbackLabs
 
Soli sensor
Soli sensorSoli sensor
Soli sensor
Pratik Hiremath
 
Android the future
Android  the futureAndroid  the future
Android the future
Sanjeev Kumar Jaiswal
 
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)
Emertxe Information Technologies Pvt Ltd
 
Android Sensor
Android SensorAndroid Sensor
Android Sensor
nationalmobileapps
 
All about android
All about androidAll about android
All about android
Inimitable Harish
 
Embedded Android : System Development - Part III
Embedded Android : System Development - Part IIIEmbedded Android : System Development - Part III
Embedded Android : System Development - Part III
Emertxe Information Technologies Pvt Ltd
 

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

State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 

Recently uploaded (20)

State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 

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