摘要:本文主要讲述 Java 类加载过程的七个阶段:加载、验证、准备、解析、初始化、使用、卸载。同时也介绍了类加载器,包括双亲委托机制,自定义类加载器,最后通过例子训练和总结了类在加载过程中类的初始化顺序。 阅读全文
posted @ 2019-12-28 14:35 huansky 阅读 (155) 评论 (0) 编辑
摘要:本文讲述如何调起系统相机拍照(适配7.0以上的系统),然后将刚拍照的图片显示在指定的 ImageView 中。 阅读全文
posted @ 2019-12-26 22:46 huansky 阅读 (109) 评论 (0) 编辑
摘要:最近打算学习下 gradle 在 Android 中的使用,结果百度出来的文章都是介绍性文章,没啥干货。后来找到 gradle 官网教程,自己对着撸。 Gradle 概述: Gradle 是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化构建工具。它使用一种基于 Gro 阅读全文
posted @ 2019-12-22 22:07 huansky 阅读 (177) 评论 (0) 编辑
摘要:概要 HashMap 最早出现在 JDK 1.2 中,底层基于散列算法实现。HashMap 允许 null 键和 null 值,在计算哈键的哈希值时,null 键哈希值为 0。HashMap 并不保证键值对的顺序,这意味着在进行某些操作后,键值对的顺序可能会发生变化。另外,需要注意的是,HashMa 阅读全文
posted @ 2019-12-15 17:06 huansky 阅读 (223) 评论 (0) 编辑
摘要:View 的绘制系列文章: Android View 绘制流程之 DecorView 与 ViewRootImpl Android View 的绘制流程之 Measure 过程详解 (一) Android View 的绘制流程之 Layout 和 Draw 过程详解 (二) Android View 阅读全文
posted @ 2019-12-12 00:39 huansky 阅读 (147) 评论 (0) 编辑
摘要:View 的绘制系列文章: Android View 绘制流程之 DecorView 与 ViewRootImpl Android View 的绘制流程之 Measure 过程详解 (一) Android View 的绘制流程之 Layout 和 Draw 过程详解 (二) Android View 阅读全文
posted @ 2019-12-08 15:57 huansky 阅读 (111) 评论 (0) 编辑
摘要:一 数据类型 与 Java 程序语言中的数据类型相似,Java 虚拟机可以操作的数据类型可分为两类:原始类型(Primitive Types,也经常翻译为原生类型或者基本类型)和引用类型(Reference Types)。 与之对应,也存在有原始值(Primitive Values)和引用值(Ref 阅读全文
posted @ 2019-12-05 20:23 huansky 阅读 (174) 评论 (2) 编辑
摘要:View 的绘制系列文章: Android View 绘制流程之 DecorView 与 ViewRootImpl Android View 的绘制流程之 Measure 过程详解 (一) Android View 的绘制流程之 Layout 和 Draw 过程详解 (二) Android View 阅读全文
posted @ 2019-11-30 23:40 huansky 阅读 (168) 评论 (0) 编辑
摘要:引子 最近,在做产品的需求的时候,遇到 PM 要求在某个按钮上添加一个新手引导动画,引导用户去点击。作为 RD,我哗啦啦的就写好相关逻辑了。自测完成后,提测,PM Review 效果。 看完后,PM 提了个问题,这个动画效果范围能不能再大一点?PM 解释到按钮本身大小不是很大,会导致引导效果不够明显 阅读全文
posted @ 2019-11-30 15:53 huansky 阅读 (448) 评论 (0) 编辑
摘要:一年多以前,曾经以为自己对 View 的添加显示逻辑已经有所了解了,事后发现也只是懂了些皮毛而已。经过一年多的实战,Android 和 Java 基础都有了提升,是时候该去看看 DecorView 的添加显示。 View 的绘制系列文章: Android View 绘制流程之 DecorView 与 阅读全文
posted @ 2019-11-25 22:12 huansky 阅读 (181) 评论 (0) 编辑
摘要:前言 内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃 (OOM) 等严重后果。 那什么情况下不能被回收呢? 目前 java 垃圾回收主流算法是虚拟机采用 GC Roots Tracing 算法。算法 阅读全文
posted @ 2019-11-09 15:03 huansky 阅读 (128) 评论 (0) 编辑
摘要:最近在看 Okhttp 的源码。不得不说源码设计的很巧妙,从中能学到很多。其实网上关于 Okhttp 的文章已经很多了,自己也看了很多。但是俗话说得好,好记性不如烂笔头,当你动手的时候,你会发现你在看的时候没有注意到的很多细节。 本次要分析的 Okhttp 版本是 3.8.1,在 gradle 中引 阅读全文
posted @ 2019-11-05 11:21 huansky 阅读 (350) 评论 (1) 编辑
摘要:Collections.unmodifiableList 简单来说,当我们封装了一个list,外面可能会需要获取这个list。如果直接将list返回,外界很可能会修改这个list,导致数据不稳定。那有没有解决办法呢?有的。 这样操作之后,通过 getCourses() 方法获得的 courses 是 阅读全文
posted @ 2019-10-22 11:20 huansky 阅读 (22) 评论 (0) 编辑
摘要:最接做需求的时候,碰到了 PopUpWindow,但是也没做过多了解,就是照搬别人的代码改改逻辑。后面视觉看了之后,说让我加一些动画效果,使用起来更加舒服。可是我看别人以前也没有写,于是就开始捣鼓 PopUpWindow。同时也写一篇文章记录下,后续忘了也可以查看。 相关方法解读 1)几个常用的构造 阅读全文
posted @ 2019-09-23 23:29 huansky 阅读 (247) 评论 (1) 编辑
摘要:最近在学习 极客时间Android开发高手课 老师推荐了Breakpad开源库来采集native 的crash1.为什么要使用Google Breakpad? 我们在开发过程中,Android JNI层Crash问题或者我们引用的第三方.so库文件报错,都是一个比较头疼的问题。相对Java层来说,由 阅读全文
posted @ 2019-08-03 12:13 huansky 阅读 (91) 评论 (0) 编辑