
架构
LazyestCoder
Android开发工程师
展开
-
android 装饰模式应用
一、定义:装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实对象。二、特点(1) 装饰对象和真实对象有相同的接口,这样客户端对象能以和真实对象相同的方式和装饰对象交互。 (这一点和代理相似,只是侧重点不同,代理侧重隐藏被代理类,装饰侧重扩展被装饰的对象)(2) 装饰对象包含一个真实对象的引用(reference)(3...原创 2020-04-22 12:33:14 · 460 阅读 · 0 评论 -
Lifecycle应用系列之progress加载动画
背景:由于项目经手的人太多了,项目业务也越来越复杂,代码量也越来越大,一些控件的UI样式也不统一,最近UI想让我们统一封装基础控件,方便以后修改样式,我这边分到了部分封装功能,其中就包括加载动画,封装过程中有所思,遂分享之。效果图如下:动画采用的是帧动画,布局文件如下:布局 layout_loading_view.xml<?xml version="1.0" encoding=...原创 2020-04-20 16:39:25 · 238 阅读 · 0 评论 -
LiveData使用
一、什么是LiveData。LiveData 是可观察的数据持有者类。与常规的可观察对象不同,LiveData具有生命周期感知功能,这意味着它尊重其他应用程序组件(例如活动,片段或服务)的生命周期。这种意识确保LiveData仅更新处于活动生命周期状态的应用程序组件观察者。如果LiveData的Observer生命周期处于STARTEDor RESUMED 状态,则它认为由类表示的观察者 处于...原创 2020-04-18 15:57:00 · 920 阅读 · 0 评论 -
Jetpack之Lifecycle(一)Lifecycle简介及使用方法
1、为什么需要Lifecycle在 Android 框架中定义的大多数应用组件都存在生命周期。生命周期由操作系统或进程中运行的框架代码管理。它们是 Android 运作方式的核心,应用必须遵循它们。如果不这样做,可能会引发内存泄露甚至应用崩溃。那么我们在开发中如果想自己监听activity的声明周期,可能会需要这样写:class MyLocationListener { pub...原创 2020-04-16 16:32:18 · 416 阅读 · 0 评论 -
RxJava 的使用详解(一)
RxJava 的使用详解(一) 1.作用RxJava的目的就是异步。 RxJava的特点就是可以非常简便的实现异步调用,可以在逻辑复杂的代码逻辑中以比较轻易的方式实现异步调用。随着逻辑的复杂,需求的更改,代码可依然能保持极强的阅读性,在深入的使用过程中一定对这点深有体会。2.工程引用要应用RxJava,需要在项目中引入依赖:compile ‘io.reactivex:rxandroid:1.2.原创 2017-04-22 12:50:54 · 581 阅读 · 0 评论 -
注解全面解析#注解使用案例#手写Butterknife依赖注入架构
到此为止一个完整的运行时注解小案例就完结了,大家是不是感觉很简单,大家会有所以问,难道辣么NB的注解框架就是这么实现的?我擦?恭喜你,你问到点子上了,当然没这么简单。由于运行时注解的解析需要在运行时通过反射来解析,而在程序中运用大量的反射会影响程序运行效率,试想一下,我们的代码量很大的时候,在运行时还要运用反射去遍历所有view,显然,这不是我们想要的框架。原创 2019-03-25 15:44:24 · 352 阅读 · 0 评论 -
LiveDataBus实现原理#用法详解#LiveData扩展
LiveDataBus实现原理#LiveData源码分析一、liveDataBus简单实现public class LiveDataBus { private final Map<String, MutableLiveData<Object>> mBus; private LiveDataBus() { mBus = new Array...原创 2019-04-04 16:47:14 · 4018 阅读 · 3 评论 -
代理模式详解
代理模式和静态代理代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。举个例子来说明:张三想买某种用品,虽然他可以自己去找,但是这确实太浪费时间和精力了,或者不好意思去买。于是张三就通过中介代理来买,代理来帮张三,张三只是负责选择自己喜欢的的size,然后付钱就可以了。目的:(1)通过引入代理对象的方式来间接访问目标对象,防...原创 2019-09-28 17:54:42 · 246 阅读 · 0 评论