和你一起一生学习,这里是程序员 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相关推荐

  1. 功耗问题之过多唤醒源 wakeups

    和你一起终身学习,这里是程序员 Android 本篇文章主要介绍 Android 开发中的 性能 部分知识点,通过阅读本篇文章,您将收获以下内容: 过多的唤醒源wakeups 如何fix 过多唤醒源问 ...

  2. android 编译时间长,关于AS编译时间过长的问题

    针对打包编译时间太长的解决方法: 1.尽量使用implementation 依赖配置 2.针对测试调试可以关闭lint lint是个耗时大户,而这个Lint Task一般在Debug的时候是不需要的, ...

  3. Android 系统(161)---N/O版本上图库打开一张图片,图片从模糊到清晰的时间太长

    N/O版本上图库打开一张图片,图片从模糊到清晰的时间太长 与M版本比较,N版本上进图库打开一张图片,图片从模糊到清晰的时间太长 N上Google默认没有多线程encode而只有单线程encode,导致 ...

  4. android 系统优化(20)---MTK 平台唤醒时间优化1

    MTK 平台唤醒流程: 一.唤醒流程: MTK平台唤醒流程是从power键或者其他按键按下开始,本文以mt6753n平台为例,通过分析kernel log来看驱动中整个唤醒的流程,上层的唤醒流程后续再 ...

  5. 苹果电脑开机长android,苹果笔记本开机白屏时间太长

    朋友,我的现在用"优化大师"优化了,开机才用:"13秒"! 1.电脑开机时间太长(建议你关机重启),或一次打开的网页过多,造成电脑"超载运行" ...

  6. 2022-06-30 Android app WakeLock息屏状态下唤醒屏幕并且解锁demo

    一.解锁 //屏锁管理器 KeyguardManager km= (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE ...

  7. android开发 wifi功率,一种基于Android系统的功耗计算方法与流程

    本发明涉及系统功耗 技术领域: ,尤其涉及一种基于Android系统的功耗计算方法. 背景技术: :为了细粒度实时分析系统各部件以及应用程序的功耗特性,并且进一步挖掘用户的日常行为,我们需要建立功耗模 ...

  8. android 广播唤醒应用,Android通过广播实现灭屏和唤醒

    1.要实现灭屏和唤醒,需要在Manifest文件添加如下权限: 2.以下是封装的一个工具类,实现屏幕唤醒和熄灭 package testWakeAndLock; import android.cont ...

  9. 【Android】Android模拟器的安装

    目录结构: contents structure [+] 使用VMware安装Android模拟器 安装安卓(Android)系统前VMware虚拟机的配置 安装安卓(Android)系统 安装安卓( ...

最新文章

  1. webdriver中处理alert
  2. Swift和OC文件间的相互调用
  3. 平滑线反锯齿工具_PS大神常用选框类工具有哪些?其实很简单,小白认真学也能懂...
  4. CS231n:卷积神经网络
  5. 阿里云Centos系统使用密钥对登陆
  6. 时间序列(七): 高冷贵族: 隐马尔可夫模型
  7. 【存档】MySQL(8.0.12 .msi)安装文档
  8. 从现实抽象出类的步骤
  9. MySql递归查询上级,下级
  10. Qt三方库开发技术:Qt应用内部打开PDF文件
  11. vue-element-admin 后台管理系统
  12. 在美国读博士的那七年
  13. 用Auto.js批量删除空间说说
  14. 嵌入式Linux容器技术
  15. 5G NR Polar码简介(一)
  16. 小白菜病害检测图像数据集介绍
  17. 基础第三-MySQL-多表查询-索引-事务笔记
  18. 新鲜出炉 日常家用电器电磁辐射危险排行榜(iPad3 iMac)
  19. 【云原生之Docker实战】使用Docker部署Flarum开源论坛
  20. python:print函数打印空行

热门文章

  1. sql%rowcount
  2. oracle ocm认证概述
  3. 云网融合解决方案|快数据云管平台(CMP)最优解决方案
  4. 【全流程】从头在树莓派4B上部署自己训练的yolov5模型(配合NCS2加速)
  5. 夜深了 是时候爬个小黄图了
  6. 短信验证码登录流程思路及详细步骤
  7. 丢包、拆包、粘包的原因及解决办法
  8. 在自己的软件中使用鼠标
  9. 关于最近激烈竞争的打车软件的一些看法
  10. 120年奥运会数据分析