Android Input子系统框架分析
本专栏致力于分析Android Input子系统框架,将详细的分析触摸事件如何一步步上发至应用
时光如刀
春去冬来,潮起潮落,人生几何;
夏落秋起,风去风来,岁月无痕
展开
-
Android的触控重采样算法
1.概述 Android的触控重采样算法非常出色。Android使用触摸外推和触摸内插的组合。触摸插值意味着我们接受两个触摸事件,并在两个触摸事件中间的某个位置创建一个触摸事件。触摸外推意味着我们进行两次触摸事件,并在上一次触摸事件之前的某个位置创建一个触摸事件,或者预测触摸事件的位置。让我们从60hz的LCD刷新显示速率和100hz的触摸屏刷新扫描速率来看一下我们的标准输入。 ...原创 2020-05-03 13:13:46 · 2794 阅读 · 2 评论 -
Input子系统框架之InputDispatcher
原始链接:http://gityuan.com/2016/12/17/input-dispatcher/一. InputDispatcher起点上篇文章输入系统之InputReader线程,介绍InputReader利用EventHub获取数据后生成EventEntry事件,加入到InputDispatcher的mInboundQueue队列,再唤醒InputDispatcher线程。本文将介...原创 2020-03-01 22:37:46 · 1205 阅读 · 0 评论 -
Systrace 基础知识 - Input 解读
参考连接:https://www.androidperformance.com/2019/11/04/Android-Systrace-Input/1.概述Android 中 Input 的大概处理流程:触摸屏每隔几毫秒扫描一次,如果有触摸事件,那么把事件上报到对应的驱动InputReader 读取触摸事件交给InputDispatcher 进行事件派发 InputDispatcher...原创 2019-12-05 20:52:44 · 2168 阅读 · 0 评论 -
Input子系统框架之深入理解EventHub
1、概述InputReaderThread继承自C++的Thread类,Thread类封装了pthread线程工具,提供了与Java层Thread类相似的API。C++的Thread类提供了一个名为threadLoop()的纯虚函数,当线程开始运行后,将会在内建的线程循环中不断地调用threadLoop(),直到此函数返回false,则退出线程循环,从而结束线程。 InputReaderThre...原创 2019-08-03 14:12:42 · 1179 阅读 · 0 评论 -
Input子系统框架之IMS的创建与启动
一、概述IMS分为Java层与Native层两个部分,其启动过程是从Java部分的初始化开始,进而完成Native部分的初始化。 IMS在SystemServer.startOtherServices()方法中启动的。IMS的诞生分为两个阶段:· 创建新的IMS对象。调用IMS对象的start()函数完成启动。我们先看下整个启动过程的序列图,然后根据序列图来一步步分析。二、系统启动...原创 2019-07-27 20:10:13 · 575 阅读 · 0 评论 -
Input子系统框架之system层的知识储备
1、必备的Linux知识 inotify和epoll1.1、INotify介绍与使用INotify是一个Linux内核所提供的一种文件系统变化通知机制。它可以为应用程序监控文件系统的变化,如文件的新建、删除、读写等。INotify机制有两个基本对象,分别为inotify对象与watch对象,都使用文件描述符表示。 inotify对象对应了一个队列,应用程序可以向inotify对象添加多个监听。...原创 2019-07-21 13:15:14 · 493 阅读 · 0 评论 -
Input子系统框架之kernel层(Kernel-3.18)
一、Linux Input 子系统框架本文是基于kernel-3.18版本分析的。输入(Input)子系统是分层架构的,总共分为5 层,从上到下分别是:用户空间层(User Space)事件处理层(Event Handler)、输入子系统核心层(Input Core)、硬件驱动层(Input Driver) 、硬件设备层(Hardware)。驱动根据CORE提供的接口,向上报告发生的按键动作。...原创 2019-07-15 09:21:21 · 1012 阅读 · 0 评论