Android节能相关

2024-03-06 22:58
文章标签 android 相关 节能

本文主要是介绍Android节能相关,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

修复Bug:

现象:节能控制当非按电源键锁屏的情况下,开启的节能不亮屏控制不成功.

分析差异:

  • 按电源键锁屏:
    • event.log: power_screen_state[0,2,0,0]
  • 自动超时锁屏:
    • event.log: power_screen_state[0,3,0,0]
  • 上述情况是event.log的打印,具体解析还得看源码或者大神指教.

猜测:

  1. 其他地方调用获取并释放常亮屏锁.
  2. 休眠锁未维护好,未奏效.

排除过程

  1. 观察打印流程中WakeLock实例的创建与释放.
  2. 观察WakeLock初始化的参数:
    1. PowerManager.SCREEN_DIM_WAKE_LOCK
    2. PowerManager.SCREEN_BRIGHT_WAKE_LOCK
    3. PowerManager.PARTIAL_WAKE_LOCK
    4. 上述参数配合一下两个参数使用:
      • PowerManager.ACQUIRE_CASES_WAKEUP
      • PowerManager.ON_AFTER_RELEASE

中间的弯路:

  • 特大耗时点:研究Android … 情况下亮屏.对比power_screen_state[0,2,0,0]与power_screen_state[0,3,0,0]的区别还未果…
  • 当时的想法:找出这两种状态下的差异,通过差异在项目中寻找解答逻辑.
  • 失败原因:对Android偏底层实现不了解.

正确解决Bug:

  • 全局搜索所有的WakeLock类的对象,将所有执行WakeLock初始化的代码中加断点,重现Bug,分析.
  • 发现在另外一个类中获取并释放了一次常亮锁导致此Bug

最后期待:

大家将自己了解的相关屏幕状态的一些情况分享一下.

这篇关于Android节能相关的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/781637

相关文章

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

Android kotlin语言实现删除文件的解决方案

《Androidkotlin语言实现删除文件的解决方案》:本文主要介绍Androidkotlin语言实现删除文件的解决方案,在项目开发过程中,尤其是需要跨平台协作的项目,那么删除用户指定的文件的... 目录一、前言二、适用环境三、模板内容1.权限申请2.Activity中的模板一、前言在项目开发过程中,尤

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

numpy求解线性代数相关问题

《numpy求解线性代数相关问题》本文主要介绍了numpy求解线性代数相关问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 在numpy中有numpy.array类型和numpy.mat类型,前者是数组类型,后者是矩阵类型。数组

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

Android WebView的加载超时处理方案

《AndroidWebView的加载超时处理方案》在Android开发中,WebView是一个常用的组件,用于在应用中嵌入网页,然而,当网络状况不佳或页面加载过慢时,用户可能会遇到加载超时的问题,本... 目录引言一、WebView加载超时的原因二、加载超时处理方案1. 使用Handler和Timer进行超