- 设计思想与代码质量优化
六大原则、设计模式、数据结构、算法 - Java
- Kotlin基础
- Android
- 性能优化与稳定性
- 开源框架详解
- 加密
- NDK
- Flutter
- 计算机网络
- Gradle
- 面试题
- 感兴趣的小伙伴可以继续研究小程序和鸿蒙系统
1、设计思想与代码质量优化
六大原则
面向对象设计的六大设计原则
设计模式六大原则(一)----单一职责原则
设计模式六大原则(二)----里式替换原则
设计模式六大原则(三)----依赖倒置原则
设计模式六大原则(四)----接口隔离原则
设计模式六大原则(五)----迪米特法则
设计模式六大原则(六)----开闭原则
设计模式
UML类图
时序图
设计模式简介
如何学习设计模式
创建型模式(5种)
01-1、工厂模式
02-2、抽象工厂模式
03-3、单例模式
04-4、建造者模式
05-5、原型模式
结构型模式(8种)
06-1、适配器模式
07-2、桥接模式
08-3、过滤器模式
09-4、组合模式
10-5、装饰器模式
11-6、外观模式
12-7、享元模式
13-8、代理模式
行为型模式(12种)
14-01、责任链模式
15-02、命令模式
16-03、解释器模式
17-04、迭代器模式
18-05、中介者模式
19-06、备忘录模式
20-07、观察者模式
21-08、状态模式
22-09、空对象模式
23-10、策略模式
24-11、模板模式
25-12、访问者模式
数据结构
01、线性表 ArrayList
02、链表 LinkedList
01-02、顺序表与双链表类似ArrayList和LinkedList(带Iterator迭代器与fast-fail机制)
03、栈 Stack
04、队列 Queue
05、队列 Duque
06、队列 阻塞队列
07、Tree 平衡二叉树基本概念
07、Tree 平衡二叉树平衡二叉树(AVL树)
08、Tree 红黑树
09、映射表 HashTable
10、映射表 HashMap
HashMap 的实现原理和扩容原理是怎样的?
11、映射表 SparseArray
12、映射表 ArrayMap)
算法
排序算法
1.0 十大经典排序算法
1.1 冒泡排序
1.2 选择排序
1.3 插入排序
1.4 希尔排序
1.5 归并排序
1.6 快速排序
1.7 堆排序
1.8 计数排序
1.9 桶排序
1.10 基数排序
查找算法
01、顺序查找算法
02、二分查找算法
03、插值查找算法
04、斐波那契查找算法
05、树表查找算法
06、分块查找算法
07、哈希查找算法
2、Java基础
Java简介和发展史
泛型
注解
并发
Java 中的多线程你只要看这一篇就够了
Java多线程:从基本概念到避坑指南
Java堆内存是线程共享的!面试官:你确定吗?
从 synchronized 到 CAS 和 AQS - 彻底弄懂 Java 各种并发锁
Java线程池解析
序列化
序列化/反序列化
Android序列化(Serializable/Parcelable)总结
JVM
Dalvik 和 ART 有什么区别?深扒 Android 虚拟机发展史,真相却出乎意料!
面试官问我JVM内存结构
JVM-对象的组成以及内存分配
Java内存区域与内存分配策略
深入理解JVM的垃圾回收机制
JVM垃圾回收机制
虚拟机(一)-JVM执行java代码流程浅析
虚拟机(二)-Dalvik执行java代码流程浅析
虚拟机(三)-JVM 、DVM 、ART简单对比
虚拟机(四)-JVM垃圾回收
class & dex
JVM虚拟机
反射与类加载
学会反射后,我被录取了
我竟然不再抗拒 Java 的类加载机制了
Android 类加载机制及热修复原理
深入理解 Java 反射和动态代理
IO/NIO
为什么一个还没毕业的大学生能够把 IO 讲的这么好?
3、Kotlin基础
01、基础知识快速入门
02、面向对象编程(类与对象)
03、空指针检查
04、标准函数、扩展函数、高阶函数、内联函数
05、泛型及其高级特性
06、从集合谈Kotlin中的Lambda编程
07、协程总结
08、静态方法、infix函数、高阶函数的常见应用举例
4、Android
01、Android四大组件Activity
02、Android四大组件Service
03、Android四大组件BroadcastReceiver
04、Android四大组件ContentProvider
05、Android之Fragment
06、Android六大基本布局
07、Android事件分发机制详解
08、AndroidRecyclerView和ListView的区别
09、Android多线程
10、Android动画
11、MVC、MVP、MVVM的简单理解
12、Handler 机制和原理
13、进程、线程、多线程区别
14、项目组件化实践
15、Android:Webview - 文集
16、ProtocolBuffer序列化 - 文集
Android自定义View
Android自定义View全解
Android自定义View:测量规格(MeasureSpec)到底是什么
Android自定义View:ViewRoot、DecorView & Window的简介
Android自定义View:你知道通过getWidth() 与 getMeasuredWidth() 获取宽高的区别吗?
自定义View Canvas类全面解析
自定义View Path类全面解析
手把手教你写一个完整的自定义View
自定义View 绘制过程(Draw)
自定义View 布局过程(Layout)
自定义View 测量过程(Measure)
自定义View绘制准备-DecorView创建
一文梳理自定义View工作流程
应用保活
Android实现进程保活方案解析
Android保活方案
Android 给App保活(10种方案)
系统启动
Android Framework启动流程浅析
Android系统启动(一)-开篇
Android系统启动(三)-Zygote篇
Android系统启动(三)-Zygote篇
Android系统启动(四)-SystemServer篇
Android系统启动(五)-ActivityManagerService篇
Android系统启动(六)-Launcher篇
AMS
进程管理
Android进程管理篇(一)-应用进程启动过程
Android进程管理篇(二)-进程查杀方式总结
Android进程管理篇(三)-进程adj算法
Android 进程管理篇(四)-cpu限制
Android 进程管理篇(五)-调度策略与优先级
打通Framework与Kernel-谈谈我对进程管理的理解
进程内通信
Android通信方式篇(一)-消息机制(Java层)
Android通信方式篇(二)-消息机制(ThreadLocal详解)
Android通信方式篇(三)-消息机制(Native层)
进程间通信
Android通信方式篇(四)-Binder机制(开篇)
Android通信方式篇(五)-Binder机制(Kernel层)
Android通信方式篇(六)-Binder机制(Native层(上))
Android通信方式篇(七)-Binder机制(Native层(下))
Android通信方式篇(八)-Binder机制(Framework层)
Binder梳理
写给 Android 应用工程师的 Binder 原理剖析
图形系统
Android图形系统(一)-Window加载视图过程
Android图形系统(二)-DecorView布局加载流程
Android图形系统(三)-View绘制流程
Android图形系统(四)-Activity、Window、View关系总结
Android图形系统(五)-Surface图形系统概览
Android图形系统(六)-app与SurfaceFlinger服务连接过程
Android图形系统(七)-app请求SurfaceFlinger创建Surface过程
Android图形系统(八)-app与SurfaceFlinger共享UI元数据过程
Android图形系统(九)-View、Canvas与Surface的关系
Android图形系统(十)-SurfaceFlinger启动及图层合成送显过程
Android图形系统(十一)-Choreographer
Android图形系统(十二)-流畅度概念
Android图形系统(十三)-Vsync信号处理
硬件加速
Android9.0 硬件加速(一)-开篇
Android9.0 硬件加速(二)-RenderThread线程的启动
Android9.0 硬件加速(三)-绑定Surface到RenderThread
Android9.0 硬件加速(四)-UI Thread绘制过程
Android9.0 硬件加速(五) -RenderThread渲染过程
Input
Android Input(一)-相关模块初始化
Android Input(二)-输入子系统
Android Input(三)-InputReader获取事件
Android Input(四) -InputDispatcher分发事件
Android Input(五)-InputChannel通信
Android Input(六)-ViewRootImpl接收事件
Android Input(七)-ViewRootImpl处理事件
Android Input(八)- ANR原理分析
Android Input(九)-Input问题分析指北
Android Input(十)-整体流程图
Runtime
Android 9.0 ART编译分析(一)-编译通路梳理
Android 9.0 ART编译分析(二)-Installd触发dex2oat编译流程
Android 9.0 ART编译分析(三)-虚拟机触发dex2oat编译流程
ActivityManagerService(AMS)
Android中AMS的理解与简介
四大组件之Activity(一)-启动过程概览
四大组件之Activity(二)-StartingWindow流程分析
四大组件之Activity(三)- 任务栈
四大组件之Service(一)-Service启动过程
PackageManagerService(PMS)
Android PMS(一)-启动流程
Android PMS(二)-Apk安装流程
Android PMS(三)-Installd执行dexopt流程
Android PMS(四)-安装微信
WindowManagerService(WMS)
Android WMS(一)-窗口管理
Android WMS(二)-Surface管理
Android WMS(三)- Input管理
应用启动流程
应用启动流程梳理(一)-应用安装流程
应用启动流程梳理(二)-Input事件传递流程
应用启动流程梳理(三)-Activity启动流程
应用启动流程梳理(四)-视图处理流程
Android应用启动流程分析
APK加固
Android应用加固原理
Android apk加固实现原理
Android中的Apk的加固(加壳)原理解析和实现
5、性能优化与稳定性
Android性能优化盘点 - 系统基础
Android性能优化盘点 - 启动优化
Android性能优化盘点 - 卡顿优化
Android性能优化盘点 - 布局优化
Android性能优化盘点 - 内存优化
Android内存优化 - 常见内存泄露及优化方案
Android大图片处理机制
优化工具
性能优化工具(一)-StrictMode
性能优化工具(二)-Systrace
性能优化工具(三)-TraceView
性能优化工具(四)-Allocation Tracker
性能优化工具(五)-Heap Viewer
性能优化工具(六)-Layout Inspector
性能优化工具(七)-调试GPU过度绘制 & GPU呈现模式分析
性能优化工具(八)-MAT
性能优化工具(九)-LeakCanary
性能优化工具(十)- Android内存分析命令
性能优化工具(十一)-Android Profiler
性能优化工具(十二)-使用 CPU Profiler 检查 CPU Activity 和函数跟踪
性能优化工具(十三)-使用 Memory Profiler 查看 Java 堆和内存分配
性能优化工具(十四)-利用 Network Profiler 检查网络流量
其他
simpleperf
Battery Historain
Matrix
systrace使用实战
从systrace看app冷启动过程(一)-应用程序启动
从systrace看app冷启动过程(二)-首帧的绘制与渲染
从systrace看app冷启动过程(三)-首帧的合成与送显
原生方案
Android Q app内存压缩优化方案介绍
lowmemorykiller总结
优化实战 - 启动耗时分析
启动耗时分析(一)-测量应用启动时间
启动耗时分析(二)-CPU问题分析
启动耗时分析(三)-ART编译分析
启动耗时分析(四)-具体方法耗时分析
性能优化思考
性能优化实践(一)-安装包瘦身
性能优化实践(二)-布局优化
性能优化实践(三)-卡顿优化思考
性能优化实践(四)-内存优化思考
APM
内存信息获取方式分析
稳定性-Crash
java crash处理分析
native crash处理流程分析
稳定性-ANR
anr日志生成与捕获方式分析
Android ANR(一)-基本分析方法
Android ANR(二)-触发原理
6、开源框架详解
Android Glide 原理解析
Android | 《看完不忘系列》之Glide
面试官:简历上最好不要写Glide,不是问源码那么简单
面试官:听说你熟悉OkHttp原理?
Android中okhttp原理详解
入木三分:从设计者角度看Retrofit原理
Android Retrofit 工作原理解析
详解 RxJava 的消息订阅和线程切换原理
RxJava2 只看这一篇文章就够了
Android 热修复 Tinker接入及源码浅析
Android热修复Tinker原理分析
热修复框架 - 从Tinker 1.9.14.7开始
热修复框架 - TinkerApplication启动(一) - 初始化过程
热修复框架 - TinkerApplication启动(二) - 加载dex补丁过程
热修复框架 - TinkerApplication启动(三) - 加载资源补丁过程
热修复框架 - TinkerApplication启动(四) - 加载so补丁过程
热修复框架 - Tinker 安装流程分析
热修复框架 - Tinker patch合成流程
热修复框架 - Tinker DexDiff算法浅析
热修复框架 - Tinker disable逻辑梳理
宏观剖析Tinker整体玩法
从Tinker加载dex补丁看动态加载插件过程
Arouter从使用到原理
Android ARouter:最简单&粗暴(使用与原理)讲解
ARouter原理剖析及手动实现
leakCanaray V2.5 框架源码解析
LeakCanary最新2.8.1版本源码 原理分析 [2022年初kotlin版]
性能优化工具(九)-LeakCanary
Android—Gson原理解析
Android-Gson源码实现
RecyclerView缓存原理,有图有真相
【进阶】RecyclerView源码解析(一)——绘制流程
【进阶】RecyclerView源码解析(二)——缓存机制
【进阶】RecyclerView源码解析(三)——深度解析缓存机制
【进阶】RecyclerView源码解析(四)——RecyclerView进阶优化使用
Android Jetpack 之 LiveData 详解
LiveData的工作原理
Android livedata 源码解剖
“终于懂了“系列:Jetpack AAC完整解析DataBinding 重新认知!
Android-DataBinding源码探究
从DataBinding源码理解Databinding工作过程
Android lifecyle
“终于懂了“系列:Jetpack AAC完整解析Lifecycle 完全掌握!
Android Jetpack之WorkManager源码分析
WorkManager源码解析
Jetpack新成员,Paging3从吐槽到真香
反思|Android 列表分页组件Paging的设计与实现:架构设计与原理解析
Android-Paging源码分析
MultiDex工作原理分析
Android MultiDex 工作原理分析和优化方案
7、数据加密
Android加密方式
数据加密 总篇
不可逆加密
数据加密 MD5加密使用
数据加密 MD5 加密
数据加密 SHA 加密
数据加密 SHA-2 加密
加解密算法 HMAC 的使用
对称加密(可逆)
数据加密 异或加密
数据加密 AES加密使用
数据加密 AES 加密
数据加密 DES 加密使用
数据加密 DES 加密
数据加密 3DES 加密使用
数据加密 3DES 加密
非对称加密(可逆)
非对称加密算法 (RSA、DSA)概述
非对称加密算法 RSA+对称AES
数据加密 RSA 加密使用
数据加密 RSA 加密
数据加密 DSA 加密
数据加密 ECC 加密
8、NDK
NDK开发(一) - C语言基础
NDK开发(二)- JNI
NDK开发(三) - C++基础
9、Flutter
01、你好 Flutter
02、Dart基础 变量 内置类型 操作符
03、Dart基础 方法 异常 类
04、异步编程
05、路由与导航
06、基础Widget
07、手势、自定义Widget
08、动画与打包
09、Flutter Plugin
10、Flutter 的生命周期
10、计算机网络
TCP,UDP,Socket,HTTP,HTTPS
Android网络编程(一)-协议分层
Android网络编程(二)-session、cookie、token
Android网络编程(三)-HTTP协议
Android网络编程(四)-TCP / UDP协议
Android网络编程(五)-由Okhttp看网络库
TCP协议详解
全面 & 详细 的TCP协议攻略
关于HTTP协议,一篇就够了
UDP协议的详细解析
Android:这是一份很详细的Socket使用攻略
11、Gradle
Android Gradle(一)- 开篇
Android Gradle(二)- groovy
Android Gradle(三)- gradle
Android Gradle(四)- 自定义plugin
面试题
Java
Java基础知识面试题(总结最全面的面试题)
Java集合面试题(总结最全面的面试题)
Java虚拟机(JVM)面试题(总结最全面的面试题!!!)
BIO、NIO、AIO、Netty面试题(总结最全面的面试题!!!)
Java并发编程(总结最全面的面试题!!!)
Java异常面试题(总结最全面的面试题)
Android
Android 面试之必问Java基础
Android 面试之必问Android基础
Android 面试之必问高级知识点
Android 面试之必问性能优化
1、Android 四大组件面试题
2、Android UI 绘制面试题
3、Android 异步任务和消息机制面试题
4、Android IPC 面试题
5、Android 性能调优面试题
6、Android SDK 面试题 - (jianshu.com)
7、Android 第三方框架面试题 - (jianshu.com)
8、Android 综合技术面试题 - (jianshu.com)
9、Android 数据结构面试题 - (jianshu.com)
10、Android 设计模式面试题 - (jianshu.com)
11、Android 网络面试题
12、Android Kotlin面试题
设计模式
设计模式面试题(总结最全面的面试题!!!)
算法与数据结构
前端该如何准备数据结构和算法?
计算机网络
TCP、UDP、Socket、HTTP网络编程面试题(总结最全面的面试题!!!)
第三方框架
Kotlin
金三银四必备,全面总结 Kotlin 面试知识点
kotlin面试_Kotlin面试问题
面试必备:Kotlin 线程同步的 N 种方法
Flutter
Flutter 面试知识点集锦
面试官:知道 Flutter 生命周期?下周来入职!
Flutter 生命周期