SlideShare una empresa de Scribd logo
1 de 33
Bay Area
Android Meetup
How to Achieve
Mobile App
Performance and
Monitoring to
Ensure Great
User
Experiences
6:30pm: Food & Drinks
7:00pm: Performance
Monitoring – Alex Gaber
7:40pm: Test Automation and
CI – Melvin Laguren
Bay Area Android Meetup
How to Achieve Mobile App
Performance and Monitoring to
Ensure Great User Experiences
Crittercism 3-25-2014
Agenda
• Why Does Android Performance Matter?
• Snappy UI for UX Performance
• UI Thread vs. Worker Thread
• Android OS Install Base Fragmentation
• Mashed Up Mobile Apps – 3rd Party APIs
• Mobile Ad SDK performance
• Security SDKs performance
• MBaaS performance
• Testing vs. Monitoring for Performance
• Implementing Android App Monitoring
How Users React to Poor App Performance
Source: Crittercism end-user survey Q4’2013
26%
9%
10%
21%
26%
65%
0% 10% 20% 30% 40% 50% 60% 70%
Did not do anything
Shared the experience via social media
Left a negative review on the app store
Contacted support or told the vendor
Told a friend in person
Uninstalled the app
What Do Users Do When the App is Slow?
Personal Experience – Uninstalled Android Apps
Lots of apps in the
Google Play
Store……..
..….. and lots of
uninstalls, 1 stars,
bugs?
HELP !!!
Agenda
• Why Does Android Performance Matter?
• Snappy UI for UX Performance
• UI Thread vs. Worker Thread
• Android OS Install Base Fragmentation
• Mashed Up Mobile Apps – 3rd Party APIs
• Mobile Ad SDK performance
• Security SDKs performance
• MBaaS performance
• Testing vs. Monitoring for Performance
• Implementing Android App Monitoring
Snappy UI Equals Great UX
Linear Layout
• Similar to nested tables in HTML
• Great for quick and simple UI designs
• Performance degrades as complexity increases
Linear Layout
Snappy UI Equals Great UX
Relative Layout
• Eliminates Nested view groups
• Keeps layout hierarchy flat
• Much better performance for complex layouts
Relative Layout Example – activity_main.xml
Relative Layout
“button2” is
below
“button1”
Agenda
• Why Does Android Performance Matter?
• Snappy UI for UX Performance
• UI Thread vs. Worker Thread
• Android OS Install Base Fragmentation
• Mashed Up Mobile Apps – 3rd Party APIs
• Mobile Ad SDK performance
• Security SDKs performance
• MBaaS performance
• Testing vs. Monitoring for Performance
• Implementing Android App Monitoring
ANR – Application Not Responding
What causes an
“Application Not
Responding”
(ANR) error?
• No response to an input event (such as key
press or screen touch events) within 5
seconds (5,000 ms)
• A BroadcastReceiver hasn't finished
executing within 10 seconds (10,000 ms)
Main Threads vs Worker Threads
Main Thread (UI Thread)
• Main Thread is also called the “UI Thread”
• All Android activities operate in the Main
Thread by default
• You can easily overload the Main Thread
– Doing network operations on Main Thread
– Slow disk operations (un-optimized SQL)
Main Thread (UI Thread)
TIPS
• Worker Threads are “background threads”
• Handle all network calls w/ Worker Threads
• Decouple the UI Thread from potential blockers
Sample Worker Thread
Main Thread (UI Thread)
Set Thread Priority: Example
Agenda
• Why Does Android Performance Matter?
• Snappy UI for UX Performance
• UI Thread vs. Worker Thread
• Android OS Install Base Fragmentation
• Mashed Up Mobile Apps – 3rd Party APIs
• Mobile Ad SDK performance
• Security SDKs performance
• MBaaS performance
• Testing vs. Monitoring for Performance
• Implementing Android App Monitoring
Android OS Install Base Fragmentation
Over 20% of Android
devices are still running
an OS version below 4.0
Data collected during a 7-day period
ending on March 3, 2014
(developer.android.com)
Agenda
• Why Does Android Performance Matter?
• Snappy UI for UX Performance
• UI Thread vs. Worker Thread
• Android OS Install Base Fragmentation
• Mashed Up Mobile Apps – 3rd Party APIs
• Mobile Ad SDK performance
• Security SDKs performance
• MBaaS performance
• Testing vs. Monitoring for Performance
• Implementing Android App Monitoring
Average Mobile App Consumes Five 3rd Party APIs
• The average mobile app is using between
5-6 APIs / web services
• API Monitoring from web server to web
server does not tell the full story
Average Mobile App Consumes Five 3rd Party APIs
Agenda
• Why Does Android Performance Matter?
• Snappy UI for UX Performance
• UI Thread vs. Worker Thread
• Android OS Install Base Fragmentation
• Mashed Up Mobile Apps – 3rd Party APIs
• Mobile Ad SDK performance
• Security SDKs performance
• MBaaS performance
• Testing vs. Monitoring for Performance
• Implementing Android App Monitoring
3rd Party SDK Overhead and Performance Latency
• Mobile Ads SDKs
Agenda
• Why Does Android Performance Matter?
• Snappy UI for UX Performance
• UI Thread vs. Worker Thread
• Android OS Install Base Fragmentation
• Mashed Up Mobile Apps – 3rd Party APIs
• Mobile Ad SDK performance
• Security SDKs performance
• MBaaS performance
• Testing vs. Monitoring for Performance
• Implementing Android App Monitoring
3rd Party SDK Overhead and Performance Latency
• Security SDKs
3rd Party SDK Overhead and Performance Latency
What is that SDK adding to your app?
• What is the performance overhead for this service?
• What if they start to lag or get slow?
• How can I monitor that this SDK isn’t making my app have
performance issues?
Agenda
• Why Does Android Performance Matter?
• Snappy UI for UX Performance
• UI Thread vs. Worker Thread
• Android OS Install Base Fragmentation
• Mashed Up Mobile Apps – 3rd Party APIs
• Mobile Ad SDK performance
• Security SDKs performance
• MBaaS performance
• Testing vs. Monitoring for Performance
• Implementing Android App Monitoring
MBaaS Powering your Android App
Agenda
• Why Does Android Performance Matter?
• Snappy UI for UX Performance
• UI Thread vs. Worker Thread
• Android OS Install Base Fragmentation
• Mashed Up Mobile Apps – 3rd Party APIs
• Mobile Ad SDK performance
• Security SDKs performance
• MBaaS performance
• Testing vs. Monitoring for Performance
• Implementing Android App Monitoring
Testing Does Not Ensure Performance: Trust But Verify
• Agile Mobile App Development methodology
– Leaves little time for testing
Testing Does Not Ensure Performance: Trust But Verify
• Agile Mobile App Development methodology
– Leaves little time for testing
Agenda
• Why Does Android Performance Matter?
• Snappy UI for UX Performance
• UI Thread vs. Worker Thread
• Android OS Install Base Fragmentation
• Mashed Up Mobile Apps – 3rd Party APIs
• Mobile Ad SDK performance
• Security SDKs performance
• MBaaS performance
• Testing vs. Monitoring for Performance
• Implementing Android App Monitoring
Implementing Performance Monitoring for Android
Failure of shopping cart check-outs, referrals,
etc.
Transaction Errors
HTTP Errors like 404’s, Errors accessing
Cloud Services
API & Network Errors
Slow performance, High latenciesUnresponsive Apps
Downtime due to app crashes
Apps Crashes &
Exceptions
Performance issues due to geographyLocation
What cannot be tested prior to launch?
Implementing Performance Monitoring for Android
DEMO
Testing Does Not Ensure Performance: Trust But Verify
Thank You!
www.crittercism.com
@crittercism

