SlideShare una empresa de Scribd logo
1 de 23
Droid on wheels
Sangharsh Boudhh
sangharsh@olacabs.com
@sboudhh
Outline
• Why??
• Business need

• Introduction to the In-cab device
• Challenges of enterprise application
• Dive into few features
• Over the air upgrade
• Recovering from loss of GPS

• Backend Engineering
• One Touch booking
Motivation
• Multipurpose system
• Fleet tracking
• Booking lifecycle management
• Navigation support for Drivers

• Affordable
• Easy to install and uninstall
How’s it doing
• Powers thousands of cabs
• Clocks 10K hours run per day
• Covers thousands of customers every day
Here comes, Droid on Wheels
Booking alert
Destination
Building an Enterprise Application
• Lots of remote management
• Tighter control
Our case
•
•
•
•
•

Lots of permissions 
Single app mode
Remote app version upgrade
Robust communication
Failovers and Auto recovery
Deep dive
Over the air upgrade
• Push notification / Check on startup
• Download APK on device memory
• No SD card required
• Size: less than 1 MB

• Start install intent
Download APK
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(downloadURL);
HttpResponse execute = httpClient.execute(httpGet);
InputStream reader = execute.getEntity().getContent();
FileOutputStream writer =
context.openFileOutput(UpdateUtils.DOWNLOAD_FILENAME,
Context.MODE_WORLD_READABLE);
byte[] buffer = new byte[1024 * 8];
int bytesRead = 0;
while ((bytesRead = reader.read(buffer)) != -1)
{
writer.write(buffer, 0, bytesRead);
}
writer.close();
Launch install
Intent myIntent = new Intent(Intent.ACTION_VIEW);
Uri dataUri = Uri.fromFile(new File(downloadedApkPath));
myIntent.setDataAndType(dataUri, "application/vnd.android.packagearchive");
context.startActivity(myIntent);
GPS recovery
• Scenario
• Doesn’t catch GPS after considerable time
• Switches on after long time

• Thanks to developers of GPS Status
• Trigger from server
GPS recovery
private boolean downloadGPSXtra(LocationManager locationManager)
{
Bundle b = new Bundle();
boolean result =
locationManager.sendExtraCommand(LocationManager.GPS_PROVIDER,
"force_xtra_injection", b);
return result &
locationManager.sendExtraCommand(LocationManager.GPS_PROVIDER,
"force_time_injection", b);
}
private boolean clearGPSXtra(LocationManager locationManager)
{
return locationManager.sendExtraCommand(LocationManager.GPS_PROVIDER,
"delete_aiding_data", null);
}
Communication
• Server to App: GCM with SMS failover
• App to server: HTTP with SMS failover
Navigation
• Route plotting
• Compass based rotating map
• Plotting route with Google Directions API
•

Using polyline

• Proximity indicator
• Acoustic indication of proximity
Cashless payments
• Customers and drivers as well
• Powered by Ezetap
Third-party libraries
•
•
•
•
•

Loopj: Asynchronous HTTP client
GCM: Push notifications
Crittercism: Crash reporting
GSON: JSON (de-)serialization
New relic: Performance monitoring
Fleet Tracking
One Touch booking
• Android & iOS App
• REST API
• Geo spatial index
•

MongoDB
Putting it all together
Credits
•
•
•
•
•

Ankit Bhati
Sangharsh Boudhh
Ankit Kumar
Rupam Ghosh
Nitesh Yadav

•
•
•
•

Mohit Kumar
Usha Loutongbam
Pritesh Malde
Plus many more...

Más contenido relacionado

La actualidad más candente

Next Generation Cloud Computing With Google - RightScale Compute 2013
Next Generation Cloud Computing With Google - RightScale Compute 2013Next Generation Cloud Computing With Google - RightScale Compute 2013
Next Generation Cloud Computing With Google - RightScale Compute 2013RightScale
 
