02 2020 档案
摘要:个人博客 "http://www.milovetingting.cn" ASM字节码插桩 前言 热修复的多Dex加载方案中,对于5.0以下的系统存在CLASS_ISPREVERIFIED的问题,而解决这个问题的一个方案是:通过ASM插桩,在类的构造方法里引入一个其它dex里的类,从而避免被打上CLA
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" 在Android Studio中调试Gradle插件 前言 在开发Gradle插件时,经常会需要通过调试来排查问题,如果只使用日志输出来定位的话,效率不高,可以通过单步调试来定位问题。关于调试插件的资料,网上比较多,最终经过实践
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" 自定义Gradle插件 自定义Gradle插件可以分三种 1. 定义在具体的Module对应的gradle文件里。这种方式定义的插件只能在定义的Module中使用 2. 定义名为BuildSrc的Module,在BuildSrc
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" 热修复 前言 最近在熟悉Android热修复方面的知识,纸上得来终觉浅,因此写了一个基于dex分包方案的简单Demo。 热修复是什么 在热修复技术出现前,对于已经发布的应用,如果遇到BUG,需要再次发布版本,用户需要更新应用版本
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" 桥接模式 模式介绍 桥接模式也称为桥梁模式,是结构型设计模式之一。 模式定义 将抽象部分与实现部分分离,使它们都可以独立地进行变化。 使用场景 1. 一个系统需要在构件的抽象化角色和具体角色之间增加更多灵活性,避免在两个层次之间
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" 外观模式 模式介绍 外观模式在开发过程中的运用频率非常高。通过一个外观类使得整个系统的接口只有一个统一的高层接口,这样能够降低用户的使用成本,也对用户屏蔽了很多实现细节。外观模式是我们封装API的常用手段。 模式定义 要求一个子
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" 享元模式 模式介绍 享元模式是对象池的一种实现,用来尽可能减少内存使用量,它适合用于可能存在大量重复对象的场景,来缓存可共享的对象,达到对象共享、避免创建过多对象的效果,以提升性能、避免内存移除等。 模式定义 使用共享对象可有效
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" 装饰模式 模式介绍 装饰模式也称为包装模式,结构型设计模式之一,其使用一种对客户端透明的方式来动态地扩展对象的功能,同时它也是继承关系的一种替代方案之一。 模式定义 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式生
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" 适配器模式 模式介绍 适配器模式,是将两个不兼容的类融合在一起,将不同的东西通过一种转换,使得它们能够协作起来。 模式定义 适配器模式把一个类的接口变换成客户端的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" 组合模式 模式介绍 组合模式也称为部分整体模式,结构型设计模式之一,组合模式比较简单,它将一组相似的对象看作一个对象处理,并根据一个树状结构来组合对象,然后提供一个统一的方法去访问相应的对象,以此忽略对象与对象集合之间的差别。生
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" 代理模式 模式介绍 代理模式也称为委托模式,是一种结构型模式。 模式定义 为其他对象提供一种代理以控制对这个对象的访问。 使用场景 当无法或不想直接访问某个对象或访问对象存在困难时,可以通过一个代理对象来间接访问,为了保证客户端
阅读全文
摘要:个人博客 http://www.milovetingting.cn 中介者模式 中介者模式也称为调解者模式或调停模式。 模式定义 中介者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显影响。 使用场景 当对象间交互操作很多且每个对象的行为操作都依赖彼此时,为防止在修改一个对象的行为时,同
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" 访问者模式 模式介绍 访问者模式是一种将数据操作与数据结构分离的设计模式,它是《设计模式》中23种设计模式最复杂的一个,但它的使用频率不高。 访问者模式的基本思想是,软件系统中拥有一个由许多对象构成的、比较稳定的对象结构,这些对
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" 模板方法模式 模式介绍 在面向对象开发过程中,通常会遇到这样的问题:知道一个算法的关键步骤,并确定了这些步骤的执行顺序,但,某些步骤的具体实现是未知的,如: 1. 检查代码的正确性 2. 链接相关的类库 3. 编译相关代码 4.
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" 迭代器模式 模式介绍 迭代器模式又称为游标(Cursor)模式,是行为型设计模式之一。 模式定义 提供一种方法顺序访问一个容器对象中的各个元素,而又不需要暴露该对象的内部表示。 使用场景 遍历一个容器对象时。 简单使用 定义迭代
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" 网络 前言 本文为学习Java相关知识所作笔记,参考以下资料:https://github.com/Snailclimb/JavaGuide ,感谢原作者的分享! 网络 7 层架构 7 层模型主要包括: 1. 物理层:主要定义物
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" Java基础 前言 本文为学习Java相关知识所作笔记,参考以下资料:https://github.com/Snailclimb/JavaGuide ,感谢原作者的分享! JAVA 异常分类及处理 概念 如果某个方法不能按照正常
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" Java多线程(四) 前言 本文为学习Java相关知识所作笔记,参考以下资料:https://github.com/Snailclimb/JavaGuide ,感谢原作者的分享! CyclicBarrier、 CountDown
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" Java多线程(三) 前言 本文为学习Java相关知识所作笔记,参考以下资料:https://github.com/Snailclimb/JavaGuide ,感谢原作者的分享! 线程基本方法 线程相关的基本方法有 wait,n
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" Java多线程(二) 前言 本文为学习Java相关知识所作笔记,参考以下资料:https://github.com/Snailclimb/JavaGuide ,感谢原作者的分享! JAVA 锁 乐观锁 乐观锁是一种乐观思想,即认
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" Java多线程(一) 前言 本文为学习Java相关知识所作笔记,参考以下资料:https://github.com/Snailclimb/JavaGuide ,感谢原作者的分享! JAVA 并发知识库 JAVA 线程实现/创建方
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" Java集合 前言 本文为学习Java相关知识所作笔记,参考以下资料:https://github.com/Snailclimb/JavaGuide ,感谢原作者的分享! 接口继承关系和实现 集合类存放于 Java.util 包
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" JAVA IO/NIO 前言 本文为学习Java相关知识所作笔记,参考以下资料:https://github.com/Snailclimb/JavaGuide ,感谢原作者的分享! JAVA IO/NIO 阻塞 IO 模型 最传
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" JVM类加载机制 前言 本文为学习Java相关知识所作笔记,参考以下资料:https://github.com/Snailclimb/JavaGuide ,感谢原作者的分享! JVM 类加载机制 JVM 类加载机制分为五个部分:
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" JVM垃圾回收与算法 前言 本文为学习Java相关知识所作笔记,参考以下资料:https://github.com/Snailclimb/JavaGuide ,感谢原作者的分享! 垃圾回收与算法 如何确定垃圾 引用计数法 在 J
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" JVM内存模型 前言 本文为学习Java相关知识所作笔记,参考以下资料:https://github.com/Snailclimb/JavaGuide ,感谢原作者的分享! 基本概念 JVM是可运行Java代码的虚拟计算机,包括
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" 备忘录模式 模式介绍 备忘录是一种行为模式,用于保存对象当前状态,并且在之后可以再次恢复到此状态。备忘录模式实现的方式需要保证被保存的对象不能从外部访问,目的是为了保护好保存的这些对象状态的完整性以及内部实现不向外部暴露。 模式
阅读全文