Don Blog

Thinking will not overcome fear but action will.

Android AOP从入门到实战

前言 在Android中AOP也越来越多的被提到,那么AOP到底是什么呢?它和OOP是什么关系?本文笔者将带领大家初探Android中AOP的使用。 一、什么是AOP? AOP:面向切面编程(Aspect Oriented Programming),通过预编译方式以及运行期间动态代理的方式实现程序功能的统一维护的一种技术。简单来说就是对业务逻辑中的相同功能或步骤进行提取,做一个统一的管...

Android AOP之AspectJ入门

前言 什么是AOP,什么是AspectJ,这里就不过多介绍了,如果有不懂的,请移步Android AOP从入门到实战 进行了解,本文旨在AspectJ使用介绍。 一、术语 Join Points Join Points(连接点),简称JPoints,简单点说就是你想在程序的哪个地方插入代码,能插入代码的地方就称为Join Points。 请注意,并不...

发布Android library到JitPack

作为一名合格的开发者,除了会使用轮子外还要会造轮子,那么造了轮子如何发布呢?这里介绍一种目前最简单的发布方式JitPack 1.添加android-maven 插件 在项目根目录下的build.gradle中添加如下代码 buildscript { dependencies { classpath 'com.github.dcendents:and...

Artifactory助飞你的开发效率

JFrog Artifactory有的人陌生但有的人不陌生。它主要是一款二进制存储管理工具,可以搭建私服,帮助我们管理我们的构件,以提升我们的开发效率。 笔者将从搭建开始并示范如何提升你的开发效率。 搭建之前请先android jdk1.8,否则搭建不成功 下载 下载地址(Windows & Mac): 链接: https://pan.baidu.com/s/1phFGTa7-...

Rxjava2中CompositeDisposable解除订阅注意事项

在Rxjava2中可以使用CompositeDisposable的dispose()和clear()2个方法批量解除订阅,但是这2个方法却有很大的区别,如果不知道其中区别而你一旦又用错了地方,那你会很难找到问题的原因。 让我们先来看一下CompositeDisposable的相关源码: /** * A disposable container that can hold onto mul...

Android 面试之内存优化篇

众所周知,内存对于Android来说是非常宝贵的,而且它对于应用程序的影响是非常大的,因此在面试时经常会被问到内存相关的问题,本文,笔者将带领大家一起来学习一下Android中的内存优化。 如果有朋友不想对原理有些了解,只对优化方案感兴趣的话可以直接跳过前面3部分,从第4部分看起即可,但是笔者还是希望您能从头看起。 一、Android内存管理机制 内存管理说白了其实就是对内存的分配与回收...

android gradle 升级到3.5.2以上版本报错 :app:compileDebugJavaWithJavac

每次打开android studio 都会提示 gradle 升级,有一天手贱升级了,从3.1.4升级到3.5.3,然后遇到了如下错误: org.gradle.internal.exceptions.LocationAwareException: Execution failed for task ':app:compileDebugJavaWithJavac'. at org.gradl...

完美解决ScrollView嵌套可滑动EditText滑动冲突的问题

最近有个项目,ScrollView中嵌套嵌套了一个可以上下滑动的多行EditText,而且EditText滑动到顶部或者顶部时需要将滑动事件交还给ScrollView, 具体效果如下(图片中可能有些卡顿,但是实际非常流畅): 好了,话不多说,直接上代码: public class EditTextWithScrollView extends AppCompatEditText { ...

Android事件分发机制详解

我想不管是在开发过程中还是在面试过程中都会碰到View事件分发机制的相关问题,今天我们就由浅入深、全面刨析一下事件分发的机制,请耐心看完,如果看完后还没有理解就请你打我。 事件分发的原理 事件分发,其实就是责任链模式的一种(责任链模式分为纯责任链与不纯责任链,此处应为纯责任链模式。责任链模式的定义:避免将一个请求的发送者与接收者耦合在一起,让多个对象都有机会处理请求。将接收请求的对象连接成...

Android Databinding 报错Cannot resolve symbol BR.xxx.

在使用DataBinding开发的过中,经常会出现无法引用到BR类的字段的情况,如下图所示: 一般情况下会有以下几种解决办法: 1、Clean Project 2、Rebuild Project 3、Invalidate caches/restart 但是很不幸,有时候以上方法仍然无法解决,此处记录以下我的解决方法,以备他日不时之需: 重新导入BR类的包或者在BR类...