
Android待机唤醒
Arrow
在技术上具有Arrow一样的钉子精神
展开
-
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原创 2012-11-01 17:22:16 · 7646 阅读 · 0 评论 -
Linux睡眠唤醒机制--Kernel态
一、对于休眠(suspend)的简单介绍 在Linux中,休眠主要分三个主要的步骤: 1) 冻结用户态进程和内核态任务 2) 调用注册的设备的suspend的回调函数, 顺序是按照注册顺序 3) 休眠核心设备和使CPU进入休眠态, 冻结进程是内核把进程列表中所有的进程的状态都设置为停止,并且保存下所有进程的上下文. 当这些进程被解冻的时候,他们是不知道自己被冻结过的转载 2012-11-01 11:54:10 · 15951 阅读 · 0 评论 -
Android驱动开发之earlysuspend睡眠模式--实现代码
(1)添加头文件:#include (2)在特定驱动结构体中添加early_suspend结构:#ifdef CONFIG_HAS_EARLYSUSPENDstruct early_suspend early_suspend;#endif(3)在驱动probe函数中注册相关early_suspend结构体:#ifdef CONFIG_HAS_EARLYSUSPEND转载 2012-11-01 11:34:57 · 11921 阅读 · 0 评论 -
Android睡眠唤醒机制--Kernel态
一、简介 Android系统中定义了几种低功耗状态:earlysuspend、suspend、hibernation. 1) earlysuspend: 是一种低功耗的状态,某些设备可以选择进入某种功耗较低的状态,比如 LCD可以降低亮度或灭掉; 2) suspend: 是指除电源管理以外的其他外围模块以及cpu均不工作,只有内存保持自刷新的状态;转载 2012-11-01 14:47:06 · 33166 阅读 · 0 评论 -
Android LockScreen
大体的思路:系统启动成功后SystemServer调用wm.systemReady()通知WindowManagerService,进而调用PhoneWindowManager,最终通过LockPatternKeyguardView显示解锁界面。当按Power键时,系统会像向外广播消息Intent.ACTION_SCREEN_OFF, 同样当在锁屏的情况下按Power键会向外广播Intent.AC转载 2012-11-03 14:42:47 · 3667 阅读 · 1 评论 -
Android (Linux) Suspend流程
1. Linux Suspend简介 Linux Suspend主要有以下三步: 1) 冻结用户态进程和内核态任务 2) 调用注册的设备的suspend的回调函数,顺序是按照注册顺序 3) 休眠核心设备和使CPU进入休眠态。 冻结进程(suspend_freeze_processes)是内核把进程列表中所有的进程的状态都设置为停止,并且保存所有进程的上原创 2013-04-23 08:48:13 · 9447 阅读 · 1 评论 -
Android睡眠唤醒机制--系统架构
一、简介 Android在Linux内核原有的睡眠唤醒模块上基础上,主要增加了下面三个机制: • Wake Lock 唤醒锁机制; • Early Suspend 预挂起机制; • Late Resume 迟唤醒机制; 其基本原理:当启动一个应用程序的时候,它可以申请一个wake_lock唤醒锁,每当申请成功之后都会在内核中注册一下(通知原创 2012-11-01 17:57:37 · 16777 阅读 · 1 评论 -
Android4.x 如何处理Power按键
1. 简介 Android4.x在Framework的PhoneWindowManager对Power(KeyEvent.KEYCODE_POWER)和Home(KeyEvent.KEYCODE_HOME)键做了处理,不会把这些键传送上层应用程序。如需要把这些键发送给Activity和Service,需要在PhoneWindowManager处理这些键时“发送一个广播出去,然后在原创 2012-11-03 15:53:21 · 33895 阅读 · 12 评论