如何抓取framework input事件相关log
时间:10-02
整理:3721RD
点击:
[DESCRIPTION]
出现事件输入相关的问题时, 建议先follow FAQ08115来检测对应的设备是否有响应输入
如果没有响应输入,则可能是 driver 或者输入设备模组问题, 请提交 E-service, 我司driver同仁会来跟进
如果有输入设备响应输入, 则需要打开以下log开关,抓取mobile log给我司, 以便检查php?mod=tag&id=6090" target="_blank" class="relatedlink">Framework层的对事件的处理
[SOLUTION]
App层 (CLIent) 适用于JB,KK,L版本:
动态开启APP层LOG方法如下:
adb shell setprop debug.viewroot.enable 7000
adb shell setprop debug.view.keylog true
adb shell setprop debug.view.touchlog true
adb shell setprop debug.view.motionlog true
adb shell stop
adb shell start
需等待手机软重启后才能生效
静态修改请直接修改DEBUG的值。
开启ViewRootImpl/View/ViewGroup中input event的处理过程的log开关:
frameworks/base/core/java/android/view/viewrootimpl.Java 中的 DEBUG_INPUT 开关(设置为
true);
frameworks/base/core/java/android/view/viewgroup.java 中的 DBG_MOTION ,DBG_TOUCH开关
frameworks/base/core/java/android/view/view.java 中的 DBG_MOTION ,DBG_TOUCH开关
frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindow.java 中的
DBG_MOTION 开关
frameworks/base/core/java/android/view/KeyEvent.java 中的 DEBUG 开关
framework(server): 层
动态打开方法 (适用于KK,L. 其中KK只适用于eng build, L适用于eng build 和user build):
adb shell setprop sys.inputlog.enabled true
adb shell dumpsys input
不用重启手机就可以生效,重启手机后会失效。
静态开启方法:
frameworks/base/services/input/inputReader.cpp (for ICS & JBx ,KK版本)
frameworks/native/services/inputFlinger/inputReader.cpp (for L 版本)
找到以下宏定义, 并将其值改为如下
#define DEBUG_RAW_EVENTS 1
#define DEBUG_HACKS 1
#define DEBUG_VIRTUAL_KEYS 1
#define DEBUG_POINTERS 1
#define DEBUG_POINTER_ASSIGNMENT 1
#define DEBUG_GESTURES 1
#define DEBUG_VIBRATOR 1
frameworks/base/services/input/inputDispatcher.cpp (for ICS & JBx ,KK版本)
frameworks/native/services/inputFlinger/inputDispatcher.cpp (for L 版本)
找到以下宏或变量定义, 并将其值改为如下
#else // 改 else 分支中的定义
#define DEBUG_INBOUND_EVENT_DETAILS 1
#define DEBUG_OUTBOUND_EVENT_DETAILS 1
#define DEBUG_DISPATCH_CYCLE 1
#define DEBUG_REGISTRATION 1
#define DEBUG_INJECTION 1
#define DEBUG_FOCUS 1
#define DEBUG_APP_SWITCH 1
#define DEBUG_HOVER 1
#endif
bool gInputLogEnabled = true;
frameworks/base/libs/androidfw/inputTransport.cpp (for ICS & JBx 版本)
找到以下宏或变量定义, 并将其值改为如下
#else // 改 else 分支中的定义
#define DEBUG_CHANNEL_MESSAGES 1
#define DEBUG_CHANNEL_LIFECYCLE 1
#define DEBUG_TRANSPORT_ACTIONS 1
#define DEBUG_RESAMPLING 1
#endif
static bool gInputLogEnabled = true;
frameworks/native/libs/input/inputTransport.cpp (for KK,L 版本)
找到以下变量定义, 并将其值改为如下
static bool gInputLogEnabled = true;
出现事件输入相关的问题时, 建议先follow FAQ08115来检测对应的设备是否有响应输入
如果没有响应输入,则可能是 driver 或者输入设备模组问题, 请提交 E-service, 我司driver同仁会来跟进
如果有输入设备响应输入, 则需要打开以下log开关,抓取mobile log给我司, 以便检查php?mod=tag&id=6090" target="_blank" class="relatedlink">Framework层的对事件的处理
[SOLUTION]
App层 (CLIent) 适用于JB,KK,L版本:
动态开启APP层LOG方法如下:
adb shell setprop debug.viewroot.enable 7000
adb shell setprop debug.view.keylog true
adb shell setprop debug.view.touchlog true
adb shell setprop debug.view.motionlog true
adb shell stop
adb shell start
需等待手机软重启后才能生效
静态修改请直接修改DEBUG的值。
开启ViewRootImpl/View/ViewGroup中input event的处理过程的log开关:
frameworks/base/core/java/android/view/viewrootimpl.Java 中的 DEBUG_INPUT 开关(设置为
true);
frameworks/base/core/java/android/view/viewgroup.java 中的 DBG_MOTION ,DBG_TOUCH开关
frameworks/base/core/java/android/view/view.java 中的 DBG_MOTION ,DBG_TOUCH开关
frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindow.java 中的
DBG_MOTION 开关
frameworks/base/core/java/android/view/KeyEvent.java 中的 DEBUG 开关
framework(server): 层
动态打开方法 (适用于KK,L. 其中KK只适用于eng build, L适用于eng build 和user build):
adb shell setprop sys.inputlog.enabled true
adb shell dumpsys input
不用重启手机就可以生效,重启手机后会失效。
静态开启方法:
frameworks/base/services/input/inputReader.cpp (for ICS & JBx ,KK版本)
frameworks/native/services/inputFlinger/inputReader.cpp (for L 版本)
找到以下宏定义, 并将其值改为如下
#define DEBUG_RAW_EVENTS 1
#define DEBUG_HACKS 1
#define DEBUG_VIRTUAL_KEYS 1
#define DEBUG_POINTERS 1
#define DEBUG_POINTER_ASSIGNMENT 1
#define DEBUG_GESTURES 1
#define DEBUG_VIBRATOR 1
frameworks/base/services/input/inputDispatcher.cpp (for ICS & JBx ,KK版本)
frameworks/native/services/inputFlinger/inputDispatcher.cpp (for L 版本)
找到以下宏或变量定义, 并将其值改为如下
#else // 改 else 分支中的定义
#define DEBUG_INBOUND_EVENT_DETAILS 1
#define DEBUG_OUTBOUND_EVENT_DETAILS 1
#define DEBUG_DISPATCH_CYCLE 1
#define DEBUG_REGISTRATION 1
#define DEBUG_INJECTION 1
#define DEBUG_FOCUS 1
#define DEBUG_APP_SWITCH 1
#define DEBUG_HOVER 1
#endif
bool gInputLogEnabled = true;
frameworks/base/libs/androidfw/inputTransport.cpp (for ICS & JBx 版本)
找到以下宏或变量定义, 并将其值改为如下
#else // 改 else 分支中的定义
#define DEBUG_CHANNEL_MESSAGES 1
#define DEBUG_CHANNEL_LIFECYCLE 1
#define DEBUG_TRANSPORT_ACTIONS 1
#define DEBUG_RESAMPLING 1
#endif
static bool gInputLogEnabled = true;
frameworks/native/libs/input/inputTransport.cpp (for KK,L 版本)
找到以下变量定义, 并将其值改为如下
static bool gInputLogEnabled = true;