Android - 收藏集

Android 自定义View的各种姿势1

Activity的显示之ViewRootImpl详解

Activity的显示之ViewRootImpl初探

Activity的显示之Window和View

Android系统的创世之初以及Activity的生命周期

图解Android事件分发机制(深入底层源码)

Android 自定义View的各种姿势2

Android 内存泄漏分析与解决

Android消息机制

Android Binder(也许是最容易理解的)

Android 彻底掌握Binder

Android序列化

Android Fragment详解

Android Fragment最佳实践

Android TabLayout+ViewPager+Fragment

Android ListView

Android RecyclerView

Android ListView与RecyclerView项目实战

Android 动画

Android 动画(续)

Android HTTP

首个hybird商业项目踩坑总结

Android并发编程 开篇

Android并发编程 多线程与锁

Android并发编程 原子类与并发容器

SystemServer启动过程(framework)

ListView复用View原理分析

Android创建绑定服务的3种方法

管理应用内存

DecorView显示过程

Activity setContentView过程分析

VelocityTracker用法

Android中View的测量measure过程

Android WatchDog原理分析

Android事件传递流程-从ViewRootImpl到View

ViewManager接口分析

Android平台开源log工具-Logger

Android进程优先级和oom_adj

使用gradle减少apk大小

Zyote启动之framework

常见的apk签名方式

Volley源码分析

SystemServer启动过程(native)

Context、Application和ActivityThread

AndroidManifest.xml中applicaiton属性介绍

Android播放器音乐信息乱码及其解决方法

Zygote启动之native

管理 Activity 生命周期

Android中ViewGroup的布局layout过程

GestureDetector用法

LeakCanary和常见内存泄漏场景

apk反编译与二次打包

Android性能分析工具Systrace

Android常见技巧

Activity launchMode和taskaffinity

Kotlin 知识梳理(13) – 运行时的泛型

Dagger2 知识梳理(3) – 使用 dependencies 和 @SubComponent 完成依赖注入

Android 知识梳理目录 – 好吧,这是一个很”干”的标题

面试算法知识梳理(11) – 二叉树算法第一部分

Glide 知识梳理(4) – 自定义animate

RxJava2 实战知识梳理(5) – 简单及进阶的轮询操作

性能优化工具知识梳理(5) – MAT

Kotlin 知识梳理(1) – Kotlin 基础

插件化知识梳理(2) – Small 框架之如何引入公共库插件

面试算法知识梳理(7) – 数组第四部分

图片压缩知识梳理(8) – WebP 使用详解

Activity 知识梳理(2) – Activity 栈

Framework 源码解析知识梳理(1) – 应用程序与 AMS 的通信实现

RxJava2 实战知识梳理(11) – 检测网络状态并自动重试请求

插件化知识梳理(7) – 类的动态加载入门

性能优化技巧知识梳理(1) – 布局优化

View 绘制体系知识梳理(2) – setContentView 源码解析

Architecture Components 知识梳理(1) – Lifecycle 示例&原理

Material Design 控件知识梳理(9) – TextInputLayout

设计模式知识梳理(5) – 结构型 – 外观模式

RecyclerView 知识梳理(2) – Adapter

零散知识点总结(3) – Android 状态栏知识点总结

性能优化技巧知识梳理(3) – 如何排查列表卡顿问题

RxJava2 实战知识梳理(14) – 在 token 过期时,刷新过期 token 并重新发起请求

多线程知识梳理(9) – ThreadLocal

面试算法知识梳理(8) – 二分查找算法及其变型

Android 数据存储知识梳理(1) – SQLiteOpenHelper 源码解析

Java&Android 基础知识梳理(5) – 类加载&对象实例化

Loader 知识梳理(3) – 自定义Loader

图片基础知识梳理(1) – ImageView 的 ScaleType 属性解析

插件化知识梳理(5) – Small 框架之如何不将插件打包到宿主中

RxJava2 实战知识梳理(8) – 使用 publish + merge 优化先加载缓存,再读取网络数据的请求过程