Introduction to Google Compute Engine
Introduction to Google Compute EngineIntroduction to Google Compute Engine
Introduction to Google Compute EngineColin Su
 
GCP Gaming 2016 Seoul, Korea Firebase
GCP Gaming 2016 Seoul, Korea FirebaseGCP Gaming 2016 Seoul, Korea Firebase
GCP Gaming 2016 Seoul, Korea FirebaseChris Jang
 
node.js on Google Compute Engine
node.js on Google Compute Enginenode.js on Google Compute Engine
node.js on Google Compute EngineArun Nagarajan
 
JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試Simon Su
 
Google App Engine (GAE) 演進史
Google App Engine (GAE) 演進史Google App Engine (GAE) 演進史
Google App Engine (GAE) 演進史Simon Su
 
Hands on Compute Engine
Hands on Compute EngineHands on Compute Engine
Hands on Compute EngineSimon Su
 
1Spatial: Cardiff FME World Tour: A database for every occasion
1Spatial: Cardiff FME World Tour: A database for every occasion1Spatial: Cardiff FME World Tour: A database for every occasion
1Spatial: Cardiff FME World Tour: A database for every occasion1Spatial
 
Google Compute Engine Starter Guide
Google Compute Engine Starter GuideGoogle Compute Engine Starter Guide
Google Compute Engine Starter GuideSimon Su
 
Using Google App Engine Python
Using Google App Engine PythonUsing Google App Engine Python
Using Google App Engine PythonAkshay Mathur
 
使用 Raspberry pi + fluentd + gcp cloud logging, big query 做iot 資料搜集與分析
使用 Raspberry pi + fluentd + gcp cloud logging, big query 做iot 資料搜集與分析使用 Raspberry pi + fluentd + gcp cloud logging, big query 做iot 資料搜集與分析
使用 Raspberry pi + fluentd + gcp cloud logging, big query 做iot 資料搜集與分析Simon Su
 
Google Cloud Dataflow meets TensorFlow
Google Cloud Dataflow meets TensorFlowGoogle Cloud Dataflow meets TensorFlow
Google Cloud Dataflow meets TensorFlowHayato Yoshikawa
 
Autoscaling containers with event driven workloads
Autoscaling containers with event driven workloadsAutoscaling containers with event driven workloads
Autoscaling containers with event driven workloadsNilesh Gule
 
Cncf event driven autoscaling with keda
Cncf   event driven autoscaling with kedaCncf   event driven autoscaling with keda
Cncf event driven autoscaling with kedaJurajHantk
 
Google Kubernetes Engine Deep Dive Meetup
Google Kubernetes Engine Deep Dive MeetupGoogle Kubernetes Engine Deep Dive Meetup
Google Kubernetes Engine Deep Dive MeetupIftach Schonbaum
 
Spinnaker on Kubernetes
Spinnaker on KubernetesSpinnaker on Kubernetes
Spinnaker on KubernetesJinwoong Kim
 
Using Google Compute Engine
Using Google Compute EngineUsing Google Compute Engine
Using Google Compute EngineLynn Langit
 

La actualidad más candente (19)

Next Generation Cloud Computing With Google - RightScale Compute 2013
Next Generation Cloud Computing With Google - RightScale Compute 2013Next Generation Cloud Computing With Google - RightScale Compute 2013
Next Generation Cloud Computing With Google - RightScale Compute 2013
 
Having fun with Location
Having fun with LocationHaving fun with Location
Having fun with Location
 
Introduction to Google Compute Engine
Introduction to Google Compute EngineIntroduction to Google Compute Engine
Introduction to Google Compute Engine
 
GCP Gaming 2016 Seoul, Korea Firebase
GCP Gaming 2016 Seoul, Korea FirebaseGCP Gaming 2016 Seoul, Korea Firebase
GCP Gaming 2016 Seoul, Korea Firebase
 
