Android点击桌面图库应用启动流程trace分析

Android点击桌面图库应用启动流程trace分析

手指按击手机屏幕触发的Input事件处理流程

1、system的InputReader从EventHub把Input事件取出来放入 InboundQueue,即 iq 事件队列,然后交给 InputDispatcher 做事件分发。

2、system的InputDispatcher拿到 InputReader的事件后,对事件进行包装,放入 OutboundQueueue,即 oq 队列,寻找并分发到目标App应用接收事件;

3、WaitQueue队列即 wq 队列,里面是已经派发给目标 App应用的事件,这些事件等待 App应用处理;

4、PendingInputEventQueue队列 aq 中记录的是应用需要处理的Input事件,这里可以看到input事件已经传递到了应用进程;

在trace中,iq队列,oq队列,wq队列,wq队列,都在system_server进程中。每一个App应用都有自己的aq队列。

deliverInputEvent 标记了 App应用UI主线程被 Input 事件唤醒。

点击桌面App应用的图标启动应用,trace上显示,InputReader里面可以看到手指按下去的AppLaunch_dispatchPtr:Down和手指抬起的AppLaunch_dispatchPtr:Up,分析应用启动流程,可以从AppLaunch_dispatchPtr:Up开始。

桌面进程收到input点击图标后,启动事件后调用binder框架AMS的的startActivity启动应用。

https://blog.csdn.net/zhangphil/article/details/131249820https://blog.csdn.net/zhangphil/article/details/131249820

相关推荐
JJay.13 分钟前
Android Kotlin 协程使用指南
android·开发语言·kotlin
BLUcoding1 小时前
Android 布局介绍
android
summerkissyou19871 小时前
android-蓝牙-状态和协议值总结及监听例子
android·蓝牙
徒 花1 小时前
数据库知识复习05
android·数据库
提子拌饭1333 小时前
番茄时间管理:鸿蒙Flutter 实现的高效时间管理工具
android·flutter·华为·架构·开源·harmonyos·鸿蒙
4311媒体网3 小时前
帝国CMS二次开发实战:精准实现“最新资讯”标识与高亮判断
android
BLUcoding4 小时前
Android 轻量级本地存储 SharedPreferences
android
冬奇Lab4 小时前
Camera HAL3 接口:Android 相机的真正底牌
android·音视频开发·源码阅读
sensen_kiss4 小时前
CAN302 Technologies for E-Commerce 电子商务技术 Pt.6 市场营销与SEO(搜索引擎优化)
android·学习·搜索引擎
菜鸟国国5 小时前
Compose + Koin ViewModel 实战完全手册
android