插件化知识梳理(4) – Small 框架之如何实现插件更新

Android 异步任务知识梳理(3) – AsyncQueryHandler 源码解析

Framework 源码解析知识梳理(3) – 应用进程之间的通信实现

Canvas&Paint 知识梳理(2) – Canvas 的保存和恢复

面试算法知识梳理(9) – 链表算法第一部分

Material Design 控件知识梳理(5) – DrawerLayout && NavigationView

Material Design 控件知识梳理(2) – AppBarLayout & CollapsingToolbarLayout

Kotlin 知识梳理(12) – 泛型类型参数

RxJava2 实战知识梳理(6) – 基于错误类型的重试请求

Fragment 知识梳理(1) – Fragment 源码解析

Service 知识梳理(1) – Service 问题整理

Loader 知识梳理(1) – LoaderManager初探

Loader 知识梳理(2) – initLoader和restartLoader的区别

Architecture Components 知识梳理(3) – ViewModel 示例

OkHttp 知识梳理(4) – OkHttp 之缓存源码解析

RxJava2 实战知识梳理(1) – 后台执行耗时操作,实时通知 UI 更新

RxJava2 实战知识梳理(15) – 实现一个简单的 MVP + RxJava + Retrofit 应用

RxJava2 实战知识梳理(13) – 如何使得错误发生时不自动停止订阅关系

Canvas&Paint 知识梳理(1) – Canvas 基础

Kotlin 知识梳理(3) – 类、对象和接口

零散知识点总结(2) – Ubuntu下切换JDK版本

Java&Android 基础知识梳理(3) – 内存区域

Dagger2 知识梳理(2) – @Qulifier 和 @Named 解决依赖注入迷失

Java&Android 基础知识梳理(10) – SparseArray 源码解析

多线程知识梳理(4) – synchronized 三部曲之等待/通知模型

Java&Android 基础知识梳理(13) – 反射

Android 数据存储知识梳理(2) – Android存储目录

RecyclerView 知识梳理(4) – ItemDecoration

Canvas&Paint 知识梳理(6) – 绘制路线 Path 基本用法

性能优化工具知识梳理(3) – 调试GPU过度绘制 & GPU呈现模式分析

图片基础知识梳理(3) – Bitmap&BitmapFactory 解析

Activity 知识梳理(1) – Activity生命周期

Kotlin 知识梳理(11) – 内联函数

Java&Android 基础知识梳理(8) – 容器类

View 绘制体系知识梳理(8) – obtainStyledAttributes 详解

组件化知识梳理(3) – Arouter 源码分析之运行时 SDK

Fragment 知识梳理(2) – Fragment 状态保存和恢复

组件化知识梳理(2) – Arouter 源码分析之 Complier SDK

我是如何准备 Android 技术面试的~

Kotlin 知识梳理(6) – Kotlin 的可空性

Glide 知识梳理(1) – 基本用法

动画体系知识梳理(2) – 转场动画 ContentTransition 实践篇

Android 知识梳理目录 – To do

面试算法知识梳理(6) – 数组第三部分

View 事件传递体系知识梳理(1) – 事件分发机制

图片压缩知识梳理(9) – 选择合适的图片格式

面试算法知识梳理(3) – 字符串算法第二部分

面试算法知识梳理(2) – 字符串算法第一部分

插件化知识梳理(6) – Small 源码分析之 Hook 原理

面试算法知识梳理(4) – 数组第一部分

设计模式知识梳理(2) – 结构型 – 桥接模式

RxJava 知识梳理(1) – RxJava 基本思想

面试算法知识梳理(1) – 排序算法

View 绘制体系知识梳理(3) – 绘制流程之 Measure 详解

Fragment 知识梳理(4) – FragmentPagerAdapter 和 FragmentStatePagerAdapter 解析

OkHttp 知识梳理(2) – OkHttp 源码解析之异步请求 & 线程调度

