ActivityManagerService与应用进程间的通讯

ContentProvider增删改查的过程

说明:基于API 26的源码分析

聊聊二分查找与跳表

二分查找也称折半查找, 是一种效率较高的查找方法,但是使用的条件比较苛刻。下面以一个猜数字游戏为例学习二分查找的过程。

聊聊散列表以及HashMap内部实现

散列表

散列表又叫哈希表,是根据键(Key)而直接访问在内存存储位置的数据结构。它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。

聊聊数组与链表,栈与队列

数组与链表

数组与链表对于每一门编程语言来说都是重要的数据结构之一。数组是一段内存连续的,有序的元素序列,大小固定,初始化时需要指定可承载的元素个数; 链表是非连续、非顺序的存储结构, 数据元素的顺序是通过指针链接实现的。

聊聊算法的时间复杂度与空间复杂度

复杂度的概念

算法是一段执行的程序, 可以理解成几行代码,或者一个方法; 算法的时间复杂度是指这段代码需要消耗的时间资源;算法的空间复杂度是指这段代码需要消耗的空间资源(空间资源通常是指占用的内存)。

Android Jetpack组件之数据库Room详解(三)

Room是如何扩展LiveData, 如何监听数据库的变化

Android Jetpack组件之数据库Room详解(二)

Room创建数据库表过程是怎样的;又是如何进行增删改查。

Android Jetpack组件之数据库Room详解(一)

使用Room, 更方便地、优雅地进行数据库访问

Android Jetpack组件 - ViewModel,LiveData使用以及原理

使用ViewModel和LiveData,粑粑再也不用担心内存泄露啦,而且还很好用!!!

Android Jetpack组件之Lifecycles库详解

Lifecycles无感知绑定Activity,Fragment,来拥抱Lifecycles库

Context真正的实现

Context在开发中是无时无刻的存在, Context与Application, Activity, Service到底是什么关系

再不用ContraintLayout就out啦

再不用ContraintLayout就out啦

从jdk源码的角度重温链表

从LinkedList去学习如何实现一个双向链表

从jdk里Stack源码的角度重温栈的实现

从Stack中学习栈是怎么实现的

理解Java中的synchronized关键字

理解synchronized的含义、明确synchronized关键字修饰普通方法、静态方法和代码块时锁对象的差异。

理解Java浅克隆和深克隆

Java一切皆对象,克隆就是对对象的克隆;克隆可能听起来有点高级,也可以为对象复制或者对象拷贝。

简述Android应用启动流程

站在大神的肩膀上学习Android应用启动流程

适配安卓沉浸式状态栏的新姿势

安卓沉浸式状态栏有坑,我想弃坑啦

CollapsingToolbarLayout源码分析

CollapsingToolbarLayout的源码详细分析

ContentProvider启动流程源码分析(一)

ContentProvider.onCreate比Application的onCreate先调用你知道吗?

Junit 4原理分析

Junit4 的入口(version: 4.12)

单元测试的入口是: JUnitCore类的main方法

ViewStub - Optimized Layout ViewTreeObserver

ViewStub优化Layout利器,什么时候使用呢

RxJava1.0源码解读二

RxJava为何能如此灵活,RxJava源码初步学习

RxJava1.0结构初探(一)

RxJava为何能如此灵活,RxJava源码初步学习

View的位置参数

getLeft, getRight, getTop, getBottom, getX, getY, translationX, translationY之间的区别

常用git命令行

掌握常用几条Git命令就够了,不需要太多

ReactiveX

ReactiveX不仅仅是一个编程接口,它是一种编程思想的突破,它影响了许多其它的程序库和框架以及编程语言。

巧用位运算作为标识位

还在用int 或者 string 等作为状态的标示吗? Low. 用位运算记录状态就显得高级多了

Retrofit分析之框架设计艺术

Retrofit以灵活接口著称,自定义调用接口,源码是如何做到解耦的

Okhttp的使用技巧与拦截器的使用分析

Okhttp牛逼的拦截器,拦截器是如何进行网络请求的

Java 8 新特性

Java 8相对Java 7新增的了那些特性?

Gson源码分析以其所包含注解的用法

分析源码,了解Gson序列化和反序列的过程

2016 Google IO - Android application architecture

2016年Google - Android application architecture 翻译

2016 Google IO — 电量与内存优化

2016年Google IO 对电量与内存优化模块翻译

Fragment-自定义过度动画

自定义Fragment过度动画,利用animator的propertyName参数实现

Android-Loader-分析

Loader,LoaderManager与Fragment源码学习

Android - VectorDrawable

安卓矢量图的使用