Más contenido relacionado

La actualidad más candente

Practical Tips for Ops: End User Monitoring
Practical Tips for Ops: End User MonitoringPractical Tips for Ops: End User Monitoring
Practical Tips for Ops: End User Monitoring
Dynatrace
 
Continuous delivery mobile application development
Continuous delivery mobile application developmentContinuous delivery mobile application development
Continuous delivery mobile application development
Thoughtworks
 
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code Deploys
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code DeploysOur DevOps Journey: 6 Month Waterfalls to 1 Hour Code Deploys
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code Deploys
Dynatrace
 
Webinar learn how to test any mobile app style from within eclipse using real...
Webinar learn how to test any mobile app style from within eclipse using real...Webinar learn how to test any mobile app style from within eclipse using real...
Webinar learn how to test any mobile app style from within eclipse using real...
Perfecto Mobile
 
App & API Monitoring: Building a 5-Star Reputation for your Apps
App & API Monitoring: Building a 5-Star Reputation for your AppsApp & API Monitoring: Building a 5-Star Reputation for your Apps
App & API Monitoring: Building a 5-Star Reputation for your Apps
Apigee | Google Cloud
 

La actualidad más candente (20)

Can We Deliver Mobile Apps Continuously?
Can We Deliver Mobile Apps Continuously?Can We Deliver Mobile Apps Continuously?
Can We Deliver Mobile Apps Continuously?
 