Kotlin 知识梳理(7) – Kotlin 的类型系统

插件化知识梳理(9) – 资源的动态加载示例及源码分析

Kotlin 知识梳理(9) – 委托属性

Android 面试文档分享

NDK 知识梳理(2) – 使用 CMake 进行 NDK 开发之如何编写 CMakeLists.txt 脚本

多线程知识梳理(6) – 线程池四部曲之 ThreadPoolExecutor

多线程知识梳理(5) – 线程池四部曲之 Executor 框架

Java&Android 基础知识梳理(9) – LruCache 源码解析

多线程知识梳理(7) – ConcurrentHashMap 实现原理

多线程知识梳理(2) – synchronized 三部曲之基本使用

性能优化工具知识梳理(4) – Hierarchy Viewer

架构设计知识梳理(2) – Flux

RxJava2 实战知识梳理(3) – 优化搜索联想功能

设计模式知识梳理(6) – 结构型 – 享元模式

Java&Android 基础知识梳理(12) – 泛型

RxJava2 实战知识梳理(4) – 结合 Retrofit 请求新闻资讯

Android 版本适配问题

性能优化技巧知识梳理(2) – 内存优化

Retrofit 知识梳理(1) – 流程分析

Volley 知识梳理 – Volley解析

NDK 知识梳理(1) – 使用 CMake 进行 NDK 开发之初体验

Activity 知识梳理(3) – Activity状态保存和恢复

多线程知识梳理(10) – 死锁的概念

OkHttp 知识梳理(3) – OkHttp 之缓存基础

RxJava2 实战知识梳理(9) – 使用 timer/interval/delay 实现任务调度

View 绘制体系知识梳理(4) – 绘制过程之 Layout 详解

插件化知识梳理(8) – 类的动态加载源码分析

Material Design 控件知识梳理(6) – Snackbar

Canvas&Paint 知识梳理(5) – Paint#setShader

Canvas&Paint 知识梳理(3) – 颜色合成 Paint#setColorFilter

Java&Android 基础知识梳理(7) – Android 虚拟机

Kotlin 知识梳理(4) – 数据类、类委托 及 object 关键字

View 事件传递体系知识梳理(2) – 嵌套滑动

Material Design 控件知识梳理(8) – TabLayout

RxJava2 实战知识梳理(2) – 计算一段时间内数据的平均值

Retrofit 知识梳理(2) – Retrofit 动态代理内部实现

Framework 源码解析知识梳理(7) – Handler 的 async 标志位

组件化知识梳理(1) – Arouter 的基本使用

图片压缩知识梳理(1) – PNG 原理

Material Design 控件知识梳理(4) – FloatingActionButton

Glide 知识梳理(6) – Glide 源码解析之流程剖析

RxJava2 实战知识梳理(12) – 实战讲解 publish & replay & share & refCount & autoConnect

图片基础知识梳理(2) – Bitmap 占用内存分析

View 绘制体系知识梳理(6) – 绘制过程之 requestLayout 和 invalidate 详解

面试算法知识梳理(14) – 数字算法

设计模式知识梳理(7) – 结构型 – 代理模式

View 绘制体系知识梳理(5) – 绘制过程之 Draw 详解

架构设计知识梳理(1) – Dagger2

Broadcast 知识梳理(1) – BroadcastReceiver 基本概念

动画体系知识梳理(1) – 转场动画 ContentTransition 理论篇

Kotlin 知识梳理(5) – lambda 表达式和成员引用

Android 异步任务知识梳理(1) – AsyncTask 源码解析

Dagger2 知识梳理(1) – Dagger2 依赖注入的两种方式

性能优化工具知识梳理(8) – Lint

Kotlin 知识梳理(10) – 高阶函数:Lambda 作为形参或返回值

Java&Android 基础知识梳理(2) – 序列化

Weex 知识梳理(1) – 环境搭建

Kotlin 知识梳理(8) – 运算符重载及其他约定

View 绘制体系知识梳理(1) – LayoutInflater#inflate 源码解析

