做网站 备案公司网站建设需要哪些内容
2026/4/18 18:00:41 网站建设 项目流程
做网站 备案,公司网站建设需要哪些内容,河池网站seo,常德烟机网站大纲 Android触控事件处理机制 Zygote进程启动和应用进程创建流程 Handler消息机制 AMS的Activity组件管理 应用Application和Activity组件创建与初始化 应用UI布局与绘制 RenderThread渲染 SurfaceFlinger合成显示 桌面点击图标 Android 系统是由事件驱动的#xff0c;而 inp…大纲Android触控事件处理机制Zygote进程启动和应用进程创建流程Handler消息机制AMS的Activity组件管理应用Application和Activity组件创建与初始化应用UI布局与绘制RenderThread渲染SurfaceFlinger合成显示桌面点击图标Android 系统是由事件驱动的而 input 是最常见的事件之一用户的点击、滑动、长按等操作都属于 input 事件驱动其中的核心就是 InputReader 和 InputDispatcher。InputReader 和 InputDispatcher 是跑在 SystemServer进程中的两个 native 循环线程负责读取和分发 Input 事件。整个处理过程大致流程如下1InputReader负责从EventHub里面把Input事件读取出来然后交给 InputDispatcher 进行事件分发2InputDispatcher在拿到 InputReader获取的事件之后对事件进行包装后寻找并分发到目标窗口;3InboundQueue队列“iq”中放着InputDispatcher从InputReader中拿到的input事件4OutboundQueue“oq”队列里面放的是即将要被派发给各个目标窗口App的事件5WaitQueue队列里面记录的是已经派发给 App“wq”但是 App还在处理没有返回处理成功的事件6PendingInputEventQueue队列“aq”中记录的是应用需要处理的Input事件这里可以看到input事件已经传递到了应用进程7deliverInputEvent 标识 App UI Thread 被 Input 事件唤醒8InputResponse 标识 Input 事件区域这里可以看到一个 Input_Down 事件 若干个 Input_Move 事件 一个 Input_Up 事件的处理阶段都被算到了这里9App 响应处理Input 事件内部会在其界面View树中传递处理。从桌面点击应用图标启动应用system_server的native线程InputReader首先负责从EventHub中利用linux的epolle机制监听并从屏幕驱动读取上报的触控事件然后唤醒另外一条native线程InputDispatcher负责进行进一步事件分发。InputDispatcher中会先将事件放到InboundQueue也就是“iq”队列中然后寻找具体处理input事件的目标应用窗口并将事件放入对应的目标窗口OutboundQueue也就是“oq”队列中等待通过SocketPair双工信道发送到应用目标窗口中。桌面应用界面View中在连续处理一个ACTION_DOWN的TouchEvent触控事件和多个ACTION_MOVE直到最后出现一个ACTION_UP的TouchEvent事件后判断属于onClick点击事件然后透过ActivityManager Binder调用AMS的startActivity服务接口触发启动应用的逻辑。桌面启动应用Launcher.java - super.startActivitySafely()Launcher启动后会将已安装应用程序的快捷图标显示到界面上当我们点击应用程序的快捷图标时就会调用Launcher的startActivitySafely方法如下所示。正常会走super.startActivitySafely(v, intent, item);publicclassLauncherextendsStatefulActivityLauncherStatepublicabstractclassStatefulActivitySTATE_TYPEextendsBaseStateSTATE_TYPEextendsBaseDraggingActivitypublicabstractclassBaseDraggingActivityextendsBaseActivitypublicabstractclassBaseActivityextendsActivityimplementsActivityContext从调用关系可以看出会调到ActivityContext.java的startActivitySafelyActivityContext.java - startActivitySafely()try{……}elseif(usernull||user.equals(Process.myUserHandle())){// Could be launching some bookkeeping activity// 调用startActivitycontext.startActivity(intent,optsBundle);

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询