Optimizing App-Initiated Network Use

  Network traffic initiated by your app can usually be significantly optimized, since you can plan for what network resources it needs and set a schedule for accessing them. By applying careful scheduling, you can create significant periods of rest for the device radio and, thereby, save power. There are several Android APIs that can help with network access scheduling, and some of these functions can coordinate network access for other apps, further optimizing battery performance.

  This lesson teaches you how to reduce battery consumption by applying techniques for optimizing app-initiated network traffic.

Batch and Schedule Network Requests

  https://youtu.be/Ecz5WDZoJok

  On a mobile device, the process of turning on the radio, making a connection, and keeping the radio awake uses a large amount of power. For this reason, processing individual requests at random times can consume significant power and reduce battery life. A more efficient approach is to queue a set of network requests and process them together. This allows the system to pay the power cost of turning on the radio just once, and still get all the data requested by an app.

  https://youtu.be/orlRuEwlDoM

  Using a network access scheduler API for queuing and processing your app data requests can significantly increase the power efficiency of your app. Schedulers conserve battery power by grouping requests together for the system to process. They can further improve efficiency by delaying some requests until other requests wake up the mobile radio, or waiting until the device is charging. Schedulers defer and batch network requests system-wide, across all apps on the device, which gives them an optimizing advantage over what any individual app can do.

Choosing a batch-and-scheduling API

  Android provides three different APIs for your app to batch and schedule network requests. For most operations, these techniques are functionally equivalent. These APIs are listed in the following table with the most highly recommended first.

Scheduler Requirements Implementation Ease
GCM Network Manager GCM Network Manager requires that your app use the Google Play services client library, version 6.1.11 or higher — use the latest available version. Straightforward
Job Scheduler Job Scheduler does not require Google Play services, but is available only when targeting Android 5.0 (API level 21) or higher. Straightforward
Sync Adapter for scheduled syncs Sync Adapter does not require the Google Play services client library and has been available since Android 2.0 (API level 5). Complex

  Note: For scheduled data synchronization, you should always prefer GCM Network Manager or Job Scheduler over Sync Adapter if your requirements allow it.

Allow System to Check for Connectivity

  One of the most serious and unexpected causes of battery drain is when a user travels beyond the reach of any cell tower or access point. In this situation, the user is typically not using their device, but they notice the device getting warm, and then see that the battery is low or has run out.

  In this scenario, the problem is that an app is running a background process that keeps waking up the mobile radio at regular intervals to search for a cellular signal, but finds none. Searching for a cell signal is one of the most power-draining operations there is.

  The way to avoid causing this kind of problem for a user with your app is to use a battery-efficient method for checking connectivity. For app-initiated network requests, use a scheduler, which automatically usesConnectivity Manager to check for connectivity before calling into your app. As a result, if there's no network, the Connectivity Manager conserves battery because it performs the connectivity check itself, without loading the app to run the check. Battery is further conserved because schedulers use exponential backoff to check for connectivity less frequently as time progresses.

