- 博客(24)
- 收藏
- 关注
原创 Android Gradle权威指南
Android Gradle权威指南1.Android Gradle插件介绍2.Android Gradle插件分类3.Android Gradle工程配置介绍4.自定义Android Gradle工程5.高级自定义Android Gradle(动态生成版本信息)6.动态配置AndroidManifest文件7.自定义你的BuildConfig8.签名管理(非常重要)9.总结1.Android ...
2019-11-16 00:39:18
445
原创 Android设计模式——代理模式
Android设计模式——代理模式1.代理模式定义2.使用场景3.代理模式分类3.1 静态代理3.2 动态代理4.源码中的代理模式1.代理模式定义 为其他对象提供一种代理控制这个对象的访问。说白了就是我们生活中的经纪人,我们想要做什么事情,都需要先询问经纪人,经纪人在来询问我们。2.使用场景 当无法或不想直接访问某个对象或者访问该对象存在困难时可以通过一个代理对象来间接访问,为了保证客...
2019-10-05 15:26:17
268
原创 Android设计模式——观察者模式
Android设计模式——适配器模式1.适配器模式定义2.适配器模式分类2.1 类适配模式2.2 对象适配模式 (常用)3.Android源码中适配器模式4.总结:1.适配器模式定义 适配器就是把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。说白了适配器模式就是将某个对象适配成我们需要的对象。2.适配器模式分类2.1 类适配模式...
2019-10-03 22:48:34
270
原创 Android设计模式——适配器模式
Android设计模式——适配器模式1.适配器模式定义2.适配器模式分类2.1 类适配模式2.2 对象适配模式 (常用)3.Android源码中适配器模式4.总结1.适配器模式定义 适配器就是把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。说白了适配器模式就是将某个对象适配成我们需要的对象。2.适配器模式分类2.1 类适配模式...
2019-10-03 11:57:42
344
原创 Android设计模式——策略模式
Android设计模式——策略模式1.策略模式定义2.策略模式使用场景3.策略模式演变小事例(计算利息)3.1 普通写法(管理类)3.2 策略模式写法4.UML图1.策略模式定义 策略模式定义了一系列的算法,将每一个算法封装起来,他们之间可以做到相互切换。2.策略模式使用场景 1.如果一个抽象类有多个子类,而且需要使用if-else或者switch-case来选择具体子类。3.策略模...
2019-10-02 12:58:27
168
原创 Android设计模式——模板模式
Android设计模式——模板模式1.模板模式定义2.模板使用场景3.源码中用到的模板设计模式3.1 Activity的生命周期采用了模板设计模式3.2 AsyncTask也采用了模板设计模式3.3 AsyncTask简单使用3.4 AsyncTask源码简单分析4.线程池介绍5.常用的BaseActivity模板模式1.模板模式定义 定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使...
2019-10-01 23:17:09
499
原创 Android设计模式——工厂模式
Android设计模式——工厂模式1.什么是工厂设计模式?2.工厂设计模式的分类2.1简单工厂模式:2.2 方法工厂模式:2.3 抽象工厂模式3.总结1.什么是工厂设计模式? 工厂设计模式,说白了,就是用来生产对象的,在java中,万物皆对象,这些对象都需要创建,如果创建的时候直接new该对象,就会对该对象耦合严重,假如我们要更换对象,所有new对象的地方都需要修改一遍,这显然违背了Java...
2019-09-30 17:35:40
270
原创 Android设计模式——Builder模式
Android设计模式——Builder模式1.Builder模式介绍2.Builder模式使用场景3.Builder模式和链式调用的区别4. 手动实现一个导航栏5.总结5.1 优点5.2 缺点1.Builder模式介绍 Builder模式又称建造者模式,将复杂对象的构建过程和表示过程进行分离,让其(参数)构建过程变得更加的简单和直观。2.Builder模式使用场景 1.一个复杂的对象...
2019-09-29 08:55:54
653
原创 Android设计模式——单例模式
真的了解单例设计模式吗1.单例设计模式2.使用套路3. 单例常用的几种方式3.1 单例——饿汉式3.2 单例——懒汉式3.3 单例——懒汉式(DCL)(常用)3.4 单例——静态内部类(常用)3.5 单例——容器管理(系统服务使用的方式,等下看下源码)3.6 单例——容器管理(系统中使用LayoutInflater源码)4.volatile关键字好处4.1 防止重排序4.2 线程可见性 4.2....
2019-09-28 00:17:05
332
原创 Handler消息机制源码分析
Handler源码分析1.什么是Handler2 使用3.MessageQueue消息队列3.1MessageQueue的核心代码3.2.MessageQueue内如图所示3.3 总结4.Loop消息循环4.1 子线程中使用Handler4.2 Looper.prepare()分析4.2.1 总结4.3 Looper.loop()解析1.什么是HandlerHandler是android中消息...
2019-09-27 02:05:38
119
原创 postInvalidate和Invalidate的区别(源码分析)
postInvalidate和Invalidate的区别(源码分析)1.Invalidate2.postInvalidate1.Invalidate我们从源码中去简单看一下View的invalidate()的方法: /** * Invalidate the whole view. If the view is visible, * {@link #onDraw(andro...
2019-09-26 17:08:35
239
原创 Android——AOP面向切面编程
Android——AOP面向切面编程1.什么是AOP?2.AOP与OOP有什么关系呢?3.AOP的套路4.AspectJ配置使用1.下载AspectJ面向切面的框架,或者直接在app.gradle中直接配置2.AndroidStudio中配置AspectJ5.AOP实现一个检查网络5.1 创建注解(创建切点)5.2 创建处理切点类5.3 代码中使用5.4 效果1.什么是AOP? AOP(A...
2019-09-25 10:29:50
417
原创 Android——自定义View(三)
Android——自定义View(点赞效果)1.概述2.效果3.实现思路:4.开始 4.1.自定义RelativeLayout,初始化一些基本的参数 4.2.点击添加按钮,不断的往RelativeLayout中添加随机的ImageView,然后开始执行缩放和透明度的动画,采用属性动画ObjectAnimator.ofFloat(); 4.3.将图片延S型曲线进行运动(使用贝塞尔曲线 + 属性...
2019-09-20 23:59:50
157
原创 Android第三方框架(面试总结)
1.okHttp的实现原理okHttp他是一个网络请求框架1.首先构建okHttpClient对象2.构建一个Request对象3.OkHttpClient对象将Request对象转换成一个Call对象,调用同步(execute) 和 异步(enqueue)方法4.每一个任务只能执行一次,最重要的是里边的getResponseWithInterceptorChain方法,网络请求就在这个...
2019-09-19 16:57:45
808
原创 2019Android面试总结
2019面试总结1.View的绘制流程2.okHttp的实现原理3.EventBus实现原理4.Retrofit源码分析1.View的绘制流程1.源码角度分析:View首先会创建2.步骤角度分析:View的绘制流程大致分为为三步,onMeasure,onLayout,onDraw,类似一个地递归过程,从上倒下一次进行绘制。 onMeasure:方法是进行测量,通过循环遍历每一个子Vi...
2019-09-19 01:24:57
226
原创 自己动手打造一套IOC注解框架
自己动手打造一套IOC注解框架1.概述2.框架实现 2.1.定义属性控件注解 2.2.定义点击事件注解+网络检查注解3.使用4.效果展示1.概述 什么是IOC,控制反转(Inversion of Control,英文缩写为IOC),其实就是反射加注解,Android IOC框架,其实主要就是帮大家注入所有的控件,布局文件什么的。如果你用过xUtils,Butterkinfe等框架,你肯定...
2019-09-18 18:37:55
241
原创 Android——自定义View(一)
Android——自定义Loading1.效果展示2.效果分析及思路 2.1. 效果分析: 1.三个不同颜色的圆点 2.左右两边的圆点不断的平移交换位置,三个圆不断的变颜色 2.2. 思路: 1.自定义ViewGroup 2.自定义圆,添加到ViewGroup中 3.使用属性动画改变圆的位置 4.改变三个圆的颜色3.开始撸码 3.1.自定义...
2019-09-18 16:27:31
470
原创 MD - CoordinatorLayout源码分析Behavior工作流程
MD - CoordinatorLayout源码分析Behavior工作流程1.概述2.分析前先思考三个问题 1.Behavior要有效果为什么必须要使用CoordinatorLayout包裹 2.为什么自定义的Behavior要放全类名 3.Behavior效果怎么传递的3. 源码分析 3.1.CoordinatorLayout的LayoutParams首先会获取子类属性。进行解析。 ...
2019-09-17 22:58:05
341
原创 MD - 简单控件使用以及自定义Behavior
MD - 简单控件使用以及自定义Behavior1.概述1.概述 自己做的项目似乎很少用到了 Material Design 的自定义 Behavior,至多就是用了一些 Material Design 的常用控件,关于 Behavior 其实都快忘记得差不多了。这几天在网上找了很多 app 发现知乎很多地方用到了这方面的知识,我们就以知乎的效果为例,效果非常简单,先上张图。...
2019-09-17 13:10:33
497
原创 Android沉浸式全面讲解(二)
Android沉浸式全面讲解(二)1.概述2.全屏显示页面 2.1.Android5.0以下效果: 2.1.Android5.0以上效果:3.设置状态栏透明4.最终实现沉浸式状态栏5.效果1.概述 上篇文章文章介绍了Android沉浸式更换状态栏的颜色,只是写了Android不同版本对状态栏颜色的改变,今天设置状态栏透明,当我们滑动的时候改变状态栏的透明度, 效果如下:2.全屏显示...
2019-09-17 00:01:56
224
原创 Android沉浸式全面讲解(一)
Android沉浸式全面讲解(一)1.前言2.沉浸式是什么?3.改变状态栏颜色 3.1.状态栏默认颜色 3.1.1 Android5.0以下默认都是黑色的 3.1.2.Android5.0以上是有颜色的,系统帮我们做了处理 3.2. 如何改变状态栏颜色 3.2.1 Android5.0以下方案 3.2.2 Android5.0以上方案1.前言 一直以来对导航栏沉浸式模...
2019-09-16 22:29:58
316
原创 Android6.0运行权限框架封装
1.概述 上篇文章文章介绍了Android 6.0 运行时权限处理解析,只是写了运行时申请权限处理,但是并未对其做代码封装,这一次我们做一个彻底的封装处理,供以后项目中使用。2.框架封装 2.1.简单事例: public class TextActivity extends AppCompatActivity { // 打电话权限申请的请求码 ...
2019-09-15 19:32:30
270
原创 Android 6.0 运行时权限处理解析
Android 6.0 运行时权限处理解析1.概述2.权限的分类及区别 2.1 Google对于Android 6.0 系统权限分为两类: 2.2 普通权限和危险权限的区别:3.代码变化过程 3.1 Android6.0之前直接这样写(已电话拨打为例): 3.2.Android6.0以后就不行啦,我们需要去检测该权限有没有被用户授予过,如果没有则需要申请打电话权限,如果...
2019-09-15 13:31:44
236
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人