node.js on Google Compute Engine
node.js on Google Compute Enginenode.js on Google Compute Engine
node.js on Google Compute Engine
 
JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試
 
KEDA Overview
KEDA OverviewKEDA Overview
KEDA Overview
 
Google App Engine (GAE) 演進史
Google App Engine (GAE) 演進史Google App Engine (GAE) 演進史
Google App Engine (GAE) 演進史
 
Hands on Compute Engine
Hands on Compute EngineHands on Compute Engine
Hands on Compute Engine
 
1Spatial: Cardiff FME World Tour: A database for every occasion
1Spatial: Cardiff FME World Tour: A database for every occasion1Spatial: Cardiff FME World Tour: A database for every occasion
1Spatial: Cardiff FME World Tour: A database for every occasion
 
Google Compute Engine Starter Guide
Google Compute Engine Starter GuideGoogle Compute Engine Starter Guide
Google Compute Engine Starter Guide
 
Using Google App Engine Python
Using Google App Engine PythonUsing Google App Engine Python
Using Google App Engine Python
 
使用 Raspberry pi + fluentd + gcp cloud logging, big query 做iot 資料搜集與分析
使用 Raspberry pi + fluentd + gcp cloud logging, big query 做iot 資料搜集與分析使用 Raspberry pi + fluentd + gcp cloud logging, big query 做iot 資料搜集與分析
使用 Raspberry pi + fluentd + gcp cloud logging, big query 做iot 資料搜集與分析
 
Google Cloud Dataflow meets TensorFlow
Google Cloud Dataflow meets TensorFlowGoogle Cloud Dataflow meets TensorFlow
Google Cloud Dataflow meets TensorFlow
 
Autoscaling containers with event driven workloads
Autoscaling containers with event driven workloadsAutoscaling containers with event driven workloads
Autoscaling containers with event driven workloads
 
Cncf event driven autoscaling with keda
Cncf   event driven autoscaling with kedaCncf   event driven autoscaling with keda
Cncf event driven autoscaling with keda
 
Google Kubernetes Engine Deep Dive Meetup
Google Kubernetes Engine Deep Dive MeetupGoogle Kubernetes Engine Deep Dive Meetup
Google Kubernetes Engine Deep Dive Meetup
 
Spinnaker on Kubernetes
Spinnaker on KubernetesSpinnaker on Kubernetes
Spinnaker on Kubernetes
 
Using Google Compute Engine
Using Google Compute EngineUsing Google Compute Engine
Using Google Compute Engine
 

Destacado

No internet!! Let your apps still work
No internet!! Let your apps still workNo internet!! Let your apps still work
No internet!! Let your apps still workSangharsh Boudhh
 
How to Manually Submit Your Site
How to Manually Submit Your Site How to Manually Submit Your Site
How to Manually Submit Your Site Manoj Sharma
 
Gamification in HR - Tcab case study - Manu Melwin Joy
Gamification in HR - Tcab case study - Manu Melwin JoyGamification in HR - Tcab case study - Manu Melwin Joy
Gamification in HR - Tcab case study - Manu Melwin Joymanumelwin
 
Vehicle tracking system using gps and gsm techniques
Vehicle tracking system using gps and gsm techniquesVehicle tracking system using gps and gsm techniques
Vehicle tracking system using gps and gsm techniquesBharath Chapala
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017Drift
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheLeslie Samuel
 

Destacado (7)

Droid onwheels v2
Droid onwheels v2Droid onwheels v2
Droid onwheels v2
 
No internet!! Let your apps still work
No internet!! Let your apps still workNo internet!! Let your apps still work
No internet!! Let your apps still work
 
How to Manually Submit Your Site
How to Manually Submit Your Site How to Manually Submit Your Site
How to Manually Submit Your Site
 
Gamification in HR - Tcab case study - Manu Melwin Joy
Gamification in HR - Tcab case study - Manu Melwin JoyGamification in HR - Tcab case study - Manu Melwin Joy
Gamification in HR - Tcab case study - Manu Melwin Joy
 
