Android performance
- 6. Battery Life is very important to the consumers
Battery Life
WiFi Speed/Quality
Touch Screen
Screen/Display Size
Display Type/ Quality
Connectivity
Memory
Display Resolution
0 10 20 30 40 50 60 70 80 90 100
38%
42%
44%
46%
46%
48%
52%
72%
Source: Qualcomm Band Tracker, Market Search Group, US
- 7. ..but it is a Developer’s concern
Power is a part of User Experience
Power is important to the Mobile users
“Bad” ratings / Uninstall is the only escape
- 9. …You need to balance
20-30% Core
Functions
70% - Ads, GPS,
Analytics
Reducing Battery
Drain
- 10. Just the right moment (no sleep?)
Uploading of Files/Songs
Cropping of Images
Unwanted loading
Wakeloack
Alarm manager
Job scheduler
- 11. Thank you “network” request
if Polling for network
requests
Response Packets
Device being awake
- 12. But you can check the stats
Wakelock Time
Network Time
- 16. GPS: God of Battery Drain
Do you really need GPS?
Approximation?
Ask UserCarry On
WTH?
YesNo
YesNo
- 17. Tips for Optimize network power
Prefetch data
Batch transfer and connections
Detect network state
Avoid polling
Use caching
Varying download pattern
Monitor charge level and state
Monitor and determine docking state
Programmatic control over features
Use the DDMS Network Traffic Tool
- 18. Prefetch Data
A way to avoid number of independent data transfer sessions
Allows user to download all the data in a given period in a single burst & connection, at full
capacity
Reduces radio activations and bandwidth, improves battery life and latency
e.g Music Player, News reader
- 19. Batch transfer and connections
Bundle your data transfers and create a pending transfer
queue
Transfer as much data as possible during each transfer
session to limit the number of sessions you require
- 20. Detect Network State
WiFi will be fast and Cheap - give priority
Are you on Roaming?
Avoid connections if NO Network is available.
Manipulate Broadcast receivers on demand
- 21. Using GCM instead of Polling
New News?
No
New News?
No
New News?
No
New News available
OK
- 23. Varying Download Pattern
Modify the pattern based on connection type
Download more data per session on faster networks
..but involve user in this scene
Force a quicker pre-fetch
- 24. Monitor charge level and state
Maximise app updates and its frequency when battery is
charging
Avoid updates when charge state is discharging
- 25. Monitor and Determine Docking State
Dock-State is typically linked to the charging stage
Opt to update the frequency of update when charged with
desktop dock than car dock
Dock Types
Car Desk
Low-End
(Analog) Desk
High-End
(Digital) Desk
- 26. Programmatic Control over Features
Darker Color, Lesser Consumption
Brightness Level have more impact
An expensive component if used in an app
Avoid fine-point location, unless really necessary
- 28. Tips for using App’s Data
Using Services Sparingly ( use IntentService)
Release memory when User switch apps( onTrimMemory() )
Release memory as memory becomes tight
Avoid OutofMemory
Avoid wasting memory with bitmaps
Be aware of memory overhead
Avoid dependency injection frameworks
Be careful about using external libraries
Optimize overall performance
Use ProGuard to strip out any unneeded code
Use ZipAlign ( avoids high RAM usage)
Analyze your RAM usage
Use Multiple Processes ( e.g music player)