Starting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for OpsStarting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for Ops
 
Continuous Performance Testing and Monitoring in Agile Development
Continuous Performance Testing and Monitoring in Agile DevelopmentContinuous Performance Testing and Monitoring in Agile Development
Continuous Performance Testing and Monitoring in Agile Development
 
CMG imPACt2016 - Mobile performance testing - Vendor training - Federico Tole...
CMG imPACt2016 - Mobile performance testing - Vendor training - Federico Tole...CMG imPACt2016 - Mobile performance testing - Vendor training - Federico Tole...
CMG imPACt2016 - Mobile performance testing - Vendor training - Federico Tole...
 
Web API Fragility: How Robust Is Your Mobile Application?
Web API Fragility: How Robust Is Your Mobile Application?Web API Fragility: How Robust Is Your Mobile Application?
Web API Fragility: How Robust Is Your Mobile Application?
 
Practical Tips for Ops: End User Monitoring
Practical Tips for Ops: End User MonitoringPractical Tips for Ops: End User Monitoring
Practical Tips for Ops: End User Monitoring
 
BDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User StoriesBDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User Stories
 
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
 
Get More out of Appium
Get More out of AppiumGet More out of Appium
Get More out of Appium
 
How Digital Changed the Game... and how to cross platform test for it
How Digital Changed the Game... and how to cross platform test for itHow Digital Changed the Game... and how to cross platform test for it
How Digital Changed the Game... and how to cross platform test for it
 
Consigue una App 5 estrellas
Consigue una App 5 estrellasConsigue una App 5 estrellas
Consigue una App 5 estrellas
 
Continuous delivery mobile application development
Continuous delivery mobile application developmentContinuous delivery mobile application development
Continuous delivery mobile application development
 
Building Agility for Automated Mobile Apps Testing
Building Agility for Automated Mobile Apps TestingBuilding Agility for Automated Mobile Apps Testing
Building Agility for Automated Mobile Apps Testing
 
Accelerate User Driven Innovation [Webinar]
Accelerate User Driven Innovation [Webinar]Accelerate User Driven Innovation [Webinar]
Accelerate User Driven Innovation [Webinar]
 
End User Monitoring with AppDynamics - AppSphere16
End User Monitoring with AppDynamics - AppSphere16End User Monitoring with AppDynamics - AppSphere16
End User Monitoring with AppDynamics - AppSphere16
 
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code Deploys
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code DeploysOur DevOps Journey: 6 Month Waterfalls to 1 Hour Code Deploys
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code Deploys
 
Live Panel: Appium Core Committers Answer Your Questions
Live Panel: Appium Core Committers Answer Your Questions		Live Panel: Appium Core Committers Answer Your Questions
Live Panel: Appium Core Committers Answer Your Questions
 
Webinar learn how to test any mobile app style from within eclipse using real...
Webinar learn how to test any mobile app style from within eclipse using real...Webinar learn how to test any mobile app style from within eclipse using real...
Webinar learn how to test any mobile app style from within eclipse using real...
 
One Test To Rule Them All - Conquer Android and iOS With One Script
One Test To Rule Them All - Conquer Android and iOS With One ScriptOne Test To Rule Them All - Conquer Android and iOS With One Script
One Test To Rule Them All - Conquer Android and iOS With One Script
 
App & API Monitoring: Building a 5-Star Reputation for your Apps
App & API Monitoring: Building a 5-Star Reputation for your AppsApp & API Monitoring: Building a 5-Star Reputation for your Apps
App & API Monitoring: Building a 5-Star Reputation for your Apps
 

Destacado

Performance Testing on Android
Performance Testing on AndroidPerformance Testing on Android
Performance Testing on Android
Akshay Dashrath
 
Unit testing in android
Unit testing in androidUnit testing in android
Unit testing in android
Li-Wei Cheng
 
