唤醒时间过长 Android,关于android:功耗问题之过多唤醒源-wakeups
和你一起一生学习,这里是程序员 Android本篇文章次要介绍 Android 开发中的 性能 局部知识点,通过浏览本篇文章,您将播种以下内容:过多的唤醒源wakeups如何fix 过多唤醒源问题最佳实际1.过多的唤醒源wakeupsWakeups 是 AlarmManager API中的一种机制,它可让开发人员在指定工夫设置警报,进而达到唤醒设施的目标。您的利用通过应用RTC_WAKEU...
和你一起一生学习,这里是程序员 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 干货分享
至此,本篇已完结。转载网络的文章,小编感觉很优良,欢送点击浏览原文,反对原创作者,如有侵权,恳请分割小编删除,欢迎您的倡议与斧正。同时期待您的关注,感谢您的浏览,谢谢!
更多推荐
所有评论(0)