该库已经开源到github,地址github.com/AlexMahao/S…java
一个用于监听android事件分发流程的库,两行代码便可在运行时期监听事件的分发流程。自动打印分发流程,并提供视图查看。android
控制台日志输出git
图表形式查看github
JSON格式查看json
SimpleTouch
为了解决事件分发问题而诞生,该库能够在运行时期打印完整的事件分发流程。bash
View
的dispatchTouchEvent
,onTouchEvent
,onInterceptTouchEvent
。json
的形式写入文件。move
事件会自动过滤。no-op
版本,使用时可区分debug
和release
。添加依赖app
在项目的app
下的build.gradle
中添加依赖ide
debugApi 'com.spearbothy:simple-touch:1.0.7'
releaseApi 'com.spearbothy:simple-touch-no-op:1.0.7'
复制代码
初始化gradle
在项目的Application
的onCreate()
中调用初始化方法Touch.inject(this);
ui
Touch.init(this, new Config().setSimple(false));
复制代码
Config
对象提供一些配置选项
public class Config {
// 输出的日志以极简模式输出
private boolean isSimple = true;
// 是否延迟打印日志,延迟打印日志会在触摸事件结束以后打印,而且具备去重功能
private boolean isDelay = true;
// 是否保留重复的,默认不保留
private boolean isRepeat = false;
// 是否写入到文件
private boolean isPrint2File = true;
// 是否处理,不处理则不会监放任何方法,任何功能都没法生效
private boolean isProcess = true;
}
复制代码
注入代理类(用于监听事件分发)
在Activity
的onCreate()
的super.onCreate(savedInstanceState);
以前调用.
@Override
protected void onCreate(Bundle savedInstanceState) {
Touch.inject(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRootView = (LinearLayout) findViewById(R.id.root);
}
复制代码
使用
编译完成以后,打开app,开始触摸吧!!! 每一次手指离开到触摸请间隔大于1s,目的是对于每次触摸加以区分,暂时没想到合适的判断条件。
流程图查看
下拉通知中能够看到SimpleTouch的入口
备注
no-op
版本,该版本中包含有初始化和注入方法的空实现,以达到debug
和release
使用不一样的版本,使release
不包含任何注入和初始化逻辑。com.android.support:appcompat-v7
com.google.dexmaker:dexmaker
com.alibaba:fastjson
com.noober.background:core
com.yuyh.json:jsonviewer
有任何疑问能够经过issue
或者以邮件的形式发送到zziamahao@163.com