Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Android Power Optimization: May the Power be with you

Android Power Optimization: May the Power be with you

Looking forward to optimize the resources that get used by the app? Check out this presentation that highlight : Battery and Request optimization techniques in Android Development.

Prajyot Mainkar

July 16, 2016
Tweet

More Decks by Prajyot Mainkar

Other Decks in Technology

Transcript

  1. Users Care about their Battery 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
  2. ..and this is what it should ends like 20-30% Core

    Functions 70% ADs, GPS, Analytics Reduce the Battery Consumption
  3. Where does the power go? CPU RADIOS SCREEN Screen OFF

    e.g. wakelocks e.g. syncs, n/w activities Background Activities Screen ON
  4. Design Principal Reduce Defer Coalesce Say Minimum/ lesser background activities

    If required, defer it to when the phone is plugged in Coalesce it with other activities to reduce wakeup overhead
  5. App Standby System determines the state of an app is

    idle when the user is not actively using it. It understands the app that is not being touched but also takes into consideration that NONE of these should imply: The user explicitly launches the app. The app has a process currently in the foreground (either as an activity or foreground service, or in use by another activity or foreground service). The app generates a notification that users see on the lock screen or in the notification tray.
  6. Knowing Your Location More Accurate More Power GPS Provider Less

    Accurate Less Power Cellular Network Provider Passive Provider To Your App
  7. Location Flooding 120ms 120ms 120ms setInterval of other apps can

    affect your app setFastestInterval() setFastestInterval() 20ms 20ms 20ms
  8. Back off based on User Behaviour Saves Battery Wait 2X

    Longer Sync Sync Sync Wait 2X Longer Exponential Backoff
  9. Do Less,When You Can Do you really need GPS? Approximation?

    Ask the User Carry On Yes No Yes No You are Safe! Use Proximation in Action to reduce the resource usage Less time, Less process results but still meeting user’s needs Approximation of Pixels
  10. Say ‘Bye’ to Polling New News? No New News? No

    New News? No New News available OK
  11. 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
  12. Batch Transfer & 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
  13. Care about Network State WiFi will be fast and Cheap

    - give priority Avoid connections if NO Network is available. Manipulate Broadcast receivers on demand Are you on Roaming?
  14. Varying Download pattern Modify the pattern based on connection type.

    Also, think behaviour type Download more data per session on faster networks ..but involve user in this scene Force a quicker pre-fetch
  15. Monitor Charge Level & State Dock Types Car Desk Low-End

    (Analog) Desk High-End (Digital) Desk Maximise app updates and its frequency when battery is charging Avoid updates when charge state is discharging Opt to update the frequency of update when charged with desktop dock than car dock
  16. Gather Insight Action Use the tools that help you gather

    the information - GPU, CPU or Battery Usage What it means, and how it will impact your program Act on it and repeat! 1 2 3 The Lifecycle Understanding which tool to use, to understand what data and then where to look into the code