待机唤醒及一些调试处理

来源:互联网 发布:按键精灵调用js 编辑:程序博客网 时间:2024/05/01 05:48
 

Android (Linux) Suspend流程

1. Linux Suspend简介     Linux Suspend主要有以下三步:    1) 冻结用户态进程和内核态任务    2) 调用注册的设备的suspend的回调函数,顺序是按照注册顺序    3) 休眠核心设备和使CPU进入休眠态。    冻结进程(suspend_freeze_processes)是内核把进程列表中所有的进程的状态都设置为停止,并且保存所有进程的上...
 阅读(1900) 评论(0)
 

Android4.x 如何处理Power按键

1. 简介         Android4.x在Framework的PhoneWindowManager对Power(KeyEvent.KEYCODE_POWER)和Home(KeyEvent.KEYCODE_HOME)键做了处理,不会把这些键传送上层应用程序。如需要把这些键发送给Activity和Service,需要在PhoneWindowManager处理这些键时“发送一个广播出去,然后在...
 阅读(9240) 评论(11)
 

Android LockScreen

大体的思路:系统启动成功后SystemServer调用wm.systemReady()通知WindowManagerService,进而调用PhoneWindowManager,最终通过LockPatternKeyguardView显示解锁界面。当按Power键时,系统会像向外广播消息Intent.ACTION_SCREEN_OFF, 同样当在锁屏的情况下按Power键会向外广播Intent.AC...
 阅读(1102) 评论(1)
 

Android睡眠唤醒机制--系统架构

一、简介      Android在Linux内核原有的睡眠唤醒模块上基础上,主要增加了下面三个机制:      • Wake Lock 唤醒锁机制;      • Early Suspend 预挂起机制;      • Late Resume 迟唤醒机制;      其基本原理:当启动一个应用程序的时候,它可以申请一个wake_lock唤醒锁,每当申请成功之后都会在内核中注册一下(通知...
 阅读(3090) 评论(0)
 

Android睡眠唤醒机制--HAL-->Kernel

一、Kernel与HAL接口分析         Kernel与HAL接口是通过/sys/power下面的一系统文件来实现的,如:/sys/power/state         Kernel中/sys/power下的文件实现过程如下: 1. sysfs的属性文件      在kernel/power/main.c中,定义了一组sysfs的属性文件:  static struct att...
 阅读(1376) 评论(0)
 

Android睡眠唤醒机制--Kernel态

一、简介       Android系统中定义了几种低功耗状态:earlysuspend、suspend、hibernation.       1) earlysuspend: 是一种低功耗的状态,某些设备可以选择进入某种功耗较低的状态,比如 LCD可以降低亮度或灭掉;        2) suspend: 是指除电源管理以外的其他外围模块以及cpu均不工作,只有内存保持自刷新的状态;...
 阅读(2885) 评论(0)
 

Linux睡眠唤醒机制--Kernel态

一、对于休眠(suspend)的简单介绍    在Linux中,休眠主要分三个主要的步骤:    1) 冻结用户态进程和内核态任务    2) 调用注册的设备的suspend的回调函数, 顺序是按照注册顺序    3) 休眠核心设备和使CPU进入休眠态, 冻结进程是内核把进程列表中所有的进程的状态都设置为停止,并且保存下所有进程的上下文. 当这些进程被解冻的时候,他们是不知道自己被冻结过的...
 阅读(2060) 评论(0)
 

Android驱动开发之earlysuspend睡眠模式--实现代码

(1)添加头文件: #include (2)在特定驱动结构体中添加early_suspend结构: #ifdef CONFIG_HAS_EARLYSUSPEND struct early_suspend early_suspend; #endif (3)在驱动probe函数中注册相关early_suspend结构体: #ifdef CONFIG_HAS_EARLYSUSPEND...

0 0
原创粉丝点击