SlideShare a Scribd company logo
1 of 41
Download to read offline
@littleeyelabs
mobile app insights like never before
Understanding the why and what of
Android app performance
@littleeyelabs
if customers uninstall, they are lost forever!
customers hate apps that drain
power, crash or perform badly
“44% of users uninstall apps that
perform badly”
“96% of users will give such apps a bad
rating”
Source: http://apigee.com/about/pressrelease/apigee-survey-users-reveal-top-frustrations-lead-bad-mobile-app-reviews
@littleeyelabs
happens to the best of apps!
@littleeyelabs
phenomenon is not limited to
consumer apps!
“if I had a penny for everytime
someone complained about my app
draining battery, I would be a
millionaire”
- Slightly exaggerated quote of a frustrated
QA manager in a large MDM company
Source: http://apigee.com/about/pressrelease/apigee-survey-users-reveal-top-frustrations-lead-bad-mobile-app-reviews
@littleeyelabs
top performance
parameters
battery drain
network consumption
crashes
responsiveness
@littleeyelabs
understanding battery consumption!
@littleeyelabs
what consumes
power
@littleeyelabs
network
cpu
display
gps
gpu
optimization
opportunities
@littleeyelabs
EDGE slow, less power per byte
of data transfer
Wifi more power, but faster
3G more power than Wifi, typically
slower than Wifi.
4G more power than 3G, potentially
faster than Wifi
4G > 3G > Wifi > 2G
network
basics
@littleeyelabs
what causes
power
consumption?
four primary states -
establish
maintain (idle)
transmit (two or more sub
states)
tail state (pseudo state)
what causes
power
consumption?
@littleeyelabs
Establish Maintain Transmit Tail
Wifi High Low Low Low
2G Low Low Low Low
3G Low Low High High
what causes
power
consumption?
@littleeyelabs
understanding state transitions
@littleeyelabs
prefetch data
batch data
detect network state
avoid polling
use inexact timers
use caching
tips to optimize
network power
@littleeyelabs
prefetch data
batch data
detect network state
avoid polling
use inexact timers
use caching
tips to optimize
network power
@littleeyelabs
prefetch data
batch data
detect network state
avoid polling
use inexact timers
use caching
tips to optimize
network power
@littleeyelabs
prefetch data
batch data
detect network state
avoid polling
use inexact timers
use caching
tips to optimize
network power
@littleeyelabs
prefetch data
batch data
detect network state
avoid polling
use inexact timers
use caching
tips to optimize
network power
@littleeyelabs
prefetch data
batch data
detect network state
avoid polling
use inexact timers
use caching
tips to optimize
network power
@littleeyelabs
varying download pattern
monitor charge level and state
monitor and determine
docking state
monitor connectivity state
programmatic control over
receivers
tips to optimize
network power
@littleeyelabs
varying download pattern
monitor charge level and state
monitor and determine
docking state
monitor connectivity state
programmatic control over
receivers
tips to optimize
network power
@littleeyelabs
varying download pattern
monitor charge level and state
monitor and determine
docking state
monitor connectivity state
programmatic control over
receivers
tips to optimize
network power
@littleeyelabs
varying download pattern
monitor charge level and state
monitor and determine
docking state
monitor connectivity state
programmatic control over
receivers
tips to optimize
network power
@littleeyelabs
varying download pattern
monitor charge level and state
monitor and determine
docking state
monitor connectivity state
programmatic control over
receivers
tips to optimize
network power
@littleeyelabs
CPU
basics
runs on various frequencies
frequency controlled by governor
policy
transitions controlled at linux layer
drops down to ‘deep sleep’ as
much as it can
frequencies are scaled based of
usage
@littleeyelabs
CPU
spy
@littleeyelabs
monitor CPU usage
@littleeyelabs
tips to optimize
cpu usage
wakelocks
great power comes with great responsibility
be conscious about how often/long they are
used
use ‘android:keepScreenOn’
spread out your computationally
intensive job
@littleeyelabs
tips to optimize
cpu usage
wakelocks
great power comes with great responsibility
be conscious about how often/long they are
used
use ‘android:keepScreenOn’
spread out your computationally
intensive job
@littleeyelabs
tips to optimize
cpu usage
gpu consumes more power than
cpu
avoid floating point math where possible
use gpu for data-parallel tasks like
video/image processing
use algorithms that consume less
CPU cycle
O(n log n) vs O(n 2) algorithms
goal - keep the freq to the lowest
level and/or reduce the number of
cycles
@littleeyelabs
tips to optimize
cpu usage
gpu consumes more power than
cpu
avoid floating point math where possible
use gpu for data-parallel tasks like
video/image processing
use algorithms that consume less
CPU cycle
O(n log n) vs O(n 2) algorithms
goal - keep the freq to the lowest
level and/or reduce the number of
cycles
@littleeyelabs
tips to optimize
cpu usage
gpu consumes more power than
cpu
avoid floating point math where possible
use gpu for data-parallel tasks like
video/image processing
use algorithms that consume less
CPU cycle
O(n log n) vs O(n 2) algorithms
goal - keep the freq to the lowest
level and/or reduce the number of
cycles
@littleeyelabs
tips to optimize
cpu usage
gpu consumes more power than
cpu
avoid floating point math where possible
use gpu for data-parallel tasks like
video/image processing
use algorithms that consume less
CPU cycle
O(n log n) vs O(n 2) algorithms
goal - keep the freq to the lowest
level and/or reduce the number of
cycles
@littleeyelabs
screen tips color matters!
esp on OLED screens
darker the color, lesser the consumption
brightness levels have more impact
programmatically reduce brightness
if its suits your app/activity
@littleeyelabs
impact of display
@littleeyelabs
crashes!
@littleeyelabs
top reasons
running out of memory
hitting unexpected conditions in
the app
network changes
demand exceeding expectation
responsiveness
@littleeyelabs
running out of
memory
leaks
references continue to exist
GC cannot collect objects, even when
not used
quickly identify which use case
does not reduce memory
consumption
use heap dumps to drill down to
actual object
continuous heap dumps and diff
@littleeyelabs
analyzing memory consumption trends
@littleeyelabs
pre & post-production
analysis and monitoring
detecting performance impacts
before and after release is vital
post-production tracks issues as it
happens with customers
crashlytics
crittercism
pre-production analysis helps
prevent issues before customers
face it
Little Eye
DDMS
@littleeyelabs
demo of little eye
@littleeyelabs
“Things well done and with a care,
exempt themselves from fear”
William Shakespeare
@littleeyelabs
https://angel.co/little-eye-labs
also on

More Related Content

Recently uploaded

+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...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
+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...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
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...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

Featured

Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 

App performance littleeyelabs