禁用广播接收器

确保广播接收器在真正须要时才运行指令,在onResume中当中广播接收器,在onPause中禁用。

在manifest文件里声明广播接收器时,事先默认配置成禁用的

<receiver android:name=".BatterReceiver" android:enabled="false">

网络

1. 后台数据。后台传输数据时。推断ConnectivityManager的getBackgroundDataSetting()的返回值,假设为true。则进行后台传输数据,假设为false,则不进行后台传输数据

2. 数据传输,手机设备中最耗电的部件依次是:Wi-Fi-》3G-》CPU-》屏幕(都在最高负载时的数据),所以在数据传输时一定不要长时间的占用网络资源,而是应该突发性地传输一段时间内所需的全部资源,关于这个有一篇论文:http://www.research.att.com/articles/featured_stories/2011_03/201102_Energy_efficient?fbid=1N507ukp1ch,最后结论就是:The
single most important measure: transmit as much data as possible in a single burst and then end the connection.

1.使用GZIP压缩文本数据,使用GZIPInputStream类訪问数据

2.假设可能的话。使用JPEG而不是PNG的图片文件

3.使用匹配设备分辨率的资源(比方。不必为96x54大小的显示空间下载1920x1080的图片)

位置

1. 在不须要监听位置时注销位置监听器

2. 减小更新位置的频率

3. 使用合适的位置服务。android提供了三种位置服务,GPS、网络定位、被动定位(你的应用会等待其它应用。服务或系统组件发出定位请求,而后和其它监听器一起接受更新)

4. 使用Criteria类来筛选合适的定位服务

5. 使用最后已知位置,能够提高用户体验

传感器

减少传感器数据的更新频率来达到省电的目的

图形

在Android应用性能优化这本书中的第八章有专门的介绍

提醒AlarmManager

ELAPSED_TIME

ELAPSED_TIME_WAKEUP

RTC

RTC_WAKEUP

使用ELAPSED_TIME和RTC表示。计时完时假设设备没有被唤醒则等待设备被唤醒时才运行对应的动作

所以要尽量使用这两个參数

另外,使用AlarmManager的setInexactRepeating也能够达到省电的目的,主要差别是在系统怎样安排提醒到时,Android能够调整实际的触发事件。同一时候触发多个提醒(可能来自多个应用),这样的提醒更节能,系统也避免了出现不必要的唤醒。

WakeLock

获得wakelock之后一定要记得释放

为了防止出现故障,建议使用带超时的WakeLock.acquire()版本号,他会在超过时限后释放WakeLock。

假设用到的屏幕是和Activity中的View关联的,也能够在布局文件里使用XML属性android:keepScreenOn。

这样的方法的优点是,不必冒着忘记释放WakeLock的风险,交由系统处理。也不须要在manifest文件里设置权限

Android App优化之延长电池续航时间的更多相关文章

  1. Android App优化之ANR详解

    引言 背景:Android App优化, 要怎么做? Android App优化之性能分析工具 Android App优化之提升你的App启动速度之理论基础 Android App优化之提升你的App ...

  2. 4.Android App 优化之消除卡顿

    转载:http://gold.xitu.io/post/582583328ac247004f3ab124 1, 感知卡顿 用户对卡顿的感知, 主要来源于界面的刷新. 而界面的性能主要是依赖于设备的UI ...

  3. Android App优化建议(转载)

    假如要Google Play上做一个最失败的案例,那最好的秘诀就是界面奇慢无比.耗电.耗内存.接下来就会得到用户的消极评论,最后名声也就臭了.即使你的应用设计精良.创意无限也没用. 耗电或者内存占用等 ...

  4. Android App 性能优化实践

    本文记录了Android App优化需要用到的工具和以及在实践中的Tips.也算对我这半年来部分工作的总结. 工具 Hierarchy Viewer 是 Android SDK 自带的 Layout ...

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

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

  6. 十大技巧优化Android App性能

    无论锤子还是茄子手机的不断冒出,Android系统的手机市场占有率目前来说还是最大的,因此基于Android开发的App数量也是很庞大的. 那么,如何能开发出更高性能的Android App?相信是软 ...

  7. 优化Android App性能?十大技巧必知!

    无论锤子还是茄子手机的不断冒出,Android系统的手机市场占有率目前来说还是最大的,因此基于Android开发的App数量也是很庞大的.那么,如何能开发出更高性能的Android App?相信是软件 ...

  8. Android APP 性能优化的一些思考

    说到 Android 系统手机,大部分人的印象是用了一段时间就变得有点卡顿,有些程序在运行期间莫名其妙的出现崩溃,打开系统文件夹一看,发现多了很多文件,然后用手机管家 APP 不断地进行清理优化 ,才 ...

  9. Android app 性能优化的思考--性能卡顿不好的原因在哪?

    说到 Android 系统手机,大部分人的印象是用了一段时间就变得有点卡顿,有些程序在运行期间莫名其妙的出现崩溃,打开系统文件夹一看,发现多了很多文件,然后用手机管家 APP 不断地进行清理优化 ,才 ...

随机推荐

  1. SpringMVC框架中的异常解析器-ExceptionHandler和HandlerExceptionResolver

    SpringMVC框架中,处理异常还是挺方便的,提供了一个异常解析器. 处理局部异常 @Controller public class AccessController { /** * 处理这个Con ...

  2. 【习题 8-8 UVA - 1612】Guess

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] double千万不要用==判断相等... 而且两个保留2位有效数字的数字x,y 判断它们相等应该这样. int temp1 = ro ...

  3. open阶段的一致性检验(二)

    SQL> select * from v$version where rownum=1; BANNER --------------------------------------------- ...

  4. 读阮一峰《ECMAScript 6 入门》小结

    读阮一峰<ECMAScript 6 入门>小结,http://es6.ruanyifeng.com/ 1. ES6简介 Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转 ...

  5. BZOJ3676: [Apio2014]回文串(SAM+Manacher/PAM)

    Description 考虑一个只包含小写拉丁字母的字符串s.我们定义s的一个子串t的“出 现值”为t在s中的出现次数乘以t的长度.请你求出s的所有回文子串中的最 大出现值. Input 输入只有一行 ...

  6. python3操作Excel

    1.安装openpyxl模块: 在cmd命令窗执行命令 pip install openpyxl    安装openpyxl模块 from openpyxl import load_workbook ...

  7. Python 之Numpy应用

    NumPy 数据类型 numpy 支持的数据类型比 Python 内置的类型要多很多,基本上可以和 C 语言的数据类型对应上,其中部分类型对应为 Python 内置的类型.下表列举了常用 NumPy ...

  8. Dubbo学习总结(4)——Dubbo基于Zookeeper实现分布式实例

    入门实例解析 第一:provider-提供服务和相应的接口 创建DemoService接口 [java] view plaincopyprint? <span style="font- ...

  9. iOS_06_基本运算符

    一.算术运算 c语言一共有34种运算符,包括了常见的加减乘除 1.加法运算+ # 除了能做加法运算,还能表示正号:+5.+90 2.减法运算- # 除了能做减法运算,还能表示符号:-10.-200 3 ...

  10. Altium Designer布局移动原件的问题