Vehicle tracking system using gps and gsm techniques
Vehicle tracking system using gps and gsm techniquesVehicle tracking system using gps and gsm techniques
Vehicle tracking system using gps and gsm techniques
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 

Similar a Droid On Wheels

Deep Dive into the ArcGIS Geotrigger Service - Esri DevSummit Dubai 2013
Deep Dive into the ArcGIS Geotrigger Service - Esri DevSummit Dubai 2013Deep Dive into the ArcGIS Geotrigger Service - Esri DevSummit Dubai 2013
Deep Dive into the ArcGIS Geotrigger Service - Esri DevSummit Dubai 2013Aaron Parecki
 
Backend, app e internet das coisas com NodeJS no Google Cloud Platform
Backend, app e internet das coisas com NodeJS no Google Cloud PlatformBackend, app e internet das coisas com NodeJS no Google Cloud Platform
Backend, app e internet das coisas com NodeJS no Google Cloud PlatformAlvaro Viebrantz
 
Backend, app e internet das coisas com NodeJS no Google Cloud Platform
Backend, app e internet das coisas com NodeJS no Google Cloud PlatformBackend, app e internet das coisas com NodeJS no Google Cloud Platform
Backend, app e internet das coisas com NodeJS no Google Cloud PlatformDevMT
 
How to use geolocation in react native apps
How to use geolocation in react native appsHow to use geolocation in react native apps
How to use geolocation in react native appsInnovationM
 
What’s new in aNdroid [Google I/O Extended Bangkok 2016]
What’s new in aNdroid [Google I/O Extended Bangkok 2016]What’s new in aNdroid [Google I/O Extended Bangkok 2016]
What’s new in aNdroid [Google I/O Extended Bangkok 2016]Sittiphol Phanvilai
 
Developing Windows Phone Apps with Maps and Location Services
Developing Windows Phone Apps with Maps and Location ServicesDeveloping Windows Phone Apps with Maps and Location Services
Developing Windows Phone Apps with Maps and Location ServicesNick Landry
 
What's new in NGINX Plus R19
What's new in NGINX Plus R19What's new in NGINX Plus R19
What's new in NGINX Plus R19NGINX, Inc.
 
Mobile App Development With IBM Cloudant
Mobile App Development With IBM CloudantMobile App Development With IBM Cloudant
Mobile App Development With IBM CloudantIBM Cloud Data Services
 
Naive application development
Naive application developmentNaive application development
Naive application developmentShaka Huang
 
Google Cloud - Scale With A Smile (Dec 2014)
Google Cloud - Scale With A Smile (Dec 2014)Google Cloud - Scale With A Smile (Dec 2014)
Google Cloud - Scale With A Smile (Dec 2014)Ido Green
 
Google Cloud Platform 2014Q1 - Starter Guide
Google Cloud Platform   2014Q1 - Starter GuideGoogle Cloud Platform   2014Q1 - Starter Guide
Google Cloud Platform 2014Q1 - Starter GuideSimon Su
 
Firebase Cloud Functions V2
Firebase Cloud Functions V2Firebase Cloud Functions V2
Firebase Cloud Functions V2Aviv Laufer
 
Deploy 22 microservices from scratch in 30 mins with GitOps
Deploy 22 microservices from scratch in 30 mins with GitOpsDeploy 22 microservices from scratch in 30 mins with GitOps
Deploy 22 microservices from scratch in 30 mins with GitOpsOpsta
 
Modern Scheduling for Modern Applications with Nomad
Modern Scheduling for Modern Applications with NomadModern Scheduling for Modern Applications with Nomad
Modern Scheduling for Modern Applications with NomadMitchell Pronschinske
 
Advantages and limitations of PhoneGap for sensor processing
Advantages and limitations of PhoneGap for sensor processingAdvantages and limitations of PhoneGap for sensor processing
Advantages and limitations of PhoneGap for sensor processingGabor Paller
 
