
Framework
文章平均质量分 97
neuHenry
一个还没有入门的程序员!!!
展开
-
深入Android S (12.0) 探索Framework之输入子系统InputDispatcher的流程
Android的输入子系统InputReader在一次线程循环中,通过getEvent函数尽可能多地读取设备增删与原始输入事件,并将它们封装成RawEvent结构体。然后通过其processEventsLocked函数对获取事件进行分类处理,将原始输入事件进行转译、封装与加工后将结果暂存到mQueuedListener中。最后将所有暂存、已加工过的输入事件交付给 InputDispatcher来进行分发。本篇将深入探索InputDispatcher的工作流程,它是如何来分发这些输入事件的?原创 2024-06-14 18:52:38 · 822 阅读 · 0 评论 -
Linux 内核之 mmap 内存映射触发的缺页异常 Page Fault
上一篇文章解释了什么是mmap内存映射及其在Linux内核中的实现原理,然后深入到源码中一步一步分析mmap在内核中的源码实现。mmap内存映射的核心就是在进程虚拟内存空间中为该次映射分配一段虚拟内存出来,然后将这段虚拟内存与磁盘文件建立映射关系。但此时内核并不会为映射分配物理内存,物理内存的分配工作需要延后到这段虚拟内存被CPU访问的时候,通过缺页中断来进入内核来分配物理内存,并在页表中建立好映射关系。那么,接下来就跟随笔者一步步深入源码,查看内核是如何分配物理内存并建立虚拟内存与物理内存之间映射关系的?原创 2024-06-03 21:15:05 · 1924 阅读 · 0 评论 -
深入Android S (12.0) 探索Framework之输入子系统InputReader的流程
上一篇文章深入探索了 Android Framework 的输入系统 IMS 的构成与启动,对 IMS 的重要成员有了初步的理解,然后通过源码对 IMS 的整个启动流程进行分析,在 IMS 启动并准备就绪后,输入系统就可以从设备节点源源不断的抽取输入事件,并交给事件处理者进行加工处理,即输入子系统 InputReader。本篇将深入探索 InputReader 的工作流程,它是如何从设备节点将输入事件交给 InputDispatcher 的派发的?原创 2024-01-19 19:30:29 · 1149 阅读 · 0 评论 -
深入Android S (12.0) 探索Framework之输入系统IMS的构成与启动
Android 输入系统(Input System)的工作原理,包括:输入设备的管理、输入事件的加工方式及派发流程。首先输入设备包括:触摸屏,键盘,鼠标和手柄等,其中触摸屏与键盘是 Android 最普遍也是最标准的输入设备。当用户操作输入设备时,Linux内核接收到相应的硬件中断,然后将中断加工成原始的输入事件数据并写入其对应的设备节点中,在用户空间可以通过输入系统内部的读取函数将原始事件数据读出,并进行一系列翻译加工成Android输入事件,然后在所有的窗口寻找合适的事件接收者,并派发给它来消费该事件原创 2023-11-28 16:28:28 · 1685 阅读 · 0 评论