Presentation for Cooking App
Presentation for Cooking AppPresentation for Cooking App
Presentation for Cooking App
Tommy Roberts
 

Destacado (14)

Open Food Facts - Computer Cooking Contest 2012
Open Food Facts - Computer Cooking Contest 2012Open Food Facts - Computer Cooking Contest 2012
Open Food Facts - Computer Cooking Contest 2012
 
GANGLOFF resume 060215
GANGLOFF resume 060215GANGLOFF resume 060215
GANGLOFF resume 060215
 
digital gastronomy: culinary + mobile culture
digital gastronomy: culinary + mobile culturedigital gastronomy: culinary + mobile culture
digital gastronomy: culinary + mobile culture
 
Android Mobile Application Testing: Specific Functional, Performance, Device ...
Android Mobile Application Testing: Specific Functional, Performance, Device ...Android Mobile Application Testing: Specific Functional, Performance, Device ...
Android Mobile Application Testing: Specific Functional, Performance, Device ...
 
Performance Testing on Android
Performance Testing on AndroidPerformance Testing on Android
Performance Testing on Android
 
Module 4 presentation
Module 4 presentationModule 4 presentation
Module 4 presentation
 
Android performance
Android performanceAndroid performance
Android performance
 
Testing Android Security
Testing Android SecurityTesting Android Security
Testing Android Security
 
Unit testing in android
Unit testing in androidUnit testing in android
Unit testing in android
 
50 Connected Devices - How Mobile and the Internet of Things Will Affect You
50 Connected Devices - How Mobile and the Internet of Things Will Affect You50 Connected Devices - How Mobile and the Internet of Things Will Affect You
50 Connected Devices - How Mobile and the Internet of Things Will Affect You
 
How to Reliably Measure and Optimize Graphics Performance of Your Android Games
How to Reliably Measure and Optimize Graphics Performance of Your Android GamesHow to Reliably Measure and Optimize Graphics Performance of Your Android Games
How to Reliably Measure and Optimize Graphics Performance of Your Android Games
 
Presentation for Cooking App
Presentation for Cooking AppPresentation for Cooking App
Presentation for Cooking App
 
Testing on Android
Testing on AndroidTesting on Android
Testing on Android
 
Luxury Goods Market in 2016
Luxury Goods Market in 2016Luxury Goods Market in 2016
Luxury Goods Market in 2016
 

Similar a Android Performance and Monitoring - Meetup 3 25-14

Similar a Android Performance and Monitoring - Meetup 3 25-14 (20)

The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...
The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...
The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...
 
Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...
Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...
Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...
 
Innovate 2013 session 1243 mobile testing.v3
Innovate 2013   session 1243 mobile testing.v3Innovate 2013   session 1243 mobile testing.v3
Innovate 2013 session 1243 mobile testing.v3
 
Mobile apps that win
Mobile apps that winMobile apps that win
Mobile apps that win
 
Beyond App Development
Beyond App DevelopmentBeyond App Development
Beyond App Development
 
Beyond App Development
Beyond App DevelopmentBeyond App Development
Beyond App Development
 
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
 
The Art of Mobile Performance (Mobiconf 2015)
The Art of Mobile Performance (Mobiconf 2015)The Art of Mobile Performance (Mobiconf 2015)
The Art of Mobile Performance (Mobiconf 2015)
 
Mastering the Art of Mobile Testing by Akshita Puram
Mastering the Art of Mobile Testing by Akshita PuramMastering the Art of Mobile Testing by Akshita Puram
Mastering the Art of Mobile Testing by Akshita Puram
 
Is It The Cloud, The App, Or Just Me
Is It The Cloud, The App, Or Just MeIs It The Cloud, The App, Or Just Me
Is It The Cloud, The App, Or Just Me
 
Appmotives - Software Testing As Service
Appmotives - Software Testing As ServiceAppmotives - Software Testing As Service
Appmotives - Software Testing As Service
 
RESUME - ME1
RESUME - ME1RESUME - ME1
RESUME - ME1
 
Appium tutorial| Appium Training
Appium tutorial| Appium Training Appium tutorial| Appium Training
Appium tutorial| Appium Training
 
Appium training online|Mobile automation testing with appium
Appium training online|Mobile automation testing with appiumAppium training online|Mobile automation testing with appium
Appium training online|Mobile automation testing with appium
 
