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

相关推荐
Mem0rin7 小时前
[MySQL] 聚合函数、分组查询、连接查询
android·mysql
码龙-DragonCoding8 小时前
一键批量提取音频、提取视频
android·音视频·提取
祉猷并茂,雯华若锦8 小时前
Win下完美解决Allure报错,生成Web自动化测试报告
android·python·selenium·自动化
IT小盘9 小时前
08-FastAPI加MySQL实现AI对话记录持久化
android·mysql·fastapi
清泓y10 小时前
Android内存管理与性能优化面试真题
android·面试·性能优化
YF021111 小时前
Android compose详解
android
IT小码哥丶11 小时前
Android进阶之事件分发机制深度剖析
android
执明wa1 天前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio
404_coder1 天前
源码视角下的 Android 开机流程:从 Zygote、SystemServer 到 Launcher
android
二流小码农1 天前
鸿蒙开发:以登录案例了解代码架构MVVM
android·ios·harmonyos