Android 性能优化(8)网络优化( 4)Optimizing App-Initiated Network Use的更多相关文章

  1. Android性能优化系列---管理你的app内存

     文章出处:http://developer.android.com/training/articles/memory.html#YourApp Random-access memory(RAM)在任 ...

  2. Android 性能优化(4)Optimizing Layout Hierarchies:用Hierarchy Viewer和Layoutopt优化布局

    Optimizing Layout Hierarchies This lesson teaches you to Inspect Your Layout Revise Your Layout Use ...

  3. Android 性能优化的方面方面都在这儿

    又到周六了,鸿洋的不定期的周六放送又来了~~这次来谈谈性能优化吧.大家在工作中或多或少都会拿自家的应用和竞品app做比对,不可避免的需要做一些app性能优化的活.很多时候可能是策略上的调整,不过还是有 ...

  4. android app性能优化大汇总(google官方Android性能优化典范 - 第2季)

    Google前几天刚发布了Android性能优化典范第2季的课程,一共20个短视频,包括的内容大致有:电量优化,网络优化,Wear上如何做优化,使用对象池来提高效率,LRU Cache,Bitmap的 ...

  5. Android性能优化系列之App启动优化

    Android性能优化系列之布局优化 Android性能优化系列之内存优化 Android性能优化系列之apk瘦身 应用的启动速度缓慢是我们在开发过程中常常会遇到的问题,比方启动缓慢导致的黑屏.白屏问 ...

  6. Android 性能优化(5)网络优化 (1) Collecting Network Traffic Data 用Network Traffic tool :收集传输数据

    Collecting Network Traffic Data 1.This lesson teaches you to Tag Network Requests 标记网络类型 Configure a ...

  7. Android性能优化问题总结

    性能优化这块,分为UI性能优化.内存优化.数据库优化.网络优化.耗电优化等等.可以从1.如何发现问题,2.怎么解决问题,3.解决效果对比,这几个方面去描述.举个简单例子——UI优化,可以从 UI出现什 ...

  8. Android性能优化之渲染

    Google近期在Udacity上发布了Android性能优化的在线课程,目前有三个篇章,分别从渲染,运算与内存,电量三个方面介绍了如何去优化性能,这些课程是Google之前在Youtube上发布的A ...

  9. Android 性能优化探究

    使用ViewStub动态载入布局.避免一些不常常的视图长期握住引用: ViewStub的一些特点: 1. ViewStub仅仅能Inflate一次,之后ViewStub对象被置空:某个被ViewStu ...

  10. 我把阿里、腾讯、字节跳动、美团等Android性能优化实战整合成了一个PDF文档

    安卓开发大军浩浩荡荡,经过近十年的发展,Android技术优化日异月新,如今Android 11.0 已经发布,Android系统性能也已经非常流畅,可以在体验上完全媲美iOS. 但是,到了各大厂商手 ...

随机推荐

  1. codevs2597 团伙

    题目描述 Description 1920年的芝加哥,出现了一群强盗.如果两个强盗遇上了,那么他们要么是朋友,要么是敌人.而且有一点是肯定的,就是: 我朋友的朋友是我的朋友: 我敌人的敌人也是我的朋友 ...

  2. KMP算法 C#实现 字符串查找简单实现

    KMP算法 的C#实现,初级版本 static void Main(string[] args) { #region 随机字符 StringBuilder sb = new StringBuilder ...

  3. Evaluate Reverse Polish Notation(逆波兰式)

    Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, ...

  4. Canon iP2780/iP2788 清零软件

    http://www.drvsky.com/driver/iP2780_Tools.htm http://www.dyjqd.com/soft/6085.html#download http://v. ...

  5. html自动换行

    对于div,p等块级元素 正常文字的换行(亚洲文字和非亚洲文字)元素拥有默认的white-space:normal,当定义的宽度之后自动换行html css 1.(IE浏览器)连续的英文字符和阿拉伯数 ...

  6. openstack setup demo Enviroment

    Enviroment 本文包含以下部分. Host networking Network Time Protocol (NTP) OpenStack packages SQL database NoS ...

  7. Map根据value排序ASC DESC

    原文:http://blog.csdn.net/k21325/article/details/53259180 需求有点刁钻,写关键词组合匹配标题的时候,遇到关键词像这样 XXX XXX 1222 X ...

  8. 多路转接模型之poll

    poll系统调用和select类似.也是在指定时间内轮询一定数量的文件描写叙述符,以測试当中是否有就绪者.poll和select效率差点儿相同,仅仅是其使用接口相对简单些,poll不在局限于1024个 ...

  9. MySQL 高可用架构在业务层面的分析研究

    )读多写少 虚线表示跨机房部署,比方电子商务系统.一个Master既有读也有些写.对读数据一致性须要比較重要的.读要放在Master上面. M(R)仅仅是一个备库.仅仅有M(WR)挂了之后,才会切换到 ...

  10. 复合页( Compound Page )

    复合页(Compound Page)就是将物理上连续的两个或多个页看成一个      独立的大页,它能够用来创建hugetlbfs中使用的大页(hugepage).      也能够用来创建透明大页( ...