Ship quality mobile apps with speed [Webinar]
Ship quality mobile apps with speed [Webinar]Ship quality mobile apps with speed [Webinar]
Ship quality mobile apps with speed [Webinar]
 
Geekle QA Summit 22.2_ The Curious Case of Mobile App Performance Testing.pdf
Geekle QA Summit 22.2_ The Curious Case of Mobile App Performance Testing.pdfGeekle QA Summit 22.2_ The Curious Case of Mobile App Performance Testing.pdf
Geekle QA Summit 22.2_ The Curious Case of Mobile App Performance Testing.pdf
 
Cross Platform Development with Spring
Cross Platform Development with SpringCross Platform Development with Spring
Cross Platform Development with Spring
 
SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...
SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...
SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...
 
[APIdays Melbourne 2019] Delivering the Modern API: Know What it Takes
[APIdays Melbourne 2019] Delivering the Modern API: Know What it Takes[APIdays Melbourne 2019] Delivering the Modern API: Know What it Takes
[APIdays Melbourne 2019] Delivering the Modern API: Know What it Takes
 
Bulletproofing Your APIs: Why Users’ Feedback Matters
Bulletproofing Your APIs: Why Users’ Feedback MattersBulletproofing Your APIs: Why Users’ Feedback Matters
Bulletproofing Your APIs: Why Users’ Feedback Matters
 

Último

Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
daisycvs
 
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
amitlee9823
 
FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756
dollysharma2066
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 
Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876
Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876
Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876
dlhescort
 
Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...
Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...
Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...
Anamikakaur10
 
Call Girls Kengeri Satellite Town Just Call 👗 7737669865 👗 Top Class Call Gir...
Call Girls Kengeri Satellite Town Just Call 👗 7737669865 👗 Top Class Call Gir...Call Girls Kengeri Satellite Town Just Call 👗 7737669865 👗 Top Class Call Gir...
Call Girls Kengeri Satellite Town Just Call 👗 7737669865 👗 Top Class Call Gir...
amitlee9823
 
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
amitlee9823
 
Call Girls In Nangloi Rly Metro ꧂…….95996 … 13876 Enjoy ꧂Escort
Call Girls In Nangloi Rly Metro ꧂…….95996 … 13876 Enjoy ꧂EscortCall Girls In Nangloi Rly Metro ꧂…….95996 … 13876 Enjoy ꧂Escort
Call Girls In Nangloi Rly Metro ꧂…….95996 … 13876 Enjoy ꧂Escort
dlhescort
 

Último (20)

Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
 
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
 
FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756
 
Dr. Admir Softic_ presentation_Green Club_ENG.pdf
Dr. Admir Softic_ presentation_Green Club_ENG.pdfDr. Admir Softic_ presentation_Green Club_ENG.pdf
Dr. Admir Softic_ presentation_Green Club_ENG.pdf
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
Uneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration PresentationUneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration Presentation
 
Falcon Invoice Discounting platform in india
Falcon Invoice Discounting platform in indiaFalcon Invoice Discounting platform in india
Falcon Invoice Discounting platform in india
 
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
 
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
 
Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876
Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876
Call Girls in Delhi, Escort Service Available 24x7 in Delhi 959961-/-3876
 
Falcon Invoice Discounting: Unlock Your Business Potential
Falcon Invoice Discounting: Unlock Your Business PotentialFalcon Invoice Discounting: Unlock Your Business Potential
Falcon Invoice Discounting: Unlock Your Business Potential
 
Famous Olympic Siblings from the 21st Century
Famous Olympic Siblings from the 21st CenturyFamous Olympic Siblings from the 21st Century
Famous Olympic Siblings from the 21st Century
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
 
Phases of Negotiation .pptx
 Phases of Negotiation .pptx Phases of Negotiation .pptx
Phases of Negotiation .pptx
 
Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...
Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...
Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...
 
Cheap Rate Call Girls In Noida Sector 62 Metro 959961乂3876
Cheap Rate Call Girls In Noida Sector 62 Metro 959961乂3876Cheap Rate Call Girls In Noida Sector 62 Metro 959961乂3876
Cheap Rate Call Girls In Noida Sector 62 Metro 959961乂3876
 