插件化知识梳理(10) – Service 插件化实现及原理

零散知识点总结(1) – Gradle 使用配置总结

Canvas&Paint 知识梳理(4) – 图像合成 Paint#setXfermode

面试算法知识梳理(12) – 二叉树算法第二部分

性能优化工具知识梳理(2) – Systrace

图片压缩知识梳理(0) – 图片压缩学习计划

Java&Android 基础知识梳理(4) – 垃圾收集器与内存分配策略

Java&Android 基础知识梳理(0) – Java 基础知识大纲

Android 异步任务知识梳理(2) – HandlerThread 源码解析

性能优化工具知识梳理(7) – LeakCanary

性能优化工具知识梳理(1) – TraceView

面试算法知识梳理(13) – 二叉树算法第三部分

多线程知识梳理(8) – volatile 关键字

RxJava 知识梳理(3) – RxJava2 基础知识小结

Java&Android 基础知识梳理(6) – 字节输入输出流

Android 数据存储知识梳理(4) – 数据库升级操作的处理策略

Fragment 知识梳理(3) – FragmentPagerAdapter 和 FragmentStatePagerAdapter 的数据更新问题

Material Design 控件知识梳理(1) – Android Design Support Library 是什么

图片压缩知识梳理(5) – VectorDrawable 简介

图片压缩知识梳理(2) – 减小 PNG 大小

Android 数据存储知识梳理(3) – SharedPreference 源码解析

图片压缩知识梳理(6) – VectorDrawable 及 AnimatedVectorDrawable 使用详解

设计模式知识梳理(3) – 结构型 – 组合模式

Java&Android 基础知识梳理(11) – 浅拷贝 Vs 深拷贝

Dagger2 知识梳理(4) – @Scope 注解的使用

RxJava 知识梳理(2) – RxJava2 操作符实战

Glide 知识梳理(3) – 自定义transform

面试算法知识梳理(10) – 二叉查找树

面试算法知识梳理(5) – 数组第二部分

Material Design 控件知识梳理(3) – BottomSheet && BottomSheetDialog && BottomSheetDialogFragment

性能优化工具知识梳理(6) – Memory Monitor & Heap Viewer & Allocation Tracker

不“误”正业地弄了个人博客,欢迎访问

Framework 源码解析知识梳理(4) – 从源码角度谈谈 Handler 的应用

Java&Android 基础知识梳理(1) – 注解

RxJava2 实战知识梳理(7) – 基于 combineLatest 实现的输入表单验证

Material Design 控件知识梳理(7) – BottomNavigationBar

Kotlin 知识梳理(2) – 函数的定义与调用

OkHttp 知识梳理(1) – OkHttp 源码解析之入门

RecyclerView 知识梳理(1) – 综述

插件化知识梳理(3) – Small 框架之宿主分身

RxJava2 实战知识梳理(10) – 屏幕旋转导致 Activity 重建时恢复任务

RecyclerView 知识梳理(3) – LayoutManager

Glide 知识梳理(5) – 自定义GlideModule

多线程知识梳理(3) – synchronized 三部曲之锁优化

Architecture Components 知识梳理(2) – LiveData 示例

Glide 知识梳理(2) – 自定义Target

Framework 源码解析知识梳理(2) – 应用进程与 WMS 的通信实现

View 绘制体系知识梳理(7) – getMeasuredWidth 和 getWidth 的区别

多线程知识梳理(1) – 并发编程的艺术笔记

设计模式知识梳理(4) – 结构型 – 装饰模式

RecyclerView 知识梳理(5) – ItemTouchHelper

组件化知识梳理(4) – IOC & AOP 思想在 Arouter 中的应用

插件化知识梳理(1) – Small 框架之如何引入应用插件

设计模式知识梳理(1) – 结构型 – 适配器模式

奇技淫巧之-Android监听键盘弹出与隐藏事件

RxImagePicker:从零实现灵活且可高度定制的Android图片选择架构

