1.android doze Դ??
2.分析 Android 耗电原理后,飞书是这样做耗电治理
android doze Դ??
飞书在进行耗电优化时,深入理解了 Android 系统的耗电原理,包括模块功率和耗时统计。他们从 power_profile.xml 文件中获取每个模块的功耗数据,通过 BatteryStatsService 记录模块的oraclejdbc7源码运行时长。计算耗电量时,通过 BatteryStatsHelper 分析应用的使用情况,例如CameraPowerCalculator模块的简单统计。
Doze模式是关键的节能策略,分为Deep Doze和Light Doze,分别在满足不同条件后暂停非关键活动以节省电量。Deep Doze更严格,iproute2源码下载而Light Doze允许在移动状态下进入。进入和退出策略涉及多种状态转换,通过DeviceIdleController类的源码实现。
飞书的耗电治理策略主要针对模块和状态进行,包括CPU、GPU/Display、网络、GPS、音频/摄像头/视频等,以及前台和后台状态。他们强化了监控体系,以精确分析每个模块的arm9usbohci源码功耗,并结合Android的能耗优化策略,提升整体的电量效率。
通过完善功耗分析和监控,飞书确保在维持功能和服务性能的同时,有效地降低不必要的电量消耗。这些措施帮助他们建立了更为精细化的能耗治理方案。
分析 Android 耗电原理后,飞书是这样做耗电治理
飞书耗电治理策略深入解析
飞书在进行耗电治理的专项优化时,深入分析了Android系统的耗电原理,并分享了其耗电治理的规划。以下内容将从Android耗电统计原理、模块功率、qq友乐园网站源码模块耗时、耗电计算以及Android的耗电优化策略等多个方面进行详细阐述。
Android耗电统计原理
Android系统通过模块功率×模块耗时的公式进行耗电统计。由于电流仪不适用于正常状态下的手机硬件,所以系统使用模块功率与模块耗时的乘积进行估算。尽管这种方式并非完全精确,但仍能大致反映各应用电量消耗的大小。
模块功率
模块功率在framework的power_profile.xml文件中由厂商提供,文件中规定了每个模块的功耗。以一加9的测试机为例,power_profile文件显示了各种模块的功耗情况。模块功耗的流量攻击易语言源码详细说明可以在谷歌提供的文档中查阅。
模块耗时
BatteryStatsService调用BatteryStats对象统计模块耗时。BatteryStats的构造函数初始化各个模块的Timer,用于统计耗时,并将数据存储在batterystats.bin文件中。不同模块如Wifi、音频和前台活动等,通过Timer进行时长统计,并根据UID决定是否计入统计数据,系统据此计算应用耗电。
耗电计算
根据每个模块的耗时和功耗,计算出各个模块的耗电量。这一过程主要在BatteryStatsHelper类中完成。在Setting应用中调用BatteryStatsHelper的refreshStats()函数来统计应用耗电详情,其中processappUsage和processMiscUsage分别用于计算应用和杂项(如WIFI、通话)的耗电。
Android耗电优化策略
Doze模式是一种系统级的耗电优化策略,包括Deep Doze和Light Doze两种模式。Deep Doze在手机息屏且静止分钟后启用,限制系统和非白名单应用的活动。Light Doze允许在息屏移动状态下进入,限制条件较Deep Doze宽松。
Doze模式实现原理
Doze模式的实现基于DeviceIdleController类。从ACTIVE状态进入INACTIVE状态的入口方法是becomeInactiveIfAppropriateLocked。随后,根据不同的模式(Deep Doze或Light Doze)进入不同的状态,如STATE_IDLE或STATE_IDLE_MAINTENANCE。进入状态后,系统会限制应用活动并定期提供解除限制的窗口期。
Doze模式优化策略
在Doze模式下,系统限制充电状态改变、屏幕息屏等操作,并在特定条件下启用Doze模式。Deep Doze限制系统和非白名单应用的活动,而Light Doze限制更加宽松。两者均提供白名单,允许特定应用在Doze模式下保持活动。
Standby模式
Standby模式针对单个应用进行耗电优化,根据应用最近使用时间与频率将其分组。不同组别下,对应用中的Jobs、Alarms和Network的使用限制程度不同。
电池历史分析
Android提供了Battery Historian工具进行电量使用的分析。通过Battery Historian图表,可以直观了解Doze模式下应用行为变化,如BLE扫描、GPS活动减少以及CPU、wakelock等频率降低的情况。此外,Battery Historian还能获取应用的耗电量详情。
飞书耗电治理
飞书的耗电治理方案侧重于监控完善与耗电管理,包括模块治理和状态治理。模块治理涵盖CPU、GPU、网络、GPS、音频、相机、视频等关键领域。状态治理针对前台与后台应用状态进行优化。为了更有效地进行治理,飞书完善了功耗分析和监控体系,包括CPU消耗监控、GPU与Display监控、网络监控、GPS监控、音频、相机、视频监控以及整体和场景电量消耗监控。