Android性能优化—耗电优化

Android 性能优化(一):闪退、卡顿、耗电、APK 性能优化自2008年智能时代开始,Android操作系统开启一路高歌智能机发展之路。时至今日Android系统性能已经非常流畅了。到了不同层次的开发者手里,技术水平参差不齐,使得应用安装到配置极好的手机上依然存在体验差的现象。App性能优化是提升用户体验的永恒主题,也成为工程者最终的使命。性能优化从用户体验角度有四个性能优化方向。 阅读详情

作为移动设备,电池重要性不言而喻。

怎么耗电图片

通过上图可以知道,用户通过软件调用硬件资源而产生了耗电,那么我们可以控制软件调用硬件的频次以此达到降低耗电的目的。那么我们有哪些硬件是可以控制的呢?

移动设备元件耗电大户

图片

下面我就挑几个常用的元器件聊一聊

一、视频、音频、收音机

在使用这些功能的使用时候,他牵涉的不单单一个元器件的问题,而是更多,所以我们在使用这些功能的时候要做到离开即刻关闭释放。早期做直播的时候,朋友问我为啥打开直播看了半小时就手机发烫呢,如果你的应用也出现此种情况,就要赶快检测以下几点了:

1、线程数是否暴增。

2、长链接数是否增加了,是否可以考虑合并。

3、解码效率是否很快。

4、弹幕是否做到复用了,是否存在内存泄露问题。

5、动画特效是否及时释放,执行效率是否很快。

6、承载功能的实例是否存在多份。

7、检查内存、cpu使用情况。

二、无线网络

无线网络包括移动网络和wifi两种情况。通过发现移动网络是比wifi更加耗电的。

移动网络

移动网络数据传输有3种状态:高功率状态:网络激活,允许设备以最大传输速率进行传输。

低功率状态:传输速率低于15kbps,耗电是高功率状态的一半,一般不能直接从程序中进入该状态,而是由高功率状态降级进入。

空闲状态:没有数据连接需要传输,耗电最少。可以看出,三种状态耗电不同,要使耗电最低应该尽量保持状态在空闲或低功率下。从空闲状态转换到高功率状态大概需要2s,从低功率状态转换到高功率状态需要1.5s。应用中每创建一个网络连接,网络射频都会转到高功率状态,数据传输完毕降回低功率状态,降回过程需要5s,这5s耗电量保持在高功率状态,低功率降回到空闲状态需要12s,期间一直保持低功率状态。所以每次的数据传输都将导致将近20s电量的消耗。

WIFI网络

WIFI在active状态下有4种模式:低功率、高功率、低传输、高传输。

当从低(高)功率状态传输数据时,WIFI会暂时进入相应的低(高)传输状态,一旦数据传输完毕就回到初始状态。WIFI耗电是受包率(每秒接收和发送的数据包)和网速因素影响的。如果因素良好,即网络良好时,数据传输的很快,所以WIFI的高功率状态维持时间很短。这也就是为什么说移动网络耗电高于WIFI耗电,因为同样的数据大小传输时,移动网络固定状态转换就需要近20s的电量消耗。通过上面了解网络连接过程,应该心里有了大概的优化建议。

网络优化方案:

1、文本和文件压缩传输。不管发送还是请求数据,在数据传输过程中使用gzip将数据进行压缩。经过压缩的数据需要更短的时间传输即可完成,这样使得无线所处的高功率状态时间更短,从而减少了耗电。

2、精简文本文件,去掉文本中空行、空格、注释等无意义内容。

3、请求一个图片时,客户端提供一个分辨率大小,服务器根据分辨率把裁剪缩放后的图片给客户端返回,采用使用webp图片。

4、减少网络高功率保持时间。

5、减少网络请求次数

a、使用缓存。

b、合并请求,将多个接口请求批量请求。

三、CPU

cpu作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。通过上面的两个概念我们大概知道,一个我们负责设备运算和控制的元器件,一个是程序运算调度的最小单位。

