性能-跟手度

31 篇文章 1 订阅
5 篇文章 0 订阅

fw-input和fw-view模块分析如下:
>>> fw-input从节点中读取到move事件
M0268D6 02-13 18:36:47.749   707   816 D InputDispatcher: notifyMotion - eventTime=628962363000, deviceId=3, source=0x1002, policyFlags=0x0, action=0x2, actionButton=0x0, flags=0x0, metaState=0x0, buttonState=0x0,edgeFlags=0x0, xPrecision=1.002083, yPrecision=1.001171, downTime=622238160000

>>> fw-input分发move事件
M0268FA 02-13 18:36:47.751   707   815 D InputDispatcher: dispatchMotion - eventTime=628270067000, deviceId=3, source=0x1002, policyFlags=0x62000000, action=0x2, actionButton=0x0, flags=0x0, metaState=0x0, buttonState=0x0,edgeFlags=0x0, xPrecision=1.002083, yPrecision=1.001171, downTime=622238160000

>>> View接收到move事件
M026913 02-13 18:36:47.752   916   916 D SPRD_InputEventReceiver: dispatchInputEvent: event = MotionEvent { action=ACTION_MOVE, actionButton=0, id[0]=0, x[0]=173.63824, y[0]=459.462, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x3, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=628270, downTime=622238, deviceId=3, source=0x1002 }, displayId: 0

 

./core/java/android/view/InputEventReceiver.java

    // Clled from native code.
    @SuppressWarnings("unused")
    private void dispatchInputEvent(int seq, InputEvent event, int displayId) {
        mSeqMap.put(event.getSequenceNumber(), seq);
        Log.d("SPRD_InputEventReceiver","dispatchInputEvent: event = "+event+ ", displayId: " + displayId);
        onInputEvent(event, displayId);
        if (sDebugDispatchInput) {
            Log.d(TAG, "dispatchInputEvent event: " + event + ", displayId: " + displayId);
        }
    }

>>> View分发move事件给应用
M026964 02-13 18:36:47.756  1359  1359 D SPRD_View: dispatchTouchEvent: getAction = 2; getEventTime = 628284; getDownTime = 622238

 

frameworks/base/core/java/android/view/View.java
    /**
     * Pass the touch screen motion event down to the target view, or this
     * view if it is the target.
     *
     * @param event The motion event to be dispatched.
     * @return True if the event was handled by the view, false otherwise.
     */
    public boolean dispatchTouchEvent(MotionEvent event) {
        Log.d("SPRD_View","dispatchTouchEvent: getAction = "+event.getAction()+"; getEventTime = "+event.getEventTime()+"; getDownTime = "+event.getDownTime());

        // If the event should be handled by accessibility focus first.
        if (event.isTargetAccessibilityFocus()) {
            // We don't have focus or no virtual descendant has it, do not handle the event.
            if (!isAccessibilityFocusedViewOrHost()) {
                Log.d("SPRD_View","dispatchTouchEvent: 1.getAction = "+event.getAction()+"; getDownTime = "+event.getDownTime()
                        +"; ***return false***");
                return false;
            }
            // We have focus and got the event, then use normal event dispatch.
            event.setTargetAccessibilityFocus(false);
    

 

FW部分从事件的接收到分发 18:36:47.749 ---> 18:36:47.756  耗时7ms从FW部分看是没有优化的空间了。 

 

 

user版本:
python systrace.py am wm view res ss database freq gfx rs hal bionic pm sched idle load binder_driver binder_lock memreclaim dalvik input -t 8 -o test.html -b 10240 
debug版本:
python systrace.py -t 8 am wm view res ss database freq sched gfx input idle binder_driver binder_lock dalvik -o 8.1_sharkle_apk.html 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值