Submit Search
Upload
Tuning Android Applications (Part Deux)
•
1 like
•
643 views
C
CommonsWare
Follow
From 2011's AnDevCon II conference
Read less
Read more
Technology
Report
Share
Report
Share
1 of 24
Download now
Download to read offline
Recommended
Real Time Debugging - What to do when a breakpoint just won't do
Real Time Debugging - What to do when a breakpoint just won't do
LloydMoore
Design of Software for Embedded Systems
Design of Software for Embedded Systems
Peter Tröger
Understanding The Performance of Thin-Client Gaming
Understanding The Performance of Thin-Client Gaming
Academia Sinica
Pro sphere customer technical
Pro sphere customer technical
solarisyougood
Going Cloud, Going Mobile: Will Your Network Drag You Down?
Going Cloud, Going Mobile: Will Your Network Drag You Down?
Wes Morgan
Operating System
Operating System
Bhaiyasaheb Bodhak
Dell UPS Management Software Networking Examples
Dell UPS Management Software Networking Examples
Dell TechCenter
An Innovative NVM technology for Sub-0.25um SOC Applications
An Innovative NVM technology for Sub-0.25um SOC Applications
Asia Pacific Cloud Apps Alliance
Recommended
Real Time Debugging - What to do when a breakpoint just won't do
Real Time Debugging - What to do when a breakpoint just won't do
LloydMoore
Design of Software for Embedded Systems
Design of Software for Embedded Systems
Peter Tröger
Understanding The Performance of Thin-Client Gaming
Understanding The Performance of Thin-Client Gaming
Academia Sinica
Pro sphere customer technical
Pro sphere customer technical
solarisyougood
Going Cloud, Going Mobile: Will Your Network Drag You Down?
Going Cloud, Going Mobile: Will Your Network Drag You Down?
Wes Morgan
Operating System
Operating System
Bhaiyasaheb Bodhak
Dell UPS Management Software Networking Examples
Dell UPS Management Software Networking Examples
Dell TechCenter
An Innovative NVM technology for Sub-0.25um SOC Applications
An Innovative NVM technology for Sub-0.25um SOC Applications
Asia Pacific Cloud Apps Alliance
Predictions Sure To Go Wrong (droidcon UK 2011)
Predictions Sure To Go Wrong (droidcon UK 2011)
CommonsWare
Tuning Android Applications (Part One)
Tuning Android Applications (Part One)
CommonsWare
Mastering the Master Detail Pattern
Mastering the Master Detail Pattern
CommonsWare
When Microwatts Are Precious: Battery Tips for Wearable Apps
When Microwatts Are Precious: Battery Tips for Wearable Apps
CommonsWare
Getting Android Developers for Your Wearables
Getting Android Developers for Your Wearables
CommonsWare
Gradle and Your Android Wearable Projects
Gradle and Your Android Wearable Projects
CommonsWare
Android Security: Defending Your Users
Android Security: Defending Your Users
CommonsWare
Emc new1
Emc new1
Adithya Venkatesh
DataCore Technology Overview
DataCore Technology Overview
Jeff Slapp
Exposing and Fixing Common App Performance Problems
Exposing and Fixing Common App Performance Problems
Riverbed Technology
Designing Scalable Applications
Designing Scalable Applications
Fabricio Epaminondas
Simplifying debugging for multi-core Linux devices and low-power Linux clusters
Simplifying debugging for multi-core Linux devices and low-power Linux clusters
Rogue Wave Software
Beyond Traditional Mobile Testing
Beyond Traditional Mobile Testing
ColomboCampsCommunity
Performance Testing in a Mobile World
Performance Testing in a Mobile World
stuartmoncrieff
JVM Support for Multitenant Applications - Steve Poole (IBM)
JVM Support for Multitenant Applications - Steve Poole (IBM)
jaxLondonConference
Debugging Apache Hadoop YARN Cluster in Production
Debugging Apache Hadoop YARN Cluster in Production
Xuan Gong
X Means Y
X Means Y
CommonsWare
Mobile Performance Testing - Testing the Server
Mobile Performance Testing - Testing the Server
XBOSoft
ch1.pdfsystem programiming for engineeering in gct coimbator4e
ch1.pdfsystem programiming for engineeering in gct coimbator4e
EsakyS
Ch1
Ch1
Supakit Seansaart
Zero Downtime JEE Architectures
Zero Downtime JEE Architectures
Alexander Penev
Open_IoT_Summit-Europe-2016-Building_a_Drone_from_scratch
Open_IoT_Summit-Europe-2016-Building_a_Drone_from_scratch
Igor Stoppa
More Related Content
Viewers also liked
Predictions Sure To Go Wrong (droidcon UK 2011)
Predictions Sure To Go Wrong (droidcon UK 2011)
CommonsWare
Tuning Android Applications (Part One)
Tuning Android Applications (Part One)
CommonsWare
Mastering the Master Detail Pattern
Mastering the Master Detail Pattern
CommonsWare
When Microwatts Are Precious: Battery Tips for Wearable Apps
When Microwatts Are Precious: Battery Tips for Wearable Apps
CommonsWare
Getting Android Developers for Your Wearables
Getting Android Developers for Your Wearables
CommonsWare
Gradle and Your Android Wearable Projects
Gradle and Your Android Wearable Projects
CommonsWare
Android Security: Defending Your Users
Android Security: Defending Your Users
CommonsWare
Viewers also liked
(7)
Predictions Sure To Go Wrong (droidcon UK 2011)
Predictions Sure To Go Wrong (droidcon UK 2011)
Tuning Android Applications (Part One)
Tuning Android Applications (Part One)
Mastering the Master Detail Pattern
Mastering the Master Detail Pattern
When Microwatts Are Precious: Battery Tips for Wearable Apps
When Microwatts Are Precious: Battery Tips for Wearable Apps
Getting Android Developers for Your Wearables
Getting Android Developers for Your Wearables
Gradle and Your Android Wearable Projects
Gradle and Your Android Wearable Projects
Android Security: Defending Your Users
Android Security: Defending Your Users
Similar to Tuning Android Applications (Part Deux)
Emc new1
Emc new1
Adithya Venkatesh
DataCore Technology Overview
DataCore Technology Overview
Jeff Slapp
Exposing and Fixing Common App Performance Problems
Exposing and Fixing Common App Performance Problems
Riverbed Technology
Designing Scalable Applications
Designing Scalable Applications
Fabricio Epaminondas
Simplifying debugging for multi-core Linux devices and low-power Linux clusters
Simplifying debugging for multi-core Linux devices and low-power Linux clusters
Rogue Wave Software
Beyond Traditional Mobile Testing
Beyond Traditional Mobile Testing
ColomboCampsCommunity
Performance Testing in a Mobile World
Performance Testing in a Mobile World
stuartmoncrieff
JVM Support for Multitenant Applications - Steve Poole (IBM)
JVM Support for Multitenant Applications - Steve Poole (IBM)
jaxLondonConference
Debugging Apache Hadoop YARN Cluster in Production
Debugging Apache Hadoop YARN Cluster in Production
Xuan Gong
X Means Y
X Means Y
CommonsWare
Mobile Performance Testing - Testing the Server
Mobile Performance Testing - Testing the Server
XBOSoft
ch1.pdfsystem programiming for engineeering in gct coimbator4e
ch1.pdfsystem programiming for engineeering in gct coimbator4e
EsakyS
Ch1
Ch1
Supakit Seansaart
Zero Downtime JEE Architectures
Zero Downtime JEE Architectures
Alexander Penev
Open_IoT_Summit-Europe-2016-Building_a_Drone_from_scratch
Open_IoT_Summit-Europe-2016-Building_a_Drone_from_scratch
Igor Stoppa
The Java Evolution Mismatch by Gil Tene, CTO at Azul Systems
The Java Evolution Mismatch by Gil Tene, CTO at Azul Systems
zuluJDK
ch1.ppt
ch1.ppt
tarunudayakumar1
HIT3328 - Chapter01 - Platforms and Devices
HIT3328 - Chapter01 - Platforms and Devices
Yhal Htet Aung
Nonfunctional Testing: Examine the Other Side of the Coin
Nonfunctional Testing: Examine the Other Side of the Coin
TechWell
ch1.pptx
ch1.pptx
ZoYaKazmi3
Similar to Tuning Android Applications (Part Deux)
(20)
Emc new1
Emc new1
DataCore Technology Overview
DataCore Technology Overview
Exposing and Fixing Common App Performance Problems
Exposing and Fixing Common App Performance Problems
Designing Scalable Applications
Designing Scalable Applications
Simplifying debugging for multi-core Linux devices and low-power Linux clusters
Simplifying debugging for multi-core Linux devices and low-power Linux clusters
Beyond Traditional Mobile Testing
Beyond Traditional Mobile Testing
Performance Testing in a Mobile World
Performance Testing in a Mobile World
JVM Support for Multitenant Applications - Steve Poole (IBM)
JVM Support for Multitenant Applications - Steve Poole (IBM)
Debugging Apache Hadoop YARN Cluster in Production
Debugging Apache Hadoop YARN Cluster in Production
X Means Y
X Means Y
Mobile Performance Testing - Testing the Server
Mobile Performance Testing - Testing the Server
ch1.pdfsystem programiming for engineeering in gct coimbator4e
ch1.pdfsystem programiming for engineeering in gct coimbator4e
Ch1
Ch1
Zero Downtime JEE Architectures
Zero Downtime JEE Architectures
Open_IoT_Summit-Europe-2016-Building_a_Drone_from_scratch
Open_IoT_Summit-Europe-2016-Building_a_Drone_from_scratch
The Java Evolution Mismatch by Gil Tene, CTO at Azul Systems
The Java Evolution Mismatch by Gil Tene, CTO at Azul Systems
ch1.ppt
ch1.ppt
HIT3328 - Chapter01 - Platforms and Devices
HIT3328 - Chapter01 - Platforms and Devices
Nonfunctional Testing: Examine the Other Side of the Coin
Nonfunctional Testing: Examine the Other Side of the Coin
ch1.pptx
ch1.pptx
More from CommonsWare
The Action Bar: Front to Back
The Action Bar: Front to Back
CommonsWare
Secondary Screen Support Using DisplayManager
Secondary Screen Support Using DisplayManager
CommonsWare
Not Quite As Painful Threading
Not Quite As Painful Threading
CommonsWare
Android Development: The 20,000-Foot View
Android Development: The 20,000-Foot View
CommonsWare
Maps V2... And You!
Maps V2... And You!
CommonsWare
A Deep Dive Into ViewPager
A Deep Dive Into ViewPager
CommonsWare
Second-Screen Support in Android 4.2
Second-Screen Support in Android 4.2
CommonsWare
Integrate Android Apps and Web Apps
Integrate Android Apps and Web Apps
CommonsWare
From Android to the Mobile Web
From Android to the Mobile Web
CommonsWare
The Wonderful World of Wearables
The Wonderful World of Wearables
CommonsWare
Securing User Data with SQLCipher
Securing User Data with SQLCipher
CommonsWare
Beaming Data to Devices with NFC
Beaming Data to Devices with NFC
CommonsWare
What's New in Jelly Bean
What's New in Jelly Bean
CommonsWare
Making Money at Mobile: 60 Business Models
Making Money at Mobile: 60 Business Models
CommonsWare
AppsWorld Keynote
AppsWorld Keynote
CommonsWare
App Integration (Revised and Updated)
App Integration (Revised and Updated)
CommonsWare
Rich Text Editing and Beyond
Rich Text Editing and Beyond
CommonsWare
App integration: Strategies and Tactics
App integration: Strategies and Tactics
CommonsWare
Backwards Compatibility: Strategies and Tactics
Backwards Compatibility: Strategies and Tactics
CommonsWare
Android Hardware That's A Little Bit... Odd
Android Hardware That's A Little Bit... Odd
CommonsWare
More from CommonsWare
(20)
The Action Bar: Front to Back
The Action Bar: Front to Back
Secondary Screen Support Using DisplayManager
Secondary Screen Support Using DisplayManager
Not Quite As Painful Threading
Not Quite As Painful Threading
Android Development: The 20,000-Foot View
Android Development: The 20,000-Foot View
Maps V2... And You!
Maps V2... And You!
A Deep Dive Into ViewPager
A Deep Dive Into ViewPager
Second-Screen Support in Android 4.2
Second-Screen Support in Android 4.2
Integrate Android Apps and Web Apps
Integrate Android Apps and Web Apps
From Android to the Mobile Web
From Android to the Mobile Web
The Wonderful World of Wearables
The Wonderful World of Wearables
Securing User Data with SQLCipher
Securing User Data with SQLCipher
Beaming Data to Devices with NFC
Beaming Data to Devices with NFC
What's New in Jelly Bean
What's New in Jelly Bean
Making Money at Mobile: 60 Business Models
Making Money at Mobile: 60 Business Models
AppsWorld Keynote
AppsWorld Keynote
App Integration (Revised and Updated)
App Integration (Revised and Updated)
Rich Text Editing and Beyond
Rich Text Editing and Beyond
App integration: Strategies and Tactics
App integration: Strategies and Tactics
Backwards Compatibility: Strategies and Tactics
Backwards Compatibility: Strategies and Tactics
Android Hardware That's A Little Bit... Odd
Android Hardware That's A Little Bit... Odd
Recently uploaded
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Commit University
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
Curtis Poe
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
Stephanie Beckett
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
LoriGlavin3
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
Rick Flair
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
Nathaniel Shimoni
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
LoriGlavin3
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
LoriGlavin3
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
UiPathCommunity
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
Dilum Bandara
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
Hervé Boutemy
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Mark Simos
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
LoriGlavin3
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
Addepto
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
BkGupta21
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
Pixlogix Infotech
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
2toLead Limited
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
BookNet Canada
Recently uploaded
(20)
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Tuning Android Applications (Part Deux)
1.
Tuning Android Applications
(part deux) Copyright © 2011 CommonsWare, LLC
2.
What I'll Be
Yammering About ● You Missed It – Traceview – MAT ● Now – Battery and Bandwidth – Top Ten Tuning Tips Copyright © 2011 CommonsWare, LLC
3.
Bandwidth &
Battery Measurement Copyright © 2011 CommonsWare, LLC
4.
Bandwidth Issues ●
Too Much In General – Users on metered plans pay through the nose – Users on “unlimited” plans hit the, um, limits ● Too Much At Poor Times – While the user is trying to use bandwidth for other purposes (e.g., streaming video) – When the user is on mobile data instead of WiFi Copyright © 2011 CommonsWare, LLC
5.
Measuring Bandwidth ●
Option #1: Find an App – Bandwidth Monitor – Traffic Monitor – Network Traffic Detail – Etc. Copyright © 2011 CommonsWare, LLC
6.
Measuring Bandwidth ●
Option #2: TrafficStats – Static methods to report bandwidth consumption to date ● Entire device, all networks ● Entire device, by network (mobile data vs. WiFi) ● Per UID (all, TCP vs. UDP) – Transmit (Tx) vs. Receive (Rx) – Bytes vs. Segments vs. Packets Copyright © 2011 CommonsWare, LLC
7.
Measuring Bandwidth ●
Option #1: TrafficStats – Take snapshots at points in time ● Delta between values = consumed bandwidth – Two Integration Styles ● In test suites, to determine if your mitigation strategies are working ● In production, for traffic shaping Copyright © 2011 CommonsWare, LLC
8.
Measuring Bandwidth ●
Option #2: ICS Settings – Chart of bandwidth consumed – Ability to see per-application and set limits – Downside: hardware only? Copyright © 2011 CommonsWare, LLC
9.
Measuring Bandwidth ●
Option #3: Wireshark – Requires rooted device or integration at WiFi access point – Gives you full logs of all activity ● Determine not only how much bandwidth, but what it is being used for Copyright © 2011 CommonsWare, LLC
10.
Issues with Battery ●
You Get Blamed – Your app shows up on the battery consumption Settings screen, users get irritated ● You Want to be Friendly – Dynamically adjust your behavior to deal with low battery conditions Copyright © 2011 CommonsWare, LLC
11.
Measuring Power Usage ●
Qualcomm MDP and Trepn – Pros ● Highly detailed information, down to the component and process ● Graphs (on-device) and logs (for offline analysis) – Cons ● Trepn only works on Qualcomm MDP ● MDP is frakkin' expensive (~$1,400) Copyright © 2011 CommonsWare, LLC
12.
Measuring Power Usage ●
PowerTutor – Pros ● Free! – Cons ● Accuracy so-so for Nexus One, worse for other modern devices ● No logging Copyright © 2011 CommonsWare, LLC
13.
Measuring Power Usage ●
Settings' Battery “Blame Screen” – If you don't show up here, how bad can it be? ● adb shell dumpsys batteryinfo – Tons of data – Difficult to grok Copyright © 2011 CommonsWare, LLC
14.
Top Ten Tuning
Tips (totally) Copyright © 2011 CommonsWare, LLC
15.
Measure, Measure, Measure ●
Don't Start Hacking Away – Example: randomly removing accessor methods ● Identify Problem Area First – What is too slow, or leaking, or whatever? ● Cure What Ails Ya – Premature optimization helps nobody Copyright © 2011 CommonsWare, LLC
16.
Recycling: It's Good
for the “Urf!” ● Adapter View Recycling – Rows in lists – Pages in ViewPager ● Bitmaps – If it has a recycle() method, use it! Copyright © 2011 CommonsWare, LLC
17.
Activities Stay Active ●
Activities Not Destroyed to Free Heap Space – BACK button, finish(), configuration change – Process termination (may not call onDestroy()) ● Mitigation Strategies – Activity recycling – Time-based belt-tightening Copyright © 2011 CommonsWare, LLC
18.
Threads: More Than
a Panacea, But... ● The Good – Move stuff off the main application thread ● The Bad – Most devices in use still single core – Threads consume more CPU time ● The Ugly – Thrashing among too many threads Copyright © 2011 CommonsWare, LLC
19.
Robbing Peter to
Pay Paul ● Threads ● Caching – Trading off RAM to save disk I/O, or CPU time, or bandwidth – Trading off disk space to save bandwidth, or CPU time – Ensure you don't trade too much (whack-a-mole) Copyright © 2011 CommonsWare, LLC
20.
Hardware Is Real.
Really Real. ● Emulator Is Slower At... – CPU ● Emulator Is Faster At... – Disk I/O – Network (usually, compared to wireless data) ● Net: Test on Hardware Too Copyright © 2011 CommonsWare, LLC
21.
Globals, Processes, and
Cavemen ● Global Scope: Risk of Memory Leaks – Tempting as central holding spot for data – Reason why considered bad form in standard Java development ● Extra Processes: Just Say No! – Usually add no value – Consume extra RAM, CPU time Copyright © 2011 CommonsWare, LLC
22.
YAGNI ●
You Ain't Gonna Need It – Downloading and caching data that might not get used – Fancy plug-in architecture for an app with no plug-ins ● Constrained Devices Need Constrained Plans Copyright © 2011 CommonsWare, LLC
23.
Don't Be Chatty ●
JNI/NDK – Each context switch from Java to C/C++ (and back) adds overhead ● IPC – Every call between processes adds overhead – Includes sendBroadcast()! ● Aim For Coarse-Grained Protocols Copyright © 2011 CommonsWare, LLC
24.
Lather. Rinse. Repeat. ●
Keep Testing and Tuning – Major application releases – Major OS releases ● Example: rumored AsyncTask thread pool shrinkage – Major device style releases ● Example: multi-core Copyright © 2011 CommonsWare, LLC
Download now