CPU被高频次使用大概有以下几个原因:

1、程序运算复杂(高运算量),例如高精度等,导致CPU满负荷运载

2、程序线程短时间内无规则抢占CPU资源。

3、wakelock唤醒。

4、定时器。

四、其他

我们用的多是GPS定位、Sensor遥感,只有当我们需要的时候才去打开这些硬件资源,并且及时释放。

【转载】Android功耗改进 最近几年中,Google在一直极力的改进Android系统的续航能力。在本文中,我们将看到Andrdoi自5.0到8.0这几个版本中对于功耗方面的改进。 前言 移动设备的续航时间无疑是所有用户都非常在意的。我们都希望自己的手机一次充电可以使用更长的时间。但遗憾的是,近几年移动设备的电池元件一直都没有重大的技术突破。并且,随着硬件性能的提升却带来了更多的电量消耗。 如果你对比过近几年的An... 阅读详情

相关推荐

android系统休眠下的功耗控制参考

android4.0.4系统休眠下的功耗控制参考 , kernel 3.0.15

android系统功耗原理和优化

https://blog.youkuaiyun.com/zhangbijun1230/article/details/80164118 https://blog.youkuaiyun.com/zhangbijun1230/article/details/80741113 https://blog.youkuaiyun.com/DKBDKBDKB/article/details/84616521

weixin_41355766的博客 465

MAX30102心率血氧传感器

估算AC、DC值的方法如下:找两个波谷点,两个波谷点之间有一个波峰点,两个波谷点相连成一条直线,与Y轴平行的线穿过波峰点会与两个波谷点连接成的直线相交于一点,这个点就是DC点,DC点的Y轴对应值就是直流分量,AC分量的值为波峰点到DC点之间的差值。在医院测量中常用的一种血氧采集方式,如下图所示,光电传感器和光源分别置于手指的两侧,光源穿过手指被另一侧的光电二极管接收,根据光衰减量计算血氧浓度。那么,根据上面的Beer-Lambert 定理,针对测量的具体场景,测量过程的衰减为三层穿透物质衰减量的叠加。

qq_41861711的博客 1万+

MTK 功耗优化(1)---MTK PerfService

在MTK芯片上如何控制CPU的核数和频率-MTK PerfService一句话:PerfService就是用来调整CPU/GPU资源的。对于老的API,可以更简单地讲就是调CPU核数和CPU频率的。简介kernel中实现了两个driver,一个负责控制开关CPU的核数,叫做hot-plug驱动,另一个负责调整CPU的频率,叫做DVFS驱动。 kernel中的driver会根据系统的负载情况下,自动...

zhangbijun1230的专栏 3371

Android开发者必看:5分钟搞定MQTT客户端连接EMQX服务器(附完整代码)

本文为Android开发者提供了一份快速实现MQTT客户端连接EMQX服务器的实战指南。通过引入Eclipse Paho SDK,详细讲解了从项目配置、权限申请到核心连接、主题订阅与消息发布的完整流程,并附有即拿即用的Kotlin代码,帮助开发者在物联网应用中高效集成轻量级实时通信功能。

weixin_29228781的博客 272

S32K1XX调试--快速定位HardFault

1、背景 程序运行,发现程序跑飞到HardFault,但不清楚为什么会跑到HardFault中断处理函数去。 2、分析 要想知道为什么会跑到HardFault_Handler中去,就很有必要了解一下,程序上一条执行的是那条命令。 根据汇编指令可以定位上条指令,但如果对汇编指令不是很了解的话,那就很头疼了 根据单步运行也能实现定位,但如果程序量很大,又很杂,可能花费的时间就比较久些。 3、问题查找 提供一种不需要懂汇编指令的查找方法,方法如下: 在中断处理函数中插入以下代码,以及另外定义

ping_devil的博客 4020

android 功耗分析方法和优化

