
hello, Android P 上大概是这样子的:
发送端: 运行在SystemServer进程的 InputTransport.cpp : InputChannel::sendMessage(const InputMessage* msg)将事件写入socket一端
接收端:运行在应用进程的 android_view_InputEventReceiver.cpp 监听着socket另一端,当socket有事件写入后,NativeInputEventReceiver::handleEvent(int receiveFd, int events, void* data) -> NativeInputEventReceiver::consumeEvents -> env->CallVoidMethod(receiverObj.get(),
gInputEventReceiverClassInfo.dispatchInputEvent, seq, inputEventObj,
displayId); -> InputEventReceiver.java.dispatchInputEvent -> ViewRootImpl.WindowInputEventReceiver.onInputEvent
然后在 ViewRootImpl 开启责任链模式事件派发,最后交由View树处理
Android GPU呈现模式原理及卡顿掉帧浅析APP开发中,卡顿绝对优化的大头,Google为了帮助开发者更好的定位问题,提供了不少工具,如Systrace、GPU呈现模式分析工具、Android Studio自带的CP...