读书人

Android输入输出机制之前因后果之前生

发布时间: 2012-06-28 15:20:03 作者: rapoo

Android输入输出机制之来龙去脉之前生后世

这种输入模型在android的系统中很多地方采用,先从最底层说起:

?为了由于触屏事件频率很高,android设计者讲一个循环线程,拆分为两级循环,并做了个队列来进行缓冲。


Android输入输出机制之前因后果之前生后世

InputDispatcherThread和InputReaderThread。InputDispatcherThread在自己的循环中对InputReaderThread请求同步,InputReaderThread收到同步信号后,把事件放入InputDispatcher的队列中。

具体代码如下:

InputReader.cpp中有很多InputMapper,有SwitchInputMapper,KeyBoardInputMapper,TrackballInputMapper,SingleTouchInputMapper,

MultiTouchInputMapper。当线程从EventHub读取到Event后,调用这些InputMapper的pocess方法:

?

?

在ViewRoot.java中有这么几行

?

    回调的java代码的方法入口为:InputQueue.java中的。@SuppressWarnings("unused")    private static void dispatchMotionEvent(InputHandler inputHandler,            MotionEvent event, long finishedToken) {        Runnable finishedCallback = FinishedCallback.obtain(finishedToken);        inputHandler.handleMotion(event, finishedCallback);    }

?这样就回调到了ViewRoot中

?

?

欢迎光临 www.51droidgame.com 网站进行讨论。

1 楼 lenomon 2012-04-07 这篇文章应该你能给增加些经验,Android事件传递机制【按键事件】

读书人网 >Android

热点推荐