摘要:View 的绘制系列文章: Android View 绘制流程之 DecorView 与 ViewRootImpl Android View 的绘制流程之 Measure 过程详解 (一) Android View 的绘制流程之 Layout 和 Draw 过程详解 (二) Android View 阅读全文
posted @ 2019-12-08 15:57 huansky 阅读 (67) 评论 (0) 编辑
摘要:一 数据类型 与 Java 程序语言中的数据类型相似,Java 虚拟机可以操作的数据类型可分为两类:原始类型(Primitive Types,也经常翻译为原生类型或者基本类型)和引用类型(Reference Types)。 与之对应,也存在有原始值(Primitive Values)和引用值(Ref 阅读全文
posted @ 2019-12-05 20:23 huansky 阅读 (148) 评论 (2) 编辑
摘要:View 的绘制系列文章: Android View 绘制流程之 DecorView 与 ViewRootImpl Android View 的绘制流程之 Measure 过程详解 (一) Android View 的绘制流程之 Layout 和 Draw 过程详解 (二) Android View 阅读全文
posted @ 2019-11-30 23:40 huansky 阅读 (132) 评论 (0) 编辑
摘要:引子 最近,在做产品的需求的时候,遇到 PM 要求在某个按钮上添加一个新手引导动画,引导用户去点击。作为 RD,我哗啦啦的就写好相关逻辑了。自测完成后,提测,PM Review 效果。 看完后,PM 提了个问题,这个动画效果范围能不能再大一点?PM 解释到按钮本身大小不是很大,会导致引导效果不够明显 阅读全文
posted @ 2019-11-30 15:53 huansky 阅读 (105) 评论 (0) 编辑
摘要:一年多以前,曾经以为自己对 View 的添加显示逻辑已经有所了解了,事后发现也只是懂了些皮毛而已。经过一年多的实战,Android 和 Java 基础都有了提升,是时候该去看看 DecorView 的添加显示。 View 的绘制系列文章: Android View 绘制流程之 DecorView 与 阅读全文
posted @ 2019-11-25 22:12 huansky 阅读 (103) 评论 (0) 编辑
摘要:前言 内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃 (OOM) 等严重后果。 那什么情况下不能被回收呢? 目前 java 垃圾回收主流算法是虚拟机采用 GC Roots Tracing 算法。算法 阅读全文
posted @ 2019-11-09 15:03 huansky 阅读 (107) 评论 (0) 编辑
摘要:最近在看 Okhttp 的源码。不得不说源码设计的很巧妙,从中能学到很多。其实网上关于 Okhttp 的文章已经很多了,自己也看了很多。但是俗话说得好,好记性不如烂笔头,当你动手的时候,你会发现你在看的时候没有注意到的很多细节。 本次要分析的 Okhttp 版本是 3.8.1,在 gradle 中引 阅读全文
posted @ 2019-11-05 11:21 huansky 阅读 (303) 评论 (1) 编辑
摘要:Collections.unmodifiableList 简单来说,当我们封装了一个list,外面可能会需要获取这个list。如果直接将list返回,外界很可能会修改这个list,导致数据不稳定。那有没有解决办法呢?有的。 这样操作之后,通过 getCourses() 方法获得的 courses 是 阅读全文
posted @ 2019-10-22 11:20 huansky 阅读 (20) 评论 (0) 编辑
摘要:最接做需求的时候,碰到了 PopUpWindow,但是也没做过多了解,就是照搬别人的代码改改逻辑。后面视觉看了之后,说让我加一些动画效果,使用起来更加舒服。可是我看别人以前也没有写,于是就开始捣鼓 PopUpWindow。同时也写一篇文章记录下,后续忘了也可以查看。 相关方法解读 1)几个常用的构造 阅读全文
posted @ 2019-09-23 23:29 huansky 阅读 (179) 评论 (0) 编辑
摘要:最近在学习 极客时间Android开发高手课 老师推荐了Breakpad开源库来采集native 的crash1.为什么要使用Google Breakpad? 我们在开发过程中,Android JNI层Crash问题或者我们引用的第三方.so库文件报错,都是一个比较头疼的问题。相对Java层来说,由 阅读全文
posted @ 2019-08-03 12:13 huansky 阅读 (66) 评论 (0) 编辑
摘要:最近公司再搞中台化,自己有幸参与其中一个项目的重构,从中学到很多,也有很多感受。 1、准备工作 作为程序猿,重构代码是很常见的一件事。重构代码的目的都是为了让代码更好地适应后续的发展和变化。 当你打算重构代码的时候,你先思考下,你为啥要重构?重构势必要投入一定得时间和人力,在现有的需求的基础上,需要 阅读全文
posted @ 2019-07-14 00:01 huansky 阅读 (405) 评论 (0) 编辑
摘要:对于摄影新手小伙伴来说 ,最基本的不是怎么把相机玩出花样,而是要先学习基本的构图!构图的概念不仅适用于摄影,也适用于多种造型艺术。艺术家为了表现作品的主题思想和美感效果,在一定的空间,安排和处理人、物的关系和位置,把个别或局部的形象组成艺术的整体。 当你明确了这个概念,就可以具体学学这些基本的构图方 阅读全文
posted @ 2019-07-08 23:02 huansky 阅读 (64) 评论 (0) 编辑
摘要:1、名词解释 1.1 ISO与图片质量 ISO 是感光度的意思。胶卷有 ISO100,200 和 400 等几种,这就是感光速度不同的胶卷。ISO 感光度是感光元件对光线的敏感程度。如果用 ISO100的设定,相机 2 秒可以正确曝光的话,同样光线条件下用 ISO200 的设定只需要1秒即可,用 I 阅读全文
posted @ 2019-07-08 22:50 huansky 阅读 (121) 评论 (0) 编辑
摘要:对于 Eventbus ,相信很多 Android 小伙伴都用到过。 1、创建事件实体类 所谓的事件实体类,就是传递的事件,一个组件向另一个组件发送的信息可以储存在一个类中,该类就是一个事件,会被 EventBus 发送给订阅者。新建 MessageEvent.java: public class 阅读全文
posted @ 2019-05-27 00:15 huansky 阅读 (904) 评论 (0) 编辑
摘要:定义 适配器模式:将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作 主要解决:主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。 何时使用: 系统需要使用现有的类,而此类的接口不符合系统的需要。 想要建立一个可以 阅读全文
posted @ 2019-02-25 08:31 huansky 阅读 (103) 评论 (0) 编辑