静态代理这么用?--聊一聊ViewPagerIndicator重构的一些经验 ViewPagerIndicator的代码可谓一波三折,在不久前ViewPagerIndicator作为一个单独的仓库从BannerViewPager中拆分了出来。拆分后的indicator已经不仅仅适用于BannerViewPager,还可以用于ViewPager和ViewPager2。现在,经历了几次代码重构后,总算可以拿得出手了。本篇文章就来写一写关于重构indicator的一些经验,了解下 2019-11-24 设计模式 设计模式 ViewPager2 indicator
BannerViewPager源码剖析(二) BannerViewPager系列文章共三篇,此文为第二篇,另外两篇参看下面链接: 《打造一个丝滑般自动轮播无限循环Android库》 《剖析BannerViewPager中Indicator的设计思想》 上篇文章《打造一个丝滑般自动轮播无限循环Android库》非常详细的介绍了BannerViewPager的基础功能及使用方法。我们知道BannerViewPager不但可以支持任意的页面布局,而 2019-09-08 自定义View 自定义View BVP
打造一个丝滑般自动轮播无限循环Android库(一) 本文同步发布在掘金,如需转载请注明出处。 BannerViewPager系列文章共三篇,此文为第一篇,另外两篇参看下面链接: BannerViewPager源码剖析 剖析BannerViewPager中Indicator的设计思想 最近公司项目在升级AndroidX,由于项目中用到的一些比较老的库都已停止更新维护,因此需要将这些库替换掉,其中就包括自动轮播的Banner库。恰逢笔者在之前写过一个轮 2019-09-01 自定义View 自定义View BVP ViewPager2
手撕黄油刀--探究ButterKnife的实现原理 上篇文章《Java编译时注解处理器(APT)详解》中学习了Java APT技术在Android中的使用,并且我们知道,当前Android开发中常用的许多框架都使用了APT技术,并且ButterKnife就是利用APT来实现的。那么本篇内容我们就来探究一下ButterKnife的实现原理。 一、ButterKnife的bind过程当然,在探究源码,还是首先应该了解如何使用,我们以ButterKnif 2019-08-26 源码分析 源码分析 APT
编译时注解处理器 上篇文章我们使用注解+反射实现了一个仿ButterKnife功能的示例。考虑到反射是在运行时完成的,多少会影响程序性能。因此,ButterKnife本身并非基于注解+反射来实现的,而是用APT技术在编译时处理的。APT什么呢?接下来一起来看。 一、APT简介1.什么是APT?APT即为Annotation Processing Tool,它是javac的一个工具,中文意思为编译时注解处理器。APT 2018-09-10 Java进阶 APT Annotation
java中的注解及其实例应用 Java注解在我们项目开发 中是非常常见的。比如经常用到的几种java内置的注解: @Override,表示当前的方法定义将覆盖超类中的方法。 @Deprecated,表示当前方法即将废弃,不推荐使用。 @SuppressWarnings,表示忽略编译器的警告信息。 对于上面几个注解想必大家都不会陌生。除此之外,我们还经常在一些第三方框架中看到一些自定义注解。比如大名鼎鼎的ButterKni 2018-08-25 Java进阶 Annotation,Java注解
基于Arouter的路由实现方案 一、为什么要在项目中引入路由?在开始之前我们先来思考一下这个问题。为什么要在项目中引入路由?相信大家的答案可能会有所不同,但是应该也不外乎以下几点: 1.为了实现项目组件化想必很多开发者引入路由的目的都是因为要实现项目组件化。我们知道,组件化的项目各个业务模块之间没有相互的依赖关系。不同业务模块之间的通信最好的解决方案就是支持页面路由。 2.方便APP内部跳转可能有些小伙伴会有疑问,App内部直接 2018-07-26 Android Arouter
自定义View之弹性滑动的LockView 本篇文章我们来实现一个带有弹性滑动效果的自定义View。当然,文章的侧重点是自定义View但也会涉及到View的事件分发以及一些其他方面的知识,例如使用Scroller实现带有阻尼效果的弹性滑动。因此,我相信看完这篇文章你不仅能学到自定义View的相关知识,还会了解到View的事件分发!还是老规矩,看下最终实现效果。 分析图中效果会发现其核心功能类似于一个简单的下拉刷新、上拉加载的框架,但又有区别 2018-07-14 自定义View 自定义View
Android Widget开发详解 好久没博客更新了,本篇文章来学习一下如何实现一个Android列表小部件,效果可以参看下图:这个页面如果是在App内部实现,相信只要有一点Android基础的童鞋都能很轻松写出来。但是如果放到Widget中可能就不是那么简单了。因为Widget并没有运行在我们App的进程中,而是运行在系统的SystemServer进程中。你可能会惊讶,Whf!竟然不在我们App进程中!那么是不是意味着我们也不能像 2018-06-21 Android Widget
关于Https的那些事儿 由于前不久苹果公司已经强制IOS应用必须使用HTTPS协议开发,虽然Google没有强制开发者使用HTTPS,但相信不久的将来Android也会跟随IOS全面转向HTTPS。因此,HTTPS的学习也是相当重要。本篇文章涉及到的代码不多,主要内容是对HTTPS协议的讲解,最后将结合Retrofit实现HTTPS的单双向认证。 下面将通过以下几节内容来学习HTTPS。 HTTPS概述 HTTPS实现 2018-02-12 网络安全 https