SlideShare a Scribd company logo
1 of 27
Battery Optimization for 
Android Apps 
Murat AYDIN 
STM 
#DV14 #BatteryOptimization @maydintr
About Me 
• Android Developer and blogger in his free time 
• Senior Software Developer at work 
• GDG Ankara member 
www.androiddeveloperdays.com 
• Author 
#DV14 #BatteryOptimization @maydintr
Why Battery is Important? 
• Limited and main resource for device to function 
• Device may be needed for an important task when the 
battery is running out of power 
#DV14 #BatteryOptimization @maydintr
Why Battery is Important? 
• Part of user experience 
• Bad user reviews and ratings 
#DV14 #BatteryOptimization @maydintr
What to do? 
• Buy extended batteries 
• Buy case batteries 
• Carry external batteries 
Trontium-reactor can charge phones 50 times-299$ 
• Carry solar charges 
#DV14 #BatteryOptimization @maydintr
What consumes the most? 
Derived from Jeff Sharkey’s presentation 
#DV14 #BatteryOptimization @maydintr
Usage Measurements 
For a 1150mAh battery: 
• Watching YouTube videos: 340mA 1150/340=3.4 hours 
• Browsing 3G web: 225mA 1150/225=5 hours 
• Typical usage,10 minute for every hour:42mA=32 hours 
• EDGE completely idle: 5mA=9.5 days 
• Airplane mode idle:2mA=24 days 
#DV14 #BatteryOptimization @maydintr
Bulk Data Transfer 
Bulk data transfer for a 6MB song: 
• EDGE (90kbps):300mA*9.1 min = 45 mAh 
• 3G (300kbps):210mA*2.7 min = 9.5 mAh 
• WiFi (1Mbps):330mA*48 sec = 4.4 mAh 
#DV14 #BatteryOptimization @maydintr
• Research by Purdue University into energy consumption 
by apps (March 2012) 
“Free apps like Free Chess and Angry Birds spend under 
25-35 percent of their energy on game play, but over 65-75 
percent on user tracking, uploading user information and 
downloading ads.” 
#DV14 #BatteryOptimization @maydintr
Radio State Machine 
#DV14 #BatteryOptimization @maydintr
Bundled vs Unbundled Transfers 
• Suppose 3 data transfer 
each 3s in every 20s 
• Unbundled 1 data 
transfer = 
3s+5s+12s=20s 
• 20s x 3 totally 60s 
• Bundled 9s+5s+12s = 
totally 26s 
#DV14 #BatteryOptimization @maydintr
Prefetch Data 
• Reduce download times 
• Minimize in-app latency 
• Dont use it aggressively 
• Prefetch data such that you will only need to initiate 
another download every 2 to 5 minutes, and in the order 
of 1 to 5 megabytes 
#DV14 #BatteryOptimization @maydintr
Batch Data 
• Create a pending transfer queue 
• Transfer from the queue when there is scheduled 
updates 
#DV14 #BatteryOptimization @maydintr
Use Traffic Stats API 
TrafficStats.setThreadStatsTag(0xF00D); 
try { 
// Make network request using HttpClient.execute() 
} finally { 
TrafficStats.clearThreadStatsTag(); 
} 
#DV14 #BatteryOptimization @maydintr
Polling? 
• Use GCM instead of polling 
• Use Inexact Repeating Alarms for pollings 
• Dont use _WAKEUP versions of alarm types 
• Implement exponential back-off pattern for pollings 
#DV14 #BatteryOptimization @maydintr
Cache Data 
• Cache as much as possible 
• Be careful about displaying stale data 
Monitor Connectivity 
• Avoid connection attempts if there is no network 
• Modify download pattern based on the connectivity type 
#DV14 #BatteryOptimization @maydintr
Compress Data 
• Compress data before transferring 
• Especially textual data 
import java.util.zip.GZIPInputStream; 
HttpGet request = new HttpGet(“http://url”); 
HttpResponse resp = new DefaultHttpClient().execute(request); 
HttpEntity entity = response.getEntity(); 
InputStream compressed = entity.getContent(); 
InputStream rawData = new GZIPInputStream(compressed); 
#DV14 #BatteryOptimization @maydintr
Compress Data 
Derived from Jeff Sharkey’s presentation 
#DV14 #BatteryOptimization @maydintr
Battery Monitoring 
• Monitor changes in charging state 
• Monitor Significant Changes in Battery Level 
• Maximize update rate when device is charging, minimize 
when discharging 
• Decrease update frequency when the battery is low 
#DV14 #BatteryOptimization @maydintr
Wakelock 
• Q: What is wakelock? 
• A: A wake lock is a mechanism to indicate that your 
application needs to have the device stay on 
• Device battery life will be significantly affected by the 
use of this API. Do not 
acquire PowerManager.WakeLocks unless you really 
need them, use the minimum levels possible, and be 
sure to release them as soon as possible. 
#DV14 #BatteryOptimization @maydintr
Wakelock 
• Use keepScreenOn instead of wakelock 
#DV14 #BatteryOptimization @maydintr
Derived from Jeff Sharkey’s presentation 
#DV14 #BatteryOptimization @maydintr
GPS 
• Use coarse network location if possible 
#DV14 #BatteryOptimization @maydintr
Trepn Profiler 
• Real-time overlay-mode allows developers to see the 
impact of their actions on performance 
• Helps developers optimize code for CPU, power usage 
and network usage 
• Profiles the entire system or a single app 
• Displays accurate battery power readings with charts 
• Supports offline analysis of data 
• Can be started or stopped from a script for Automated 
tests 
• Eclipse plug-in 
#DV14 #BatteryOptimization @maydintr
Demo 
#DV14 #BatteryOptimization @maydintr
As a Result 
#DV14 #BatteryOptimization @maydintr
Questions? 
• Twitter: @maydintr 
• Email: maydin@gmail.com 
• Web: www.ottodroid.net 
#DV14 #BatteryOptimization @maydintr

More Related Content

Similar to Battery Optimization for Android Apps - Devoxx14

Optimizing Apps for Better Performance
Optimizing Apps for Better PerformanceOptimizing Apps for Better Performance
Optimizing Apps for Better PerformanceElif Boncuk
 
Daily monitoring cbm of switchyard equipments through android app
Daily monitoring cbm of switchyard equipments through android appDaily monitoring cbm of switchyard equipments through android app
Daily monitoring cbm of switchyard equipments through android appNiraj Agrawal
 
Doug Sillars on App Optimization
Doug Sillars on App OptimizationDoug Sillars on App Optimization
Doug Sillars on App Optimizationwipjam
 
That's Web? Extreme Optimization for the Mobile Web (Oct 2012)
That's Web? Extreme Optimization for the Mobile Web (Oct 2012)That's Web? Extreme Optimization for the Mobile Web (Oct 2012)
That's Web? Extreme Optimization for the Mobile Web (Oct 2012)Glan Thomas
 
Android Application Optimization: Overview and Tools - Oref Barad, AVG
Android Application Optimization: Overview and Tools - Oref Barad, AVGAndroid Application Optimization: Overview and Tools - Oref Barad, AVG
Android Application Optimization: Overview and Tools - Oref Barad, AVGDroidConTLV
 
Session 4708 - Omegamon for CICS customer experience at Garanti Technology
Session 4708 - Omegamon for CICS customer experience at Garanti TechnologySession 4708 - Omegamon for CICS customer experience at Garanti Technology
Session 4708 - Omegamon for CICS customer experience at Garanti Technologynick_garrod
 
Samsung Developer's Conference - Maximize App Performance while Minimizing Ba...
Samsung Developer's Conference - Maximize App Performance while Minimizing Ba...Samsung Developer's Conference - Maximize App Performance while Minimizing Ba...
Samsung Developer's Conference - Maximize App Performance while Minimizing Ba...rickschwar
 
Testing Mobile App Performance
Testing Mobile App PerformanceTesting Mobile App Performance
Testing Mobile App PerformanceTechWell
 
DevOps for Developers
DevOps for DevelopersDevOps for Developers
DevOps for DevelopersWill Button
 
Automated Irrigation
Automated IrrigationAutomated Irrigation
Automated IrrigationJoe Abhishek
 
Virtualization & Network Connectivity
Virtualization & Network Connectivity Virtualization & Network Connectivity
Virtualization & Network Connectivity itplant
 
Acting on Real-time Behavior: How Peak Games Won Transactions
Acting on Real-time Behavior: How Peak Games Won TransactionsActing on Real-time Behavior: How Peak Games Won Transactions
Acting on Real-time Behavior: How Peak Games Won TransactionsVoltDB
 
IOT BASED CASHLESS PETROL PUMP
IOT BASED CASHLESS PETROL PUMPIOT BASED CASHLESS PETROL PUMP
IOT BASED CASHLESS PETROL PUMPIRJET Journal
 
Syllabus tablet repair
Syllabus tablet repairSyllabus tablet repair
Syllabus tablet repairchiptroniks
 
Being Epic: Best Practices for Android Development
Being Epic: Best Practices for Android DevelopmentBeing Epic: Best Practices for Android Development
Being Epic: Best Practices for Android DevelopmentReto Meier
 
Five Meteor Dev Power Tools - 2015-04-06
Five Meteor Dev Power Tools - 2015-04-06Five Meteor Dev Power Tools - 2015-04-06
Five Meteor Dev Power Tools - 2015-04-06Mike Seidle
 
Automating the real-user scenarios across multi-apps, and multi-devices
Automating the real-user scenarios across multi-apps, and multi-devicesAutomating the real-user scenarios across multi-apps, and multi-devices
Automating the real-user scenarios across multi-apps, and multi-devicesAnand Bagmar
 

Similar to Battery Optimization for Android Apps - Devoxx14 (20)

Optimizing Apps for Better Performance
Optimizing Apps for Better PerformanceOptimizing Apps for Better Performance
Optimizing Apps for Better Performance
 
Daily monitoring cbm of switchyard equipments through android app
Daily monitoring cbm of switchyard equipments through android appDaily monitoring cbm of switchyard equipments through android app
Daily monitoring cbm of switchyard equipments through android app
 
appium backdoors
appium backdoorsappium backdoors
appium backdoors
 
Doug Sillars on App Optimization
Doug Sillars on App OptimizationDoug Sillars on App Optimization
Doug Sillars on App Optimization
 
That's Web? Extreme Optimization for the Mobile Web (Oct 2012)
That's Web? Extreme Optimization for the Mobile Web (Oct 2012)That's Web? Extreme Optimization for the Mobile Web (Oct 2012)
That's Web? Extreme Optimization for the Mobile Web (Oct 2012)
 
Android Application Optimization: Overview and Tools - Oref Barad, AVG
Android Application Optimization: Overview and Tools - Oref Barad, AVGAndroid Application Optimization: Overview and Tools - Oref Barad, AVG
Android Application Optimization: Overview and Tools - Oref Barad, AVG
 
Greach 19 - Micronaut Performance
Greach 19 - Micronaut PerformanceGreach 19 - Micronaut Performance
Greach 19 - Micronaut Performance
 
Session 4708 - Omegamon for CICS customer experience at Garanti Technology
Session 4708 - Omegamon for CICS customer experience at Garanti TechnologySession 4708 - Omegamon for CICS customer experience at Garanti Technology
Session 4708 - Omegamon for CICS customer experience at Garanti Technology
 
Samsung Developer's Conference - Maximize App Performance while Minimizing Ba...
Samsung Developer's Conference - Maximize App Performance while Minimizing Ba...Samsung Developer's Conference - Maximize App Performance while Minimizing Ba...
Samsung Developer's Conference - Maximize App Performance while Minimizing Ba...
 
Testing Mobile App Performance
Testing Mobile App PerformanceTesting Mobile App Performance
Testing Mobile App Performance
 
DevOps for Developers
DevOps for DevelopersDevOps for Developers
DevOps for Developers
 
Automated Irrigation
Automated IrrigationAutomated Irrigation
Automated Irrigation
 
Google App engine
Google App engineGoogle App engine
Google App engine
 
Virtualization & Network Connectivity
Virtualization & Network Connectivity Virtualization & Network Connectivity
Virtualization & Network Connectivity
 
Acting on Real-time Behavior: How Peak Games Won Transactions
Acting on Real-time Behavior: How Peak Games Won TransactionsActing on Real-time Behavior: How Peak Games Won Transactions
Acting on Real-time Behavior: How Peak Games Won Transactions
 
IOT BASED CASHLESS PETROL PUMP
IOT BASED CASHLESS PETROL PUMPIOT BASED CASHLESS PETROL PUMP
IOT BASED CASHLESS PETROL PUMP
 
Syllabus tablet repair
Syllabus tablet repairSyllabus tablet repair
Syllabus tablet repair
 
Being Epic: Best Practices for Android Development
Being Epic: Best Practices for Android DevelopmentBeing Epic: Best Practices for Android Development
Being Epic: Best Practices for Android Development
 
Five Meteor Dev Power Tools - 2015-04-06
Five Meteor Dev Power Tools - 2015-04-06Five Meteor Dev Power Tools - 2015-04-06
Five Meteor Dev Power Tools - 2015-04-06
 
Automating the real-user scenarios across multi-apps, and multi-devices
Automating the real-user scenarios across multi-apps, and multi-devicesAutomating the real-user scenarios across multi-apps, and multi-devices
Automating the real-user scenarios across multi-apps, and multi-devices
 

Recently uploaded

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 

Recently uploaded (20)

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 

Battery Optimization for Android Apps - Devoxx14

  • 1. Battery Optimization for Android Apps Murat AYDIN STM #DV14 #BatteryOptimization @maydintr
  • 2. About Me • Android Developer and blogger in his free time • Senior Software Developer at work • GDG Ankara member www.androiddeveloperdays.com • Author #DV14 #BatteryOptimization @maydintr
  • 3. Why Battery is Important? • Limited and main resource for device to function • Device may be needed for an important task when the battery is running out of power #DV14 #BatteryOptimization @maydintr
  • 4. Why Battery is Important? • Part of user experience • Bad user reviews and ratings #DV14 #BatteryOptimization @maydintr
  • 5. What to do? • Buy extended batteries • Buy case batteries • Carry external batteries Trontium-reactor can charge phones 50 times-299$ • Carry solar charges #DV14 #BatteryOptimization @maydintr
  • 6. What consumes the most? Derived from Jeff Sharkey’s presentation #DV14 #BatteryOptimization @maydintr
  • 7. Usage Measurements For a 1150mAh battery: • Watching YouTube videos: 340mA 1150/340=3.4 hours • Browsing 3G web: 225mA 1150/225=5 hours • Typical usage,10 minute for every hour:42mA=32 hours • EDGE completely idle: 5mA=9.5 days • Airplane mode idle:2mA=24 days #DV14 #BatteryOptimization @maydintr
  • 8. Bulk Data Transfer Bulk data transfer for a 6MB song: • EDGE (90kbps):300mA*9.1 min = 45 mAh • 3G (300kbps):210mA*2.7 min = 9.5 mAh • WiFi (1Mbps):330mA*48 sec = 4.4 mAh #DV14 #BatteryOptimization @maydintr
  • 9. • Research by Purdue University into energy consumption by apps (March 2012) “Free apps like Free Chess and Angry Birds spend under 25-35 percent of their energy on game play, but over 65-75 percent on user tracking, uploading user information and downloading ads.” #DV14 #BatteryOptimization @maydintr
  • 10. Radio State Machine #DV14 #BatteryOptimization @maydintr
  • 11. Bundled vs Unbundled Transfers • Suppose 3 data transfer each 3s in every 20s • Unbundled 1 data transfer = 3s+5s+12s=20s • 20s x 3 totally 60s • Bundled 9s+5s+12s = totally 26s #DV14 #BatteryOptimization @maydintr
  • 12. Prefetch Data • Reduce download times • Minimize in-app latency • Dont use it aggressively • Prefetch data such that you will only need to initiate another download every 2 to 5 minutes, and in the order of 1 to 5 megabytes #DV14 #BatteryOptimization @maydintr
  • 13. Batch Data • Create a pending transfer queue • Transfer from the queue when there is scheduled updates #DV14 #BatteryOptimization @maydintr
  • 14. Use Traffic Stats API TrafficStats.setThreadStatsTag(0xF00D); try { // Make network request using HttpClient.execute() } finally { TrafficStats.clearThreadStatsTag(); } #DV14 #BatteryOptimization @maydintr
  • 15. Polling? • Use GCM instead of polling • Use Inexact Repeating Alarms for pollings • Dont use _WAKEUP versions of alarm types • Implement exponential back-off pattern for pollings #DV14 #BatteryOptimization @maydintr
  • 16. Cache Data • Cache as much as possible • Be careful about displaying stale data Monitor Connectivity • Avoid connection attempts if there is no network • Modify download pattern based on the connectivity type #DV14 #BatteryOptimization @maydintr
  • 17. Compress Data • Compress data before transferring • Especially textual data import java.util.zip.GZIPInputStream; HttpGet request = new HttpGet(“http://url”); HttpResponse resp = new DefaultHttpClient().execute(request); HttpEntity entity = response.getEntity(); InputStream compressed = entity.getContent(); InputStream rawData = new GZIPInputStream(compressed); #DV14 #BatteryOptimization @maydintr
  • 18. Compress Data Derived from Jeff Sharkey’s presentation #DV14 #BatteryOptimization @maydintr
  • 19. Battery Monitoring • Monitor changes in charging state • Monitor Significant Changes in Battery Level • Maximize update rate when device is charging, minimize when discharging • Decrease update frequency when the battery is low #DV14 #BatteryOptimization @maydintr
  • 20. Wakelock • Q: What is wakelock? • A: A wake lock is a mechanism to indicate that your application needs to have the device stay on • Device battery life will be significantly affected by the use of this API. Do not acquire PowerManager.WakeLocks unless you really need them, use the minimum levels possible, and be sure to release them as soon as possible. #DV14 #BatteryOptimization @maydintr
  • 21. Wakelock • Use keepScreenOn instead of wakelock #DV14 #BatteryOptimization @maydintr
  • 22. Derived from Jeff Sharkey’s presentation #DV14 #BatteryOptimization @maydintr
  • 23. GPS • Use coarse network location if possible #DV14 #BatteryOptimization @maydintr
  • 24. Trepn Profiler • Real-time overlay-mode allows developers to see the impact of their actions on performance • Helps developers optimize code for CPU, power usage and network usage • Profiles the entire system or a single app • Displays accurate battery power readings with charts • Supports offline analysis of data • Can be started or stopped from a script for Automated tests • Eclipse plug-in #DV14 #BatteryOptimization @maydintr
  • 26. As a Result #DV14 #BatteryOptimization @maydintr
  • 27. Questions? • Twitter: @maydintr • Email: maydin@gmail.com • Web: www.ottodroid.net #DV14 #BatteryOptimization @maydintr