博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SimpleTouch:事件分发可以如此清晰
阅读量:6723 次
发布时间:2019-06-25

本文共 1714 字,大约阅读时间需要 5 分钟。

该库已经开源到github,地址

一个用于监听android事件分发流程的库,两行代码即可在运行时期监听事件的分发流程。自动打印分发流程,并提供视图查看。

功能展示

控制台日志输出

图表形式查看

JSON格式查看

简介

SimpleTouch为了解决事件分发问题而诞生,该库可以在运行时期打印完整的事件分发流程。

  • 监听ViewdispatchTouchEventonTouchEventonInterceptTouchEvent
  • 运行时期动态打印事件分发流程。
  • 每一次完整的事件分发记录以json的形式写入文件。
  • 去重功能,对相同的move事件会自动过滤。
  • 提供no-op版本,使用时可区分debugrelease
  • 提供不同模式显示

使用

添加依赖

在项目的app下的build.gradle中添加依赖

debugApi 'com.spearbothy:simple-touch:1.0.7'releaseApi 'com.spearbothy:simple-touch-no-op:1.0.7'复制代码

初始化

在项目的ApplicationonCreate()中调用初始化方法Touch.inject(this);

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;}复制代码

注入代理类(用于监听事件分发)

ActivityonCreate()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版本,该版本中包含有初始化和注入方法的空实现,以达到debugrelease使用不同的版本,使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

转载于:https://juejin.im/post/5cf62ab9518825789e031b24

你可能感兴趣的文章
SQL中 decode()函数简介 - FreeSpider - 博客园
查看>>
Java开发人员常用的服务配置(Nginx、Tomcat、JVM、Mysql、Redis)
查看>>
[剑指offer] 从尾到头打印链表
查看>>
最新Android Glide4.0加载Gif图片到ImageView
查看>>
Spring Security实现RBAC权限管理
查看>>
可以用TFTP,或者FTP直接下载。 你也可以用软件CRT中执行show start-config
查看>>
[数据结构]双机调度问题
查看>>
完成端口与高性能服务器程序开发(转)
查看>>
前端开发学习笔记一
查看>>
linux iscsi initiator 安装配置
查看>>
oracle中exp/imp详解
查看>>
下载器-http 进度条 文件读写
查看>>
[20160919]Result cache问题.txt
查看>>
Linux系统硬盘读写测试
查看>>
移动端点击300ms延迟
查看>>
外网用户远程控制内部网络设备
查看>>
android 屏幕自适应问题
查看>>
五、性能监视(1)事件探查器
查看>>
Num40 ssh项目--orm案例小小知识点
查看>>
集群KEEPALIVED服务宕掉解决
查看>>