当前位置: 首页 > news >正文

什么网站可以做认证网站收录查询

什么网站可以做认证,网站收录查询,静态网站生成器怎样做,成品网站w灬源码在线看1. 硬件层到Linux内核 设备节点:触摸事件由内核驱动捕获,写入/dev/input/eventX。关键结构体:input_event(包含时间戳、类型、代码、值)。 2. Native层处理(system_server进程) 2.1 EventHub …

 


1. 硬件层到Linux内核
  • 设备节点:触摸事件由内核驱动捕获,写入/dev/input/eventX
  • 关键结构体input_event(包含时间戳、类型、代码、值)。

2. Native层处理(system_server进程)
2.1 EventHub
  • 路径frameworks/native/services/inputflinger/EventHub.cpp
  • 职责:通过epoll监听设备节点,读取原始事件。
  • 关键函数
     

    CPP

    size_t EventHub::getEvents(int timeoutMillis, RawEvent* buffer, size_t bufferSize);

2.2 InputReader
  • 路径frameworks/native/services/inputflinger/InputReader.cpp
  • 职责:将原始事件转换为KeyEvent/MotionEvent
  • 线程模型InputReaderThread循环调用loopOnce()
  • 关键类
    • InputDevice:设备抽象。
    • TouchInputMapper:处理触摸事件映射。
     

    CPP

    void InputReader::loopOnce();

2.3 InputDispatcher
  • 路径frameworks/native/services/inputflinger/InputDispatcher.cpp
  • 职责:事件分发策略管理,通过InputChannel发送事件到应用。
  • 关键函数
     

    CPP

    void InputDispatcher::dispatchOnce(); // 主分发循环 status_t InputDispatcher::dispatchMotion(...); // 处理MotionEvent分发

  • 数据传递InputEvent封装为InputMessage,通过共享内存或Socket传递。
2.4 InputChannel与跨进程通信
  • IPC机制:基于Socket或共享内存(ashmem)。
  • 关键类
    • InputChannel:封装通信通道(服务端/客户端各一个Socket)。
    • InputWindowHandle:关联窗口焦点信息。
  • 注册流程:应用通过ViewRootImpl.addToDisplay()注册窗口时,通过WindowManagerService创建InputChannel

3. 应用进程处理(App进程)
3.1 NativeInputEventReceiver
  • 路径frameworks/base/core/jni/android_view_InputEventReceiver.cpp
  • 职责:通过Looper监听InputChannel,接收事件。
  • 关键函数
     

    CPP

    status_t NativeInputEventReceiver::consumeEvents(...); // JNI层事件接收

3.2 ViewRootImpl.WindowInputEventReceiver
  • 路径frameworks/base/core/java/android/view/ViewRootImpl.java
  • 职责:将事件传递给Java层。
  • 关键代码
     

    JAVA

    final class WindowInputEventReceiver extends InputEventReceiver { @Override public void onInputEvent(InputEvent event) { enqueueInputEvent(event, this, 0, true); } }


4. Java层事件分发
4.1 ViewRootImpl分发入口
  • 关键函数
     

    JAVA

    void deliverInputEvent(InputEvent event) { // 调用DecorView的dispatchInputEvent mView.dispatchPointerEvent(event); }

4.2 Activity/View树分发
  • 流程
    1. ActivitydispatchTouchEvent() → Window.superDispatchTouchEvent()
    2. DecorViewdispatchTouchEvent() → Activity.dispatchTouchEvent()
    3. ViewGrouponInterceptTouchEvent() → dispatchTouchEventToChildren()
    4. ViewonTouchEvent()处理事件。
  • 关键方法
     

    JAVA

    // ViewGroup public boolean dispatchTouchEvent(MotionEvent ev); public boolean onInterceptTouchEvent(MotionEvent ev); // View public boolean onTouchEvent(MotionEvent event);

4.3 MotionEvent对象复用
  • 优化机制:通过MotionEvent.obtain()复用对象,减少GC压力。

5. 关键数据结构
  • InputEvent:基类,包含设备ID、事件时间。
  • MotionEvent:存储触摸坐标、动作(ACTION_DOWN/ACTION_MOVE等)。
  • InputMessage:跨进程传输的二进制结构,包含事件类型、窗口令牌等。

6. 超时与ANR机制
  • InputDispatcher:等待应用finishInputEvent()确认处理,超时(默认5秒)触发ANR。
  • 监控逻辑:在InputDispatcher::dispatchEntryLocked()中设置超时检查。

http://www.yayakq.cn/news/413568/

相关文章:

  • 网站如何建设推广图片生成二维码
  • 服务器做php网站吗武义建设局网站
  • 程序员为什么不敢创业做网站lnmp和wordpress
  • 衡阳网站优化免费咨询具有品牌的做网站
  • 个人网站不备案可以吗深圳网站建设网站排名优化
  • 网站备案点不进去产品关键词的搜索渠道
  • 会展官方网站建设wordpress怎么把分类弄成导航
  • 网站建设的主要功能有哪些新网站百度收录
  • 房产网站方案手机app开发培训课程
  • 做网站时图片要切片有什么作用王也是谁
  • 唐河永琚建筑公司网站微信开发者文档小程序
  • 网站建设电销异议处理话术dw做的手机端网站
  • 网站创建多少年了中国十大营销策划人
  • 廊坊网站建设公司墨子自己建设网站流程
  • 福建建设职业管理中心网站seo搜狗排名点击
  • 网站建设的需求方案淄博网站建设服务
  • 网站代运营要多少费用吗建设一个视频教学网站
  • 做的网站怎么发网上wordpress h2
  • 设计网站页面好处Wordpress页面函数
  • 馆陶网站推广襄阳头条新闻
  • 内部网站建设计划制作排行榜的软件
  • 做网站 教程免费虚拟主机控制面板
  • 高端的丹阳网站建设联合加工网
  • 做网站在哪里接活平顶山市做网站
  • 和先锋影音和做的网站哔哩哔哩视频免费视频大全
  • 网络营销的功能大连网站seo
  • 济南免费做网站自己怎么做单页网站
  • 网站建设花多少钱治疗早射最有效的方法是什么
  • 北仑网站建设网站深圳公明做网站
  • 网站一般用什么免费字体太原网站建设技术托管