Automating security in aws with divvy cloud
Automating security in aws with divvy cloudAutomating security in aws with divvy cloud
Automating security in aws with divvy cloudJohn Varghese
 

Similar a Droid On Wheels (20)

Deep Dive into the ArcGIS Geotrigger Service - Esri DevSummit Dubai 2013
Deep Dive into the ArcGIS Geotrigger Service - Esri DevSummit Dubai 2013Deep Dive into the ArcGIS Geotrigger Service - Esri DevSummit Dubai 2013
Deep Dive into the ArcGIS Geotrigger Service - Esri DevSummit Dubai 2013
 
Backend, app e internet das coisas com NodeJS no Google Cloud Platform
Backend, app e internet das coisas com NodeJS no Google Cloud PlatformBackend, app e internet das coisas com NodeJS no Google Cloud Platform
Backend, app e internet das coisas com NodeJS no Google Cloud Platform
 
Backend, app e internet das coisas com NodeJS no Google Cloud Platform
Backend, app e internet das coisas com NodeJS no Google Cloud PlatformBackend, app e internet das coisas com NodeJS no Google Cloud Platform
Backend, app e internet das coisas com NodeJS no Google Cloud Platform
 
How to use geolocation in react native apps
How to use geolocation in react native appsHow to use geolocation in react native apps
How to use geolocation in react native apps
 
What’s new in aNdroid [Google I/O Extended Bangkok 2016]
What’s new in aNdroid [Google I/O Extended Bangkok 2016]What’s new in aNdroid [Google I/O Extended Bangkok 2016]
What’s new in aNdroid [Google I/O Extended Bangkok 2016]
 
Advanced android app development
Advanced android app developmentAdvanced android app development
Advanced android app development
 
Developing Windows Phone Apps with Maps and Location Services
Developing Windows Phone Apps with Maps and Location ServicesDeveloping Windows Phone Apps with Maps and Location Services
Developing Windows Phone Apps with Maps and Location Services
 
What's new in NGINX Plus R19
What's new in NGINX Plus R19What's new in NGINX Plus R19
What's new in NGINX Plus R19
 
Mobile App Development With IBM Cloudant
Mobile App Development With IBM CloudantMobile App Development With IBM Cloudant
Mobile App Development With IBM Cloudant
 
Naive application development
Naive application developmentNaive application development
Naive application development
 
Google Cloud - Scale With A Smile (Dec 2014)
Google Cloud - Scale With A Smile (Dec 2014)Google Cloud - Scale With A Smile (Dec 2014)
Google Cloud - Scale With A Smile (Dec 2014)
 
Google Cloud Platform 2014Q1 - Starter Guide
Google Cloud Platform   2014Q1 - Starter GuideGoogle Cloud Platform   2014Q1 - Starter Guide
Google Cloud Platform 2014Q1 - Starter Guide
 
Firebase Cloud Functions V2
Firebase Cloud Functions V2Firebase Cloud Functions V2
Firebase Cloud Functions V2
 
Deploy 22 microservices from scratch in 30 mins with GitOps
Deploy 22 microservices from scratch in 30 mins with GitOpsDeploy 22 microservices from scratch in 30 mins with GitOps
Deploy 22 microservices from scratch in 30 mins with GitOps
 
Droidcon Paris 2015
Droidcon Paris 2015Droidcon Paris 2015
Droidcon Paris 2015
 
Iac d.damyanov 4.pptx
Iac d.damyanov 4.pptxIac d.damyanov 4.pptx
Iac d.damyanov 4.pptx
 
Modern Scheduling for Modern Applications with Nomad
Modern Scheduling for Modern Applications with NomadModern Scheduling for Modern Applications with Nomad
Modern Scheduling for Modern Applications with Nomad
 
Geo django
Geo djangoGeo django
Geo django
 