标签: android 功耗 高通平台   分类:功耗 1、底电流调试(Rock Bottom Current Optimization) 底电流在手机飞行模式下调试。每个平台的底电流数据可能不一样,具体可以参考release出来的Current Consumption Data文档或者release note。一般情况下的底电流参考数据上限是: 5

feitian_666的博客 2万+

halcon第一讲:基本操作

本文通过Blob分析提取出图片中的硬币,来熟悉halcon的基本操作。 1、读取图像,halcon读取图像有三种方式:1)、文件->读取图像;2)、通过助手;3)、代码 *打开窗口 dev_open_window (0, 0, 512, 512, 'black', WindowHandle) *读取图像 read_image (Image,'1.png') 读取的图像如下: 2...

qq_24946843的博客 3万+

android性能优化之耗电优化

android性能优化之耗电优化

qq_23081779的博客 702

【STK】手把手教你利用STK进行导弹和反导仿真04 - STK/MMT模块03 导弹飞行工具应用案例

飞行设置的工具栏就在附加窗口的中间,首先点击左边的General,修改这个项目的名字。然后在下拉的System中选择导弹的类型,这里我们选择远程。(4)输出数据文件到STK,任务窗口里选择Export Manager项,飞行数据输出到STK。项目可以命名为Test;(1)首先建立新项目,点击Flight菜单中的New Flight选项,见下图。首先看世界地图中间的红圈,是一个导弹形状的图标,这个图标表示的是导弹的发射点。选择下面的Export Manager,依次勾选红框的选项。我们拖动这个导弹的图标,

weixin_44184852的博客 1631

ARM CoreLink 系列 5.1.1 -- CI-700 System Address Map 】

所有的CHI 命令都包含一个 Source ID 和 Target ID, 其中 Source ID 可以来自于 RN Node, Target ID 可以来自于HN node或者其他 SN node. 其中 Target ID 是通过 SAM解析传入的地址得到的。对于 CI-700中的所有 RN Node 中的 SAM 多会进行配置,因为RN Node 访问的是整个地址空间,不同的地址空间会有不同的属性(I/O, DRAM),所以会对RN SAM 配置多个不同属性的区域。

CodingCos的博客 771

android之性能优化之耗电优化

手机一直攻克不了的一个难题,可能就是续航了,所以合理的使用电池,控制耗电量,更我们的工作和生活息息相关。 耗电产生的原因:保持cpu一直运行 GPS定位的时候 用的时候打开,不用的时候关闭 即时通讯心跳 调整心跳的频率 网络优化 尽量合并接口 Android性能优化篇 Android性能优化 Android性能优化之UI重绘卡顿 Android性能优化之内存优化 android之性...

jhonjson的博客 308

【信号与系统】Multisim 仿真信号合成与分解

软件 Multisim 进行方波信号的产生、分解和合成,观察信号波形的分解与合成,加深对信号频谱的理解。

AXYZdong的博客 2万+

Android如何分析耗电方面性能优化

通过使用 Battery Historian 和 Android Profiler 等工具分析应用的电池使用情况,并采用适当的优化策略(如减少后台任务、优化网络请求、优化位置更新、减少 CPU 和 UI 更新的开销),可以显著减少应用的电池消耗。定期进行性能分析和优化,确保应用在不同设备上都能高效运行,提升用户体验。

彬_小彬的博客 2926

银河麒麟桌面系统批量交付:封装自动化ISO镜像,百台装机效率提升10倍

麒麟桌面系统自动化ISO镜像定制摘要 本文详细介绍麒麟桌面版ISO安装镜像的定制方法,通过修改系统文件实现自动化安装部署。主要内容包括:1) 挂载原版ISO并提取文件;2) 使用unsquashfs解压系统文件进行定制化修改,包括添加系统标记配置;3) 配置ky-installer.cfg自动应答文件,设置安装参数如用户名、密码、分区方案等;4) 修改grub引导配置启用自动安装模式。该流程支持磁盘加密、自定义分区、自动登录等功能,生成的定制镜像可满足批量部署需求,显著提升系统安装效率。

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 1508

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【Android -- 性能优化】耗电优化