Android6.0权限适配及兼容库的实现

MVP 笔记

【Android】快速开发偷懒必备(二) 支持DataBinding啦~爽炸,一行实现花式列表

逆向思考,优化/重构你的代码逻辑

Android自定义ClockView实现时钟效果

Android 实现无网络页面切换

完全自定义控件-自定义绚丽水波纹效果

开发工具总结(8)之图文并茂全面总结上百个AS好用的插件(下)

glide 一个强大的图片加载框架

听说你Binder机制学的不错,来面试下这几个问题(二)

Android——MVP——封装一个通用的Module

Android适配全面总结(三)—-ROM适配

Android 刘海屏适配总结

谷歌Flutter1.0正式版发布

Android应用坐标系统全面详解

活在android之观察者模式

Linux环境下Android开发常用命令

Android 拍照获取缩略图以及完整图片(适配androidN)

[译]使用MVI打造响应式APP(一):Model到底是什么

Android实现沉浸模式的体验

Android Handle解析

一个根据代码自动生成UML的插件,助你看源码事半功倍

Groovy学习笔记4:特殊注解

观察者模式学习

OkHttp基础学习(五),文件上传

躺着过坑—断电导致AVD和SDK Manager无法正常启动

Android 一起来看看 ThreadLocal

万能的dialog库(包括类似popwindow效果)

Android 自定义View学习(十四)——View滑动学习

手把手教你从零开始做一个好看的 APP – Day four

Android——RecyclerView入门学习之DiffUtil(四)

一次使用Kotlin实现酷炫多选操作的尝试

Android 带你撸一个好玩的 DoodleView(涂鸦)

十分钟了解Android触摸事件原理(InputManagerService)

Android 自定义view,画图板练习

Android 打造一个丝滑的自动轮播控件

Android Camera 系列(三)Camera API 详解

设计模式(一) 工厂模式 五种写法总结

我的 2017

RxJava常用操作符

Android 自定义view相关

为你的Android Studio打造帅气的LogCat配色

编辑距离 (Levenshtein Distance算法)

Android 自定义View学习(十三)——View触控事件学习

Android DEPPLINK、APPLink原理简析

不要打破链式调用!一个极低成本的RxJava全局Error处理方案

Flutter基础篇(7)– Flutter更新错误全面解决方案(图文+视频讲解)

Android 读取联系人数据库

简单图片加载框架的打造-(了解如何设计一个图片加载框架)

Android 解锁 Gradle 依赖新姿势

Android官方架构组件DataBinding双向绑定篇: 观察者模式的殊途同归

当Android遇到单例模式

Http基础知识学习(一)

面试必备:LinkedList源码解析(JDK8)

[译]Android开发从Dagger2迁移至Kodein的感受

SQL定义

Material Design学习:DrawerLayout+NavigationView

Android窗口管理分析(1):View如何绘制到屏幕上的主观理解

Android动手实现一个侧滑删除控件,支持Recyclerview

使用友盟分享和登陆以及使用时要注意的坑

活在Android之Builder模式

OkHttp基础学习(一),Get请求

Linux工具命令之crontab

DiskLruCache简介

完全自定义控件-简单环形进度条制作

手把手教你从零开始做一个好看的 APP – Day five

Flutter基础篇(1)– 跨平台开发框架和工具集锦

Android——RecyclerView入门学习之ItemDecoration(一)

Android硬件加速(二)-RenderThread与OpenGL GPU渲染

Flutter进阶篇(5)– 使用Flutter创建插件详解并发布到Pub库

Java多边型无序点排序(地图绘制多边形)

Gradle学习笔记(一)基本配置

gson解析assets目录下的json文件(给新手看的)

仿淘宝、京东拖拽商品详情(可嵌套ViewPager、ListView、WebView、FragmentTabhost)

Swift 与 Kotlin 的简单对比,简直是太像了

RxJava——基础学习(六),过滤操作符

Android官方架构组件Paging-Ex:为分页列表添加Header和Footer

