解决android系统唤醒时间偏长------看log找可疑的地方

2024-09-04 01:08

本文主要是介绍解决android系统唤醒时间偏长------看log找可疑的地方,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近发现我们的手机的双击唤醒时间偏长,那么就需要去看是什么导致的。于是首先看唤醒的log


[  252.830937] [ASDF] enter do_write_event_worker      //这个是打印log的service
[  252.838638] [SENSOR] : inv_ak09911_pm_suspend
[  252.838647] CM32683:  CM36283_suspend
[  252.838656] [SENSOR] : inv_mpu_suspend
[  252.839383] qpnp_vibrator_set off
[  252.847927] PM: suspend of devices complete after 15.292 msecs
[  252.848781] PM: late suspend of devices complete after 0.847 msecs
[  252.850270] PM: noirq suspend of devices complete after 1.480 msecs
[  252.850277] Disabling non-boot CPUs ...
[  252.861659] CPU0:msm_cpu_pm_enter_sleep mode:3 during suspend
[  252.861659] __qpnpint_handle_irq: 290 triggered [0x0, 0x08,0x0] qpnp_kpdpwr_status
[  252.861659] [PM]IRQ: 200 triggered qcom,smd-rpm
[  252.861659] [PM]IRQ: 203 triggered 601d0.qcom,mpm
[  252.861659] [PM]IRQ: 222 triggered 200f000.qcom,spmi
[  252.862720] Enabling non-boot CPUs ...
[  252.864979] CPU1 is up
[  252.867220] CPU2 is up
[  252.869755] CPU3 is up
[  252.870388] PM: noirq resume of devices complete after 0.620 msecs
[  252.870969] qcom,qpnp-power-on qpnp-power-on-eddf2000: Power key down
[  252.871110] wait_for_power_key_6s_work 
[  252.872421] PM: early resume of devices complete after 1.085 msecs
[  252.877703] [Gpio_keys] gpio_keys_gpio_report_event:keycode=115  state=release 
[  252.877711] [Gpio_keys] gpio_keys_gpio_report_event:keycode=114  state=release 
[  252.877944] [SENSOR] : inv_mpu_resume
[  252.877953] CM36283:  CM32683_resume
[  252.877960] [SENSOR] : inv_ak09911_pm_resume
[  252.877997] <BATT>smb358_resume
[  252.903258] process_resume_data:deviation(skip): 16850, hw ocv: 4131960, last ocv: 4115110
[  252.903265] process_resume_data:reset count
[  252.904432] PM: resume of devices complete after 32.000 msecs
[  252.909391] fcc=2905 acc=2861 soc_final=79 soc_uuc=1 soc_acc=79 current_now=0 iavg_ma=11
[  252.909396] soc_final=79 soc_ocv=79 soc_cutoff=2 ocv_uv=4115110 batt_temp=280
[  252.912545] last_soc=79 calculated_soc=79 soc=79 time_since_last_change=2964
[  252.915886] report_vm_bms_soc:[bms]Reported result_soc=79
[  253.049828] qcom,qpnp-power-on qpnp-power-on-eddf2000: Power key on
[  253.089852] [PM]unattended_timer: mod_timer
[  253.094271] mmc0: Starting deferred resume
[  253.097415] qpnp_vm_bms_power_set_property: last_ocv_uv = 4115107
[  253.101989] Restarting tasks ... done.

[  253.104300] fcc=2905 acc=2860 soc_final=79 soc_uuc=1 soc_acc=79 current_now=32 iavg_ma=16
[  253.104305] soc_final=79 soc_ocv=79 soc_cutoff=2 ocv_uv=4115107 batt_temp=282
[  253.108744] last_soc=79 calculated_soc=79 soc=79 time_since_last_change=2964
[  253.121203] report_vm_bms_soc:[bms]Reported result_soc=79
[  253.124944] [LS][CM36283] lightsensor_enable
[  253.144400] PM: suspend exit 2016-01-01 18:48:32.882505816 UTC
[  253.161091] <Display>mdss_dsi_panel_power_on
[  253.203169] <Display>mdss_dsi_panel_reset
[  253.230959] mmc0: Deferred resume completed
[  253.265899] [ASDF] enter do_write_event_worker
[  253.304219] CM36283--initial-After 1st devided by 20, report_lux is 0
[  253.355759] <Display>mdss_dsi_panel_on
[  253.355764] <Display>write cabc mode = 0x0
[  253.362108] [Focal][Touch] focal_resume_work : Touch resume +++ 
[  253.362115] [Focal][Touch] focal_resume_work : Touch resume from gesture mode 
[  253.362197] [Focal][Touch] interrupt suspend_resume in process skip !
[  253.362909] <Display>mdss_dsi_panel_bklt_dcs: set level 38
[  253.362914] <Display>enable backlight enable gpio


首先的办法是看kernel中跑了哪些流程,根据这里的log可以看到一些比如第一条的打印的service。

这些流程中有哪些可以优化的


还有就是看系统唤醒后的在跑的上层service

root@ASUS_Z00L_63B:/ # getprop |grep svc
[init.svc.VerifyVoucher]: [stopped]
[init.svc.adbd]: [running]
[init.svc.asus_audbg]: [stopped]
[init.svc.asus_checkaudbg]: [stopped]
[init.svc.asus_chk_asdf]: [stopped]
[init.svc.asus_monitor]: [stopped]
[init.svc.asus_prj_id]: [stopped]
[init.svc.atfwd]: [running]
[init.svc.audiod]: [running]
[init.svc.bms-sh]: [stopped]
[init.svc.bootanim]: [stopped]
[init.svc.check_last]: [stopped]
[init.svc.cnd]: [running]

root@ASUS_Z00L_63B:/ # stop healthd

这些runing的service未必全部都会在屏幕亮起前跑起来,所以只能尝试去看,关一些service之后看唤醒的时间是否缩短。其他的也没有太多可以优化的空间

这篇关于解决android系统唤醒时间偏长------看log找可疑的地方的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

504 Gateway Timeout网关超时的根源及完美解决方法

《504GatewayTimeout网关超时的根源及完美解决方法》在日常开发和运维过程中,504GatewayTimeout错误是常见的网络问题之一,尤其是在使用反向代理(如Nginx)或... 目录引言为什么会出现 504 错误?1. 探索 504 Gateway Timeout 错误的根源 1.1 后端

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据