发布时间:2013-01-07 16:26:15
以下分析基于android2.2的google源码。 开机启动时,首先执行PhoneWindowManager.systemReady()(这之前的流程不分析)。调用KeyguardViewMediator.onSystemReady()进行待机锁屏及解锁逻辑。 KeyguardViewMediator是整个待机解/锁屏业务的调度器,负责调度锁屏界面的相关动作及查询解锁屏状态,包括以下一些内容: 查询锁屏状态,及当前处于锁屏状态还是已解锁状态,PhoneWindowManager持有KeyguardViewMediator的引用,当用户触......【阅读全文】
发布时间:2013-01-07 16:23:59
前一段时间,在开发一个驱动程序的过程中,需要在驱动程序与应用程序之间进行通信。其中驱动程序在接收到一个硬件中断之后通知应用程序进行相应的处理。为 解决此类问题,驱动程序提供了几种机制:(1)使用copy_to_user/copy_from_user方法,缺点是通信响应时间过长(2)使用信 号,但是限于字符设备(3)使用netlink。在linux2.4之后引入了netlink机制,它将是Linux用户态与内核态交流的主要方法之一。netlink 的特点是对中断过程的支持,也就是说,可以在中断程序中直接调用netlink相关函数。它在内核空间接收用户空间数据时不再需......【阅读全文】
发布时间:2013-01-07 16:22:35
1、{}大括号: 用法一:通配符扩展 eg: ls my_{finger,toe}s 这条命令相当于如下命令的组合: ls my_fingers my_toes eg: mkdir {userA,userB,userC}-{home,bin,data}我们将得到 userA-home, userA-bin, userA-data, userB-home, userB-bin,userB-data,userC-home,......【阅读全文】
发布时间:2013-01-07 16:12:36
前几篇文章提到在定时器中断里用工作队列来处理中断下半部分,但当时不明白其中的原理,今天终于发现了一些内容,现跟大家一起来分享。 工作队列可以把工作推后,交由一个内核线程去执行——该工作总会在进程上下文执行。通过工作队列执行的代码能占尽进程上下文的所有优势。最重要的就是工作队列可以重新调度甚至睡眠。 如果需要获得大量的内存时,在你需要获取信号量时,在你需要执行阻塞式的i/o操作是,它都会非常有用。 工作队列子系统是一个用于创建内核线程的接口,通过它创建的进程负责执行由内核其他部分排到队列里的任务(现在更明白工作队......【阅读全文】