`
- 浏览:
81852 次
- 性别:
- 来自:
西安
-
如何抓取 framework input 事件相关 log
[DESCRIPTION]
出现事件输入相关的问题时, 建议先 followhttp://429564140.iteye.com/blog/2355405来检测对应的设备是否有响应输入
如果没有响应输入,则可能是 driver 或者输入设备模组问题,
如果有输入设备响应输入, 则需要打开以下 log 开关,抓取 mobile log 检查 framework 层的对事件的处理
[SOLUTION]
注意:
USER版本只能使用静态方式(修改代码)打开debug开关
ENG版本可以使用动态方式(命令)打开debug开关
App 层 (client) 适用于JB,KK,L,M版本:
动态开启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,M. 其中KK只适用于eng build, L,M适用于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 ,M版本)
找到以下宏定义, 并将其值改为如下
#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, M 版本)
找到以下宏或变量定义, 并将其值改为如下
#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 ,M版本)
找到以下变量定义, 并将其值改为如下
static bool gInputLogEnabled = true;
因为很多input无响应的问题,常常会跟window的focus扯上关系,如果有需要
可以用下面的命令打开ams和wms的LOG。
adb shell dumpsys activity log x on
adb shell dumpsys window -d enable a
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
本篇将详细介绍如何使用 Robot Framework 上传 "data folder",以及该过程中的相关知识点。 首先,我们需要理解 Robot Framework 的核心概念:测试套件(Test Suite)、测试用例(Test Case)和关键字(Keyword)。...
This is a lightweight Android log component. 中文介绍 Features [x] Support for all basic data types, arrays、Map、List、Bundle、Intent、Reference、Throwable、Collection [x] Support Json, ...
public void Add_ValidInput_ReturnsCorrectResult() { var myClass = new MyClass(); int result = myClass.Add(2, 3); Assert.AreEqual(5, result); } } ``` 运行这个测试,NUnit将检查`Add`方法是否按预期...
首先,我们要了解Django REST framework以及Vue.js是什么。Django REST framework是一个强大且灵活的工具,用于构建Web API。Vue.js则是一个渐进式JavaScript框架,用于构建用户界面。将这两个技术结合起来实现用户...
机器人框架指标报告通过解析robotframework output.xml文件创建出色HTML(仪表盘视图)报告 样品报告v3.2.2新增功能用于解析指标报告output.xml的源代码这个怎么运作: 使用robotframework API读取output.xml文件...
1. Introduction to Zend Framework 1.1. 概述 1.2. 安装 2. Zend_Acl 2.1. 简介 2.1.1. 关于资源(Resource) 2.1.2. 关于角色(Role) 2.1.3. 创建访问控制列表(ACL) 2.1.4. 注册角色(Role) 2.1.5. 定义访问...
Robot Framework是基于Python和Java的一种自动化测试框架,广泛应用于测试驱动开发。它提供了一个简单的语法,用表格格式来编写测试用例,这使得即使是没有编程背景的测试人员也能快速上手。Robot Framework内建...
### RobotFramework Selenium2 关键字详解 #### 一、引言 RobotFramework 是一个通用的自动化测试框架,它支持多种编程语言(如Python、Java等)进行扩展,并且可以通过多种库来实现不同的功能。其中,Selenium2...
### ZEND Framework 编码规范详解 #### A.1. 总论 **范围与目的** 在软件开发领域,特别是基于 ZEND Framework 的项目中,统一且规范化的编码标准至关重要。良好的编码标准不仅能提升代码质量,还能增强项目的可...
Using Log4J ............................................................................................. 14 II. What’s New in Spring Framework 4.x ......................................................
如:解析以下命令:--framework=5 --model=./yolov5l.onnx --input_format=NCHW --input_shape="images:1,3,960,960" --output_type=FP32 --output=./yolov5l_onnx --log=error --precision_mode=allow_fp32_to_fp16...
### Robot Framework 中验证下拉列表值是否正确及查询内容是否正确的知识点 在自动化测试领域,Robot Framework 是一种广泛使用的开源自动化框架,它支持关键字驱动测试方法,并且具有强大的可扩展性,可以集成到...
09. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 10. </listener> 11. 12. <servlet> 13. <servlet-name>spring</servlet-name> 14. <servlet-class>org.spring...
NPM $ npm install @cocreate/input目录如何贡献关于执照 公告内容该库的所有更新都记录在我们的CHANGELOG和发行版中。 您也可以订阅电子邮件以获取发行和重大更改。 路线图如果您对这个项目的未来方
<property name="CONSOLE_LOG_PATTERN" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr([${springAppName:-},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}]...
2. 配置Spring Framework相关依赖。 ### 三、实现步骤 #### 1. 创建表单页面(index.jsp) ```jsp ;charset=GBK" %> 文件上传示例 请上传文件 文件1:<input type="file" name="file"/> 文件2:...
jwx是开源的java公众号开发MVC框架,基于spring配置文件和微信消息或事件注解,通过微信上下文处理一个或多个微信公众号服务请求。目的主要有两个,其一生封装微信请求xml消息为java实体对象,将返回对象转换为xml...
Using Log4J ............................................................................................. 14 II. What’s New in Spring Framework 4.x ......................................................