唤醒时间过长 Android,关于android:功耗问题之过多唤醒源-wakeups
和你一起一生学习,这里是程序员 Android
本篇文章次要介绍 Android 开发中的 性能 局部知识点,通过浏览本篇文章,您将播种以下内容:
过多的唤醒源wakeups
如何fix 过多唤醒源问题
最佳实际
1.过多的唤醒源wakeups
Wakeups 是 AlarmManager API 中的一种机制 ,它可让开发人员在指定工夫设置警报,进而达到唤醒设施的目标。您的利用通过应用 RTC_WAKEUP 或ELAPSED_REALTIME_WAKEUP 标记调用AlarmManager中的种set()办法来设置唤醒警报。当触发唤醒警报后,设施将退出低功耗模式,并在执行警报 onReceive())或 onAlarm()) 办法的同时holdspartial wake lock 。如果唤醒警报触发过多,它们可能会耗尽设施的电池电量。
为了帮忙您进步应用程序品质,Android会主动监督应用程序是否存在过多的唤醒警报,并以Android vitals的模式显示信息。无关如何收集数据的信息,请参阅Play控制台文档。
如果您的利用适度唤醒设施,则能够应用此页面中的领导来诊断和解决问题。
2. 如何fix 过多唤醒源问题
AlarmManager 是在Android平台的晚期版本中推出的,但随着工夫的推移,以前须要很多 AlarmManager 的用例当初更好新性能提供服务(比方: WorkManager)。本局部蕴含无关缩小唤醒警报的提醒,但从久远来看,请思考迁徙您的利用以遵循第三节最佳实际局部中的倡议。
确定您在利用中安顿唤醒警报的地位,并缩小触发这些警报的频率。这里有一些提醒:
查找对蕴含RTC_WAKEUP 或 ELAPSED_REALTIME_WAKEUP 标记的各种 AlarmManager set()) 办法的调用 。
咱们建议您将包,类或办法的名称包含在警报的标记名称中,以便您能够轻松地在源中辨认设置警报的地位。以下是一些其余提醒:
疏忽名称中的任何个人身份信息(PII),例如电子邮件地址。否则,设施将记录日志_UNKNOWN而不是警报名称。
不要以编程形式获取类或办法的名称,例如通过调用 getName()) ,因为Proguard可能会混同它们。而是应用硬编码的字符串。
不要在警报标签中增加计数器或惟一标识符。零碎将无奈聚合以这种形式设置的警报,因为它们都具备惟一的标识符。
解决问题后,通过运行以下ADB 命令来验证唤醒警报是否按预期工作:
adb shell dumpsys alarm
该命令提供无关设施上警报系统服务状态的信息。无关更多信息,请参见 dumpsys。
3. 最佳实际
仅当您的利用须要执行面向用户的操作(例如公布告诉或揭示用户)时,才应用唤醒警报。无关AlarmManager最佳做法的列表,请参阅Scheduing Repeating Alarms。
不要 AlarmManager
用于安顿后台任务,尤其是反复的或网络后台任务。倡议应用 WorkManager 执行后台任务,因为它具备以下长处:
批处理-合并作业,以缩小电池耗费
持久性-如果重新启动设施,则在重新启动实现后运行打算的WorkManager作业
条件-作业能够依据条件运行,例如设施是否正在充电或WiFi是否可用
无关更多信息,请参阅《后盾解决指南》。
不要 AlarmManager 用于安顿仅在利用程序运行时才无效的计时操作(换句话说,当用户退出应用程序时应勾销计时操作)。在这种状况下,请应用 Handler 该类,因为它更易于应用且效率更高。
情谊举荐:
Android 干货分享
至此,本篇已完结。转载网络的文章,小编感觉很优良,欢送点击浏览原文,反对原创作者,如有侵权,恳请分割小编删除,欢迎您的倡议与斧正。同时期待您的关注,感谢您的浏览,谢谢!
唤醒时间过长 Android,关于android:功耗问题之过多唤醒源-wakeups相关推荐
- 功耗问题之过多唤醒源 wakeups
和你一起终身学习,这里是程序员 Android 本篇文章主要介绍 Android 开发中的 性能 部分知识点,通过阅读本篇文章,您将收获以下内容: 过多的唤醒源wakeups 如何fix 过多唤醒源问 ...
- android 编译时间长,关于AS编译时间过长的问题
针对打包编译时间太长的解决方法: 1.尽量使用implementation 依赖配置 2.针对测试调试可以关闭lint lint是个耗时大户,而这个Lint Task一般在Debug的时候是不需要的, ...
- Android 系统(161)---N/O版本上图库打开一张图片,图片从模糊到清晰的时间太长
N/O版本上图库打开一张图片,图片从模糊到清晰的时间太长 与M版本比较,N版本上进图库打开一张图片,图片从模糊到清晰的时间太长 N上Google默认没有多线程encode而只有单线程encode,导致 ...
- android 系统优化(20)---MTK 平台唤醒时间优化1
MTK 平台唤醒流程: 一.唤醒流程: MTK平台唤醒流程是从power键或者其他按键按下开始,本文以mt6753n平台为例,通过分析kernel log来看驱动中整个唤醒的流程,上层的唤醒流程后续再 ...
- 苹果电脑开机长android,苹果笔记本开机白屏时间太长
朋友,我的现在用"优化大师"优化了,开机才用:"13秒"! 1.电脑开机时间太长(建议你关机重启),或一次打开的网页过多,造成电脑"超载运行" ...
- 2022-06-30 Android app WakeLock息屏状态下唤醒屏幕并且解锁demo
一.解锁 //屏锁管理器 KeyguardManager km= (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE ...
- android开发 wifi功率,一种基于Android系统的功耗计算方法与流程
本发明涉及系统功耗 技术领域: ,尤其涉及一种基于Android系统的功耗计算方法. 背景技术: :为了细粒度实时分析系统各部件以及应用程序的功耗特性,并且进一步挖掘用户的日常行为,我们需要建立功耗模 ...
- android 广播唤醒应用,Android通过广播实现灭屏和唤醒
1.要实现灭屏和唤醒,需要在Manifest文件添加如下权限: 2.以下是封装的一个工具类,实现屏幕唤醒和熄灭 package testWakeAndLock; import android.cont ...
- 【Android】Android模拟器的安装
目录结构: contents structure [+] 使用VMware安装Android模拟器 安装安卓(Android)系统前VMware虚拟机的配置 安装安卓(Android)系统 安装安卓( ...
最新文章
- webdriver中处理alert
- Swift和OC文件间的相互调用
- 平滑线反锯齿工具_PS大神常用选框类工具有哪些?其实很简单,小白认真学也能懂...
- CS231n:卷积神经网络
- 阿里云Centos系统使用密钥对登陆
- 时间序列(七): 高冷贵族: 隐马尔可夫模型
- 【存档】MySQL(8.0.12 .msi)安装文档
- 从现实抽象出类的步骤
- MySql递归查询上级,下级
- Qt三方库开发技术:Qt应用内部打开PDF文件
- vue-element-admin 后台管理系统
- 在美国读博士的那七年
- 用Auto.js批量删除空间说说
- 嵌入式Linux容器技术
- 5G NR Polar码简介(一)
- 小白菜病害检测图像数据集介绍
- 基础第三-MySQL-多表查询-索引-事务笔记
- 新鲜出炉 日常家用电器电磁辐射危险排行榜(iPad3 iMac)
- 【云原生之Docker实战】使用Docker部署Flarum开源论坛
- python:print函数打印空行