当前位置: 首页 > 知识库问答 >
问题:

华为EMUI 4.0+上的电池优化(wakelocks)

牛迪
2023-03-14

当前的解决方案可以工作多年,这要归功于wakelocks使设备保持清醒。

Android6.0+中的打瞌睡模式情况复杂,但事实并非如此。

在华为设备上可能是不同类型的优化。

正如我在start上写的,除了新的华为,在所有其他设备上,这样的系统可以正确工作多年。

编辑:注意:在一位用户评论后(已删除?),华为电池管理器中的“白名单”应用程序(标记为“受保护应用程序”)对此问题没有影响。

共有1个答案

饶德元
2023-03-14

有两款华为系统App可能会为了省电而干掉用户App:

  • SystemManager(com.huawei.SystemManager)杀死屏幕关闭后仍在运行的所有应用程序,除非它们在“受保护的应用程序”列表中。
  • PowerGenie(com.huawei.powerGenie)杀死任何长时间持有唤醒锁的应用程序。

听起来你的应用程序被PowerGenie扼杀了。您可以利用PowerGenie硬编码的wake lock标记白名单来避免这种情况。例如,如果您的唤醒锁的标记是“LocationManagerService”,PowerGenie将忽略它,因为系统服务持有一个带有相同标记的唤醒锁,PowerGenie已将其白名单化。

 类似资料:
  • 这个问题可能看起来很宽泛,但我会尽量简短地总结一下。 如何在ANDROID o中处理后台服务? 如何在华为设备上关闭电池优化 如何在华为设备上关闭电池优化 华为EMUI 4.0+上的电池优化(wakelocks) 当应用程序在华为设备上消失时,服务被扼杀 Oreo(8.1)无法在锁定屏幕上启动活动

  • 技术一面: 先手撕题,中等难度。(脑子抽了把题看错了,面试官提醒后改对了)。 线程协程进程的区别。pthread的线程和C++里面的线程有什么关系。 C++的内存管理。SGI内存池是怎么设计的。(我是共享屏幕画图讲的,侯捷老师的STL源码剖析上有讲) 内存泄漏是什么,有什么方法可以定位内存泄漏吗。 Golang的GC 问项目的难点,为什么做这个项目。 实习做了什么,难点。 主管二面: 全程聊天。

  • bg:本硕,方向是js,很少看到前端的华为面经,所以来填坑 整个面试过程体验都很好,主管面因为一些小插曲稍微有点紧张, 一面: 快50min 实习项目 git开发流程 webpack打包原理 前后端交互(非技术,就是接口设计之类的) JWT验证过程 网络攻击 springBoot框架 操作系统相关 手撕:数组最大连续子序列之和,本渣渣第一次暴力没解出来,转而用了dp,写完之后,面试官挺好的,引导我

  • 华为云计算软件测试 一面 自我介绍,项目介绍,项目怎么协作分工,手撕/写测试用例二选一,问了测试用例编写,为什么选测试 二面 自我介绍,项目协作,手撕,为什么选择测试..... 主管面 自我介绍,留学感受,最大收获是什么,怎么理解奋斗精神,最大的挫折,怎么看待加班 不知道能不能泡池子泡到,hr在现场,还蛮热情,大概是聊了一下意向之类的问题

  • 我使用线程池执行器,将其替换为旧版线程。 我创建了如下执行器: 这里的核心大小是maxpoolsize/5。我已经在应用程序启动时预先启动了所有核心线程,大约160个线程。 在传统设计中,我们创建并启动了大约670个线程。 但关键是,即使在使用Executor并创建和替换遗留设计之后,我们也不会得到更好的结果。 对于结果内存管理,我们使用Top命令来查看内存使用情况。对于时间,我们将System.