在移动设备开发中耗电量是一个非常重要的指标,如果用户一旦发现我们的应用非常耗电,不好意思,他们大多会选择卸载来解决此类问题,所以耗电量是一个十分重要的问题。

Kevin Learn Android 6502

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Android 性能优化(62)---存检测、卡顿优化、耗电优化、APK瘦身——详解篇

Android 性能优化,内存检测、卡顿优化、耗电优化、APK瘦身——详解篇置顶2017年07月11日 17:02:27阅读数:9351导语    自2008年智能时代开始,Android操作系统一路高歌,10年智能机发展之路,如今 Android 9.0 代号P  都发布了,Android系统性能已经非常流畅了。但是,到了各大厂商手里,改源码自定系统,使得Android原生系统变得鱼龙混杂。另外...

zhangbijun1230的专栏 3349

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

android 系统性能优化(70)---Android 性能优化,内存检测、卡顿优化、耗电优化、APK瘦身——详解篇

Android 性能优化,内存检测、卡顿优化、耗电优化、APK瘦身——详解篇导语    自2008年智能时代开始,Android操作系统一路高歌,10年智能机发展之路,如今 Android 9.0 代号P  都发布了,Android系统性能已经非常流畅了。但是,到了各大厂商手里,改源码自定系统,使得Android原生系统变得鱼龙混杂。另外,到了不同层次的开发工程师手里,因为开发技术的水平参差不齐,...

zhangbijun1230的专栏 2716

android 耗电分析与性能优化

1.官方的建议1.1 电池续航时间优化(Optimizing Battery Life)参考文章:优化电池使用时间已有中文的详细说明,此处做简要说明:(1)监控电池电量和充电状态(Monitoring the Battery Level and Charging State)通过系统广播,获取充电状态和电池电量的变化来调整数据更新等操作;如在充电时,更新数据及应用,在低电量时,减少更新频...

sina:崔逸的博客 403

Android 性能优化:08.耗电优化

本文介绍了安卓性能优化,关于耗电优化的内容和具体的优化方法与步骤。

Meteors.的博客 468

Android 性能优化之内存检测、卡顿优化、耗电优化、APK瘦身

Android 性能优化之内存检测、卡顿优化、耗电优化、APK瘦身   导语       自2008年智能时代开始,Android操作系统一路高歌,10年智能机发展之路,如今 Android 9.0 代号P  都发布了,Android系统性能已经非常流畅了。但是,到了各大厂商手里,改源码自定系统,使得Android原生系统变得鱼龙混杂。另外,到了不同层次的开发工程师手里,因为开发技术的水...

zhangbijun1230的专栏 1455

Android程序性能优化——ANR、卡顿优化、内存优化、耗电优化、APK大小优化以及启动速度和实战项目

ANR产生的原因 只有当应用程序的UI线程响应超时才会引起ANR,超时产生原因一般有两种。 1,当前的事件没有机会得到处理,例如UI线程正在响应另一个事件,当前事件由于某种原因被阻塞了。 2,当前的事件正在处理,但是由于耗时太长没能及时完成。 根据ANR产生的原因不同,超时事件也不尽相同, 从本质上将,产生ANR的情况有三种,大致可以对应到android中四大组件中的三个(Activity/View,BroadcastReceiver和Service)。 KeyDispatchTimeout 1,最常见的一

datian1234的博客 905

最全Android程序性能优化——ANR、卡顿优化、内存优化、耗电优化,Android开发自学技巧

Android学习PDF+架构视频+源码笔记高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料这几块的内容。非常适合近期有面试和想在技术道路上继续精进的朋友。网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化学习资料的朋友,可以戳这里获取一个人可以走的很快,但一群人才能走的更远!

2401_84519859的博客 929

Android性能优化(四),网络优化 && 耗电量优化

啊

可乐 4262
上一篇: App业务数据统计
下一篇: Android热修复方案浅析
码农驿站
博客等级 码龄10年 5粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值