Android
文章平均质量分 62
童心未泯佐为
编程来源于生活,服务于生活,生活就是需求。
展开
-
android重试执行
重试执行原创 2020-03-27 14:05:51 · 775 阅读 · 0 评论 -
Launcher3源码解析
由于工作的原因,开始了Launcher的学习和开发。我拿到的源码是Android N 的Launcher3的源码。想的是一步一步对Launcher3的源码进行分析并记录,也是为了让自己遗忘的时候可以看看。下面正式开始Launcher3的源码分析,首先介绍一下主要的几个类:Launcher:主界面Activity,最核心且唯一的Activity。LauncherAppState:单例对象...转载 2018-12-28 10:03:55 · 2894 阅读 · 0 评论 -
理财,预期收益
项目中,标的付款方式有,到期本息 、先息后本、等额本息、等额本金四种。这就意味着客户端在计算预期收益时要根据这一状态执行不同的算法。通过分析,到期本息 、先息后本为第一种算法,等额本息为第二种算法,等额本金为第三种算法。之后,在对这块代码进行了三次重构重构1:将三种算法写到工具类里,对应三种静态方法。重构2:将算法提取为接口,提供三种策略类。重构3:通过简单工厂返回具体算法类。预期收益接口publ...原创 2018-04-28 16:36:13 · 308 阅读 · 0 评论 -
Volley,核心架构生产者消费者模式
晚上母亲做烙饼,熟了就放到桌子上,我和姐看到桌子上有饼就拿来吃,没了就等着。这就是生产者消费者模式母亲 生产者 做饼桌子 产品容器 放饼我和我姐 消费者 吃饼生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通原创 2017-07-20 13:36:54 · 309 阅读 · 0 评论 -
Activity,Fragment绑定生命周期,实现EventBus的自动注册、自动注销。
Glide中一个重要特性是Request可以随Activity或Fragment的onStart而resume,onStop而pause,onDestroy而clear,从而节约流量和内存,并且防止内存泄露。在阅读Glide源码后,果断将相关代码引入项目中并实现EventBus的自动注册、自动注销,其核心使用观察者模式。侦听生命周期事件的接口。public interface Lifecy原创 2017-07-18 15:59:17 · 4390 阅读 · 0 评论 -
利用责任链模式构建数据校验模块
这是一个比较简单的表单校验,利用责任链模式将多个数据校验以“链”的形式串联起来。目前支持三种数据校验(可拓展)1.空数据校验2.数据格式校验3.非必填项校验代码:定义校验器public interface Verify { //校验 boolean doVerify(); //设置下个校验器 void setNextVerify(Verify ve...原创 2017-07-03 11:57:42 · 2835 阅读 · 1 评论 -
DataProvider为项目提供基础信息
基础信息提供者接口public interface IDataProvider { /** * 项目环境类型(开发,测试,正式) * * @return */ Environment getAppEnvironment(); /** * 项目context对象 * * @return */原创 2017-07-19 09:45:48 · 781 阅读 · 0 评论 -
面向切面编程(aop),实现Android网络请求
面向切面编程原创 2017-06-23 13:03:06 · 674 阅读 · 0 评论 -
利用代理模式隔离Android第三方组件(图片加载库,网络库)
利用代理模式隔离原创 2017-06-23 13:05:46 · 689 阅读 · 1 评论 -
总结TextWatcher两种使用场景
1. 根据观察多个输入框(必填)是否输入内容,控制按钮点击状态。public class ButtonWatcher { private final Button btn; //控制按钮 private final EditText[] views; //输入框数组 public ButtonWatcher(Button btn, EditText... editTex原创 2017-07-17 10:32:58 · 482 阅读 · 0 评论 -
利用中介者模式与观察者解决购物车与商品列表联动问题
由于项目保密性只介绍出现的问题以及我解决的思路。说明:商品分类列表:显示商品分类名称以及此分类下放入购物车商品的总数量。商品列表:显示商品信息和两个操作按钮“+”,“-”以及加入购物车数量。购物车列表:显示购物车商品信息和两个操作按钮“+”,“-”以及数量。搜索列表:显示商品信息和两个操作按钮“+”,“-”以及加入购物车数量。问题:商品列表、购物车列表、搜索列表都可原创 2017-07-11 10:14:57 · 1556 阅读 · 0 评论 -
通过递归与访问者模式过滤文件
在看Fresco源码时发现了一个遍历文件夹的小模块,职责清晰、设计精妙、并有着很高的拓展性,在研究之后果断代码收藏。思路:首先利用递归遍历整个目录,如果是文件,访问者执行访问。文件树public class FileTree { /** * 遍历目录的文件树,并接收一个访问者访问每一个文件。 * @param directory 要遍历的文件原创 2017-07-12 10:13:08 · 395 阅读 · 0 评论 -
利用模板模式封装APP版本更新模块
在项目中做版本检查模块流程如下1. 检查版本2. 显示版本提示3. 下载apk4. 安装于是我将相关代码进行重构,定义版本更新流程的骨架而将一些方法延迟到子类去实现。public abstract class CheckVersion { public static final String APK_FILE_PATH = ""; //apk保存路径原创 2017-07-11 16:37:00 · 376 阅读 · 0 评论 -
利用组合模式与访问者模式实现Android树形控件(多层级,可拖拽)
先上图原创 2017-06-23 11:55:24 · 525 阅读 · 0 评论