Colourful Day

我需要,最狂的风,和最静的海。

——顾城《第八个早晨》


  • 首页

  • 分类

  • 归档

  • 标签

  • 留言

  • 关于

利用AOP对点击事件作防抖处理

发表于 2019-02-23 | 分类于 Android Blog | 评论数:
Header最近项目中有一个需求,需要对重复的点击事件作过滤处理。 可能第一个想到的方法是在 OnClickListener.onClick 中根据时间间隔来判断,这也是比较传统的方案。但是缺点同样也很明显,就是对现有代码的侵入性太强了。因为点击事件回调的代码我们早已写好了,现在再去改动会很痛苦,并且改动的范围也很广。 那么有没有一种方法是不需要改动源代码,就可以实现对点击事件去重的呢?当然有,我们可以利用 AOP 来实现一套方案。接下来就来讲讲这套方案就具体实现。 Body在写代码之前,需要先设置 AOP 的配置,AOP 一般采用的是 AspectJ 。而在 Android 中一般直接使用 ...
阅读全文 »

使用OpenCV对图片进行二值化和去燥处理

发表于 2019-01-13 | 更新于 2019-01-18 | 分类于 Android Blog | 评论数:
最近做的项目中有使用到 OpenCV ,并且利用了 OpenCV 对图片做一些简单的处理。所以今天打算记录一下一些常用的 OpenCV 操作。 以下的 OpenCV 代码都是基于 OpenCV v3.3.0 aar 版本 二值化所谓的二值化,就是将图片上的像素点的灰度值设置为0或255,也就是将整个图片呈现出明显的只有黑和白的视觉效果。 12345678910111213141516public static Bitmap binarization(Bitmap bitmap) { // 创建一张新的bitmap Bitmap result = Bitmap.createBi ...
阅读全文 »

ARouter源码解析(五)

发表于 2019-01-10 | 更新于 2019-03-05 | 分类于 Android Blog | 评论数:
arouter-gradle-plugin version : 1.0.2 AutoRegister : https://github.com/luckybilly/AutoRegister 前言在本系列的第一篇中讲过,ARouter 可以通过扫描 dex 文件中 class 的全类名,来加载 compiler 生成的路由类。但这种方式影响性能,并且效率也不高。所以在 ARouter v1.3.0 之后的版本中,加入了自动注册的方式进行路由表的加载,自动注册可以缩短初始化时间,解决应用加固导致无法直接访问 dex 文件从而初始化失败的问题。 那么自动注册到底是什么东东,为什么有这么强大的能力呢 ...
阅读全文 »

ARouter源码解析(四)

发表于 2019-01-05 | 更新于 2019-03-05 | 分类于 Android Blog | 评论数:
arouter-compiler version : 1.2.2 前言之前对 arouter-api 做了整个流程的分析,今天来看看 arouter-compiler 。 arouter-compiler 主要是利用 apt 在编译期自动生成代码的。之前我们看到的 ARouter$$Root$$app 、 ARouter$$Group$$test 和 Test1Activity$$ARouter$$Autowired 等都是 arouter-compiler 生成的。 那接下来就分析分析 arouter-compiler 是怎么生成这些源码的。 arouter-compilerarouter- ...
阅读全文 »

ARouter源码解析(三)

发表于 2019-01-03 | 更新于 2019-03-05 | 分类于 Android Blog | 评论数:
arouter-api version : 1.4.1 前言到现在为止,ARouter 还有最后的依赖注入还没有解析过,那么今天就来深入探究一下其实现原理。 PS : 因为依赖注入的原理还比较简单,所以本篇篇幅会较短。 @Autowired解析想要用 ARouter 实现依赖注入,需要在 Activity/Fragment 中加上 ARouter.getInstance().inject(this); 那么我们这个代码就成为了我们分析的入口了。 123public void inject(Object thiz) { _ARouter.inject(thiz);} A ...
阅读全文 »

ARouter源码解析(二)

发表于 2019-01-02 | 更新于 2019-03-05 | 分类于 Android Blog | 评论数:
arouter-api version : 1.4.1 前言前几天对 ARouter 的页面跳转源码进行了分析,趁着今天有空,就讲讲 ARouter 里面的拦截器吧。 ARouter 拦截器的使用方法在这就不多说了,不了解的同学可以去 GitHub 上看看。那就直接进入正题了。 拦截器解析把视线转移回 ARouter 的 init 方法 12345678910111213public static void init(Application application) { if (!hasInit) { logger = _ARouter.logger; ...
阅读全文 »

ARouter源码解析(一)

发表于 2018-12-24 | 更新于 2019-03-05 | 分类于 Android Blog | 评论数:
arouter-api version : 1.4.1 前言之前对 ActivityRouter 的源码做了一次分析,相信大家对路由框架已经有一个大概的理解了。 而今天给大家分析一下 ARouter 。大家在项目组件化的过程中,可能绝大多数的开发者都会使用 ARouter 来作为项目的路由框架。毕竟 ARouter 是阿里出品,优点自然不必多说了。 所以在平常使用的过程中,不仅仅要做到会用,还要深入了解一下 ARouter 的内部原理。 本次 ARouter 的解析分为三部分: 对 IRouteRoot 页面跳转进行源码解析; 对 IInterceptorGroup 拦截器进行源码解析; 对 ...
阅读全文 »

从SVN迁移到GitLab

发表于 2018-11-15 | 分类于 Android Blog | 评论数:
之前公司代码版本管理用的都是 SVN ,最近搭了 GitLab 。所以想把代码从 SVN 迁移到 GitLab 上。但是 SVN 的提交记录又不能丢,也要跟着一起迁移,所以本篇记录一下迁移的方法。 yum install -y git-svn 安装 git-svn ,可以帮助你很轻松的从 SVN 转到 GitLab 上。 然后 cd 到要迁移到 SVN 项目的根目录下 svn log --xml | grep author | sort -u | perl -pe 's/.>(.?)<./$1 = /' 这条命令会输出 SVN 所有提交过的人的名字,比如 xia ...
阅读全文 »

Linux上安装GitLab和Jenkins

发表于 2018-11-13 | 分类于 Android Blog | 评论数:
之前在公司的服务器上搭建了 GitLab 和 Jenkins ,所以打算把这过程记录下,以便下次有需要时可以复用。 Git在搭建 GitLab 之前,肯定要先安装 Git 。 在 https://github.com/git/git/releases 中选择最新版本的 Git,然后 wget https://github.com/git/git/archive/v2.19.1.tar.gz 下载下来后,我们进行解压 tar -zxvf v2.19.1.tar.gz 进入解压后的文件夹 cd git-2.19.1 之后我们需要编译 Git 的源码,在这之前我们先安装编译需要的依赖,这里可能提示需 ...
阅读全文 »

ActivityRouter源码解析

发表于 2018-07-22 | 更新于 2019-03-05 | 分类于 Android Blog | 评论数:
ActivityRouter :https://github.com/mzule/ActivityRouter Header在如今的 Android 组件化开发中,一款好的路由框架是不可或缺的。比如目前阿里的 ARouter 、美团的 WMRouter 等。路由框架可以降低 Activity 之间的耦合,从而在不需要关心目标 Activity 的具体实现类, 利用协议完成跳转。 ActivityRouter使用方法在AndroidManifest.xml配置 <activity android:name="com.github.mzule.activityrouter. ...
阅读全文 »
1234…12
俞其荣

俞其荣

向前跑 迎着冷眼和嘲笑

120 日志
11 分类
51 标签
RSS
GitHub Twitter 微博 Email
Creative Commons
© 2015 — 2021 俞其荣
由 Hexo 强力驱动
|
主题 — NexT.Muse
Hosted by Coding Pages