Call Girls Kengeri Satellite Town Just Call 👗 7737669865 👗 Top Class Call Gir...
Call Girls Kengeri Satellite Town Just Call 👗 7737669865 👗 Top Class Call Gir...Call Girls Kengeri Satellite Town Just Call 👗 7737669865 👗 Top Class Call Gir...
Call Girls Kengeri Satellite Town Just Call 👗 7737669865 👗 Top Class Call Gir...
 
Business Model Canvas (BMC)- A new venture concept
Business Model Canvas (BMC)-  A new venture conceptBusiness Model Canvas (BMC)-  A new venture concept
Business Model Canvas (BMC)- A new venture concept
 
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
 
Call Girls In Nangloi Rly Metro ꧂…….95996 … 13876 Enjoy ꧂Escort
Call Girls In Nangloi Rly Metro ꧂…….95996 … 13876 Enjoy ꧂EscortCall Girls In Nangloi Rly Metro ꧂…….95996 … 13876 Enjoy ꧂Escort
Call Girls In Nangloi Rly Metro ꧂…….95996 … 13876 Enjoy ꧂Escort
 

Android Performance and Monitoring - Meetup 3 25-14

  • 1. Bay Area Android Meetup How to Achieve Mobile App Performance and Monitoring to Ensure Great User Experiences 6:30pm: Food & Drinks 7:00pm: Performance Monitoring – Alex Gaber 7:40pm: Test Automation and CI – Melvin Laguren
  • 2. Bay Area Android Meetup How to Achieve Mobile App Performance and Monitoring to Ensure Great User Experiences Crittercism 3-25-2014
  • 3. Agenda • Why Does Android Performance Matter? • Snappy UI for UX Performance • UI Thread vs. Worker Thread • Android OS Install Base Fragmentation • Mashed Up Mobile Apps – 3rd Party APIs • Mobile Ad SDK performance • Security SDKs performance • MBaaS performance • Testing vs. Monitoring for Performance • Implementing Android App Monitoring
  • 4. How Users React to Poor App Performance Source: Crittercism end-user survey Q4’2013 26% 9% 10% 21% 26% 65% 0% 10% 20% 30% 40% 50% 60% 70% Did not do anything Shared the experience via social media Left a negative review on the app store Contacted support or told the vendor Told a friend in person Uninstalled the app What Do Users Do When the App is Slow?
  • 5. Personal Experience – Uninstalled Android Apps Lots of apps in the Google Play Store…….. ..….. and lots of uninstalls, 1 stars, bugs? HELP !!!
  • 6. Agenda • Why Does Android Performance Matter? • Snappy UI for UX Performance • UI Thread vs. Worker Thread • Android OS Install Base Fragmentation • Mashed Up Mobile Apps – 3rd Party APIs • Mobile Ad SDK performance • Security SDKs performance • MBaaS performance • Testing vs. Monitoring for Performance • Implementing Android App Monitoring
  • 7. Snappy UI Equals Great UX Linear Layout • Similar to nested tables in HTML • Great for quick and simple UI designs • Performance degrades as complexity increases Linear Layout
  • 8. Snappy UI Equals Great UX Relative Layout • Eliminates Nested view groups • Keeps layout hierarchy flat • Much better performance for complex layouts
  • 9. Relative Layout Example – activity_main.xml Relative Layout “button2” is below “button1”
  • 10. Agenda • Why Does Android Performance Matter? • Snappy UI for UX Performance • UI Thread vs. Worker Thread • Android OS Install Base Fragmentation • Mashed Up Mobile Apps – 3rd Party APIs • Mobile Ad SDK performance • Security SDKs performance • MBaaS performance • Testing vs. Monitoring for Performance • Implementing Android App Monitoring
  • 11. ANR – Application Not Responding What causes an “Application Not Responding” (ANR) error? • No response to an input event (such as key press or screen touch events) within 5 seconds (5,000 ms) • A BroadcastReceiver hasn't finished executing within 10 seconds (10,000 ms) Main Threads vs Worker Threads
  • 12. Main Thread (UI Thread) • Main Thread is also called the “UI Thread” • All Android activities operate in the Main Thread by default • You can easily overload the Main Thread – Doing network operations on Main Thread – Slow disk operations (un-optimized SQL)
  • 13. Main Thread (UI Thread) TIPS • Worker Threads are “background threads” • Handle all network calls w/ Worker Threads • Decouple the UI Thread from potential blockers Sample Worker Thread
  • 14. Main Thread (UI Thread) Set Thread Priority: Example
  • 15. Agenda • Why Does Android Performance Matter? • Snappy UI for UX Performance • UI Thread vs. Worker Thread • Android OS Install Base Fragmentation • Mashed Up Mobile Apps – 3rd Party APIs • Mobile Ad SDK performance • Security SDKs performance • MBaaS performance • Testing vs. Monitoring for Performance • Implementing Android App Monitoring
  • 16. Android OS Install Base Fragmentation Over 20% of Android devices are still running an OS version below 4.0 Data collected during a 7-day period ending on March 3, 2014 (developer.android.com)
  • 17. Agenda • Why Does Android Performance Matter? • Snappy UI for UX Performance • UI Thread vs. Worker Thread • Android OS Install Base Fragmentation • Mashed Up Mobile Apps – 3rd Party APIs • Mobile Ad SDK performance • Security SDKs performance • MBaaS performance • Testing vs. Monitoring for Performance • Implementing Android App Monitoring
  • 18. Average Mobile App Consumes Five 3rd Party APIs • The average mobile app is using between 5-6 APIs / web services • API Monitoring from web server to web server does not tell the full story
  • 19. Average Mobile App Consumes Five 3rd Party APIs
  • 20. Agenda • Why Does Android Performance Matter? • Snappy UI for UX Performance • UI Thread vs. Worker Thread • Android OS Install Base Fragmentation • Mashed Up Mobile Apps – 3rd Party APIs • Mobile Ad SDK performance • Security SDKs performance • MBaaS performance • Testing vs. Monitoring for Performance • Implementing Android App Monitoring
  • 21. 3rd Party SDK Overhead and Performance Latency • Mobile Ads SDKs
  • 22. Agenda • Why Does Android Performance Matter? • Snappy UI for UX Performance • UI Thread vs. Worker Thread • Android OS Install Base Fragmentation • Mashed Up Mobile Apps – 3rd Party APIs • Mobile Ad SDK performance • Security SDKs performance • MBaaS performance • Testing vs. Monitoring for Performance • Implementing Android App Monitoring
  • 23. 3rd Party SDK Overhead and Performance Latency • Security SDKs
  • 24. 3rd Party SDK Overhead and Performance Latency What is that SDK adding to your app? • What is the performance overhead for this service? • What if they start to lag or get slow? • How can I monitor that this SDK isn’t making my app have performance issues?
  • 25. Agenda • Why Does Android Performance Matter? • Snappy UI for UX Performance • UI Thread vs. Worker Thread • Android OS Install Base Fragmentation • Mashed Up Mobile Apps – 3rd Party APIs • Mobile Ad SDK performance • Security SDKs performance • MBaaS performance • Testing vs. Monitoring for Performance • Implementing Android App Monitoring
  • 26. MBaaS Powering your Android App
  • 27. Agenda • Why Does Android Performance Matter? • Snappy UI for UX Performance • UI Thread vs. Worker Thread • Android OS Install Base Fragmentation • Mashed Up Mobile Apps – 3rd Party APIs • Mobile Ad SDK performance • Security SDKs performance • MBaaS performance • Testing vs. Monitoring for Performance • Implementing Android App Monitoring
  • 28. Testing Does Not Ensure Performance: Trust But Verify • Agile Mobile App Development methodology – Leaves little time for testing
  • 29. Testing Does Not Ensure Performance: Trust But Verify • Agile Mobile App Development methodology – Leaves little time for testing
  • 30. Agenda • Why Does Android Performance Matter? • Snappy UI for UX Performance • UI Thread vs. Worker Thread • Android OS Install Base Fragmentation • Mashed Up Mobile Apps – 3rd Party APIs • Mobile Ad SDK performance • Security SDKs performance • MBaaS performance • Testing vs. Monitoring for Performance • Implementing Android App Monitoring
  • 31. Implementing Performance Monitoring for Android Failure of shopping cart check-outs, referrals, etc. Transaction Errors HTTP Errors like 404’s, Errors accessing Cloud Services API & Network Errors Slow performance, High latenciesUnresponsive Apps Downtime due to app crashes Apps Crashes & Exceptions Performance issues due to geographyLocation What cannot be tested prior to launch?
  • 33. Testing Does Not Ensure Performance: Trust But Verify Thank You! www.crittercism.com @crittercism