Android匿名共享内存(Ashmem)原理

Android 开发中零散知识点记录

正则表达式学习(上)

理解RxJava(四)Subject用法及原理分析

Android 一起来看看面试必问的消息机制

[译]Java将Powermock和Mockito搭配进行单元测试

Android内容服务ContentService原理浅析

程序猿Skr —– Flutter之歌

Android Bitmap变迁与原理解析(4.x-8.x)

Material Design学习:CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout

告别Dagger2模板代码:DaggerAndroid原理解析

教你打造Android揭面水波动画库-AnimationHelper

Flutter 开发遇到问题

Android——CoordinatorLayout之Behavior入门学习(下)

Android状态模式的几种应用场景

简单几行代码让ViewPager实现垂直滑动效果

Android 一起来看看 HttpURLConnection 和 HttpClient 的区别

Zxing二维码扫描和那些坑

我的 2018

认识Concurrent包中的 CAS

Android自定义View:MeasureSpec的真正意义与View大小控制

Android中gradle的implementation和api指令的区别

Android meta-data知识介绍及应用

从几行代码学习Java类加载机制-从懵逼到放弃

Android面试:主线程中的Looper.loop()一直无限循环为什么不会造成ANR?

闲散整理,带你走进Android短信源码

Android在string.xml中加粗文字

Java 打印心形

Android 计时的两种思路

Android中的内存泄漏和内存溢出.md

全面总结侧滑菜单的5种实现方式

JNI源码分析 (并实现JNI动态注册)

Material Design学习:ToolBar 开发使用简介

CalendarListView 日历列表

Android 撸起袖子,自己封装 DialogFragment

TitleItemDecoration

最全的BAT大厂面试题整理

一行Java代码实现RecyclerView的Adapter?一行都不需要!

程序员漫画系列-Linux内核里面的那些小企鹅们

Android 动画基础知识学习(上)

Activity生命周期函数理解

手把手教你从零开始做一个好看的 APP – Day one

设计模式(二) 三种适配器模式 总结和使用场景

程序员在简书|一个小城市,小公司的小程序员

程序员的江湖,黑话一定要牢记

Android 神兵利器Dagger2使用详解(三)MVP架构下的使用

2017年你绝对想尝试的25个新安卓库(持续更新中…)

小知识-Android一个应用多个图标的几种实现方式

【游客必看】 博主所有文章目录

Android 自定义View学习(二)——开始了解Canvas和Paint

Java编程思想第21章并发读书笔记(下)

常用Java并发数据结构

Flutter进阶篇(4)– Flutter的Future异步详解

教你如何最快写出酷炫的dialog对话框

开发工具总结(5)之Markdown语法图文全面详解及其工具介绍

AndroidStudio基本debug调试技巧纵览

动态图解&实例 ConstraintLayout Chain

Android 一起来看看 7.0 的新特性 FileProvider

Android 一个另类的显示圆形图片方式

Android8.0适配前台定位服务service

Android 实习 | 如何在春招中拿到满意的 offer

Android浅析SurfaceView

Gradle学习笔记(三)管理依赖

OkHttp基础学习(四),无网络读取本地缓存,有错误,待改正

Android 滑动选择身高体重控件——RulerView

10分钟学会ikvStockChart制作K线图(股票走势图)

Android —— 微信Sqlite数据库框架WCDB学习

当Android遇见工厂模式

Android 自定义View学习(一)——准备

WebView深度学习(一)之WebView的基本使用以及Android和js的交互

一个工程带你学会简单使用RxJava+Retrofit

Android 简易签名板

【Android】你可能不知道的Support(一) 0步自动定向刷新SortedList

【Android】ListView、RecyclerView、ScrollView里嵌套ListView 相对优雅的解决方案:NestFullListView

优化Android Studio/Gradle构建

针对Android中类的重载方法很多时的几种优化解决方案

几步教你怎么写MVP

 

你可能感兴趣的:(android,经验总结)