Advantages and limitations of PhoneGap for sensor processing
Advantages and limitations of PhoneGap for sensor processingAdvantages and limitations of PhoneGap for sensor processing
Advantages and limitations of PhoneGap for sensor processing
 
Automating security in aws with divvy cloud
Automating security in aws with divvy cloudAutomating security in aws with divvy cloud
Automating security in aws with divvy cloud
 

Último

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

Droid On Wheels

  • 1. Droid on wheels Sangharsh Boudhh sangharsh@olacabs.com @sboudhh
  • 2. Outline • Why?? • Business need • Introduction to the In-cab device • Challenges of enterprise application • Dive into few features • Over the air upgrade • Recovering from loss of GPS • Backend Engineering • One Touch booking
  • 3. Motivation • Multipurpose system • Fleet tracking • Booking lifecycle management • Navigation support for Drivers • Affordable • Easy to install and uninstall
  • 4. How’s it doing • Powers thousands of cabs • Clocks 10K hours run per day • Covers thousands of customers every day
  • 5. Here comes, Droid on Wheels
  • 8. Building an Enterprise Application • Lots of remote management • Tighter control
  • 9. Our case • • • • • Lots of permissions  Single app mode Remote app version upgrade Robust communication Failovers and Auto recovery
  • 11. Over the air upgrade • Push notification / Check on startup • Download APK on device memory • No SD card required • Size: less than 1 MB • Start install intent
  • 12. Download APK DefaultHttpClient httpClient = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(downloadURL); HttpResponse execute = httpClient.execute(httpGet); InputStream reader = execute.getEntity().getContent(); FileOutputStream writer = context.openFileOutput(UpdateUtils.DOWNLOAD_FILENAME, Context.MODE_WORLD_READABLE); byte[] buffer = new byte[1024 * 8]; int bytesRead = 0; while ((bytesRead = reader.read(buffer)) != -1) { writer.write(buffer, 0, bytesRead); } writer.close();
  • 13. Launch install Intent myIntent = new Intent(Intent.ACTION_VIEW); Uri dataUri = Uri.fromFile(new File(downloadedApkPath)); myIntent.setDataAndType(dataUri, "application/vnd.android.packagearchive"); context.startActivity(myIntent);
  • 14. GPS recovery • Scenario • Doesn’t catch GPS after considerable time • Switches on after long time • Thanks to developers of GPS Status • Trigger from server
  • 15. GPS recovery private boolean downloadGPSXtra(LocationManager locationManager) { Bundle b = new Bundle(); boolean result = locationManager.sendExtraCommand(LocationManager.GPS_PROVIDER, "force_xtra_injection", b); return result & locationManager.sendExtraCommand(LocationManager.GPS_PROVIDER, "force_time_injection", b); } private boolean clearGPSXtra(LocationManager locationManager) { return locationManager.sendExtraCommand(LocationManager.GPS_PROVIDER, "delete_aiding_data", null); }
  • 16. Communication • Server to App: GCM with SMS failover • App to server: HTTP with SMS failover
  • 17. Navigation • Route plotting • Compass based rotating map • Plotting route with Google Directions API • Using polyline • Proximity indicator • Acoustic indication of proximity
  • 18. Cashless payments • Customers and drivers as well • Powered by Ezetap
  • 19. Third-party libraries • • • • • Loopj: Asynchronous HTTP client GCM: Push notifications Crittercism: Crash reporting GSON: JSON (de-)serialization New relic: Performance monitoring
  • 21. One Touch booking • Android & iOS App • REST API • Geo spatial index • MongoDB
  • 22. Putting it all together
  • 23. Credits • • • • • Ankit Bhati Sangharsh Boudhh Ankit Kumar Rupam Ghosh Nitesh Yadav • • • • Mohit Kumar Usha Loutongbam Pritesh Malde Plus many more...

Notas del editor

  1. <more content>
  2. Add more content