知识体系引导

一、基础

1.1 Java

系列 文章
Java基础 Java基础(一)-泛型
Java基础(二)-注解
Java基础(三)-反射
Java基础(四)-IO / NIO
Java基础(五)-集合之HashMap
Java基础(六)-CurrentHashMap线程安全实现
Java基础(七)-LinkedHashMap原理分析
Java基础(八)-设计模式
网络 Android网络编程(一)-协议分层
Android网络编程(二)-session、cookie、token
Android网络编程(三)-HTTP协议
Android网络编程(四)-TCP / UDP协议
Android网络编程(五)-由Okhttp看网络库
线程 多线程(一)-线程基础
多线程(二)-线程同步
多线程(三)-为主线程减负的多线程方案
虚拟机 虚拟机(一)-JVM执行java代码流程浅析
虚拟机(二)-Dalvik执行java代码流程浅析
虚拟机(三)-JVM 、DVM 、ART简单对比
虚拟机(四)-JVM垃圾回收
class & dex
JVM虚拟机

1.2 Kotlin

系列 文章
Kotlin Kotlin学习笔记(一)-语法糖

1.3 Gradle

系列 文章
Gradle Android Gradle(一)- 开篇
Android Gradle(二)- groovy
Android Gradle(三)- gradle
Android Gradle(四)- 自定义plugin

1.4 Pyhton

系列 文章
Python Python入门(一)-语法基础
Python入门(二)-函数
Python入门(三)-面向对象
Python入门(四)-字符串常规操作
Python入门(五)-文件读写

1.5 Makefile

系列 文章
Makefile Makefile入门(一)-概述
Makefile入门(二)-MakeFile介绍
Makefile入门(三)-书写规则
Makefile入门(四)-书写命令
Makefile入门(五)-使用变量
Makefile入门(六)-使用条件判断
Makefile入门(七)-使用函数
Makefile入门(八)-make运行
Makefile入门(九)-隐含规则
Makefile入门(十)-使用make更新函数库文件
Makefile学习总结

二、应用开发

2.1 App开发

系列 文章
应用安装 应用安装(一) - 三方应用发起apk系统安装
应用安装(二) - PackageInstaller中转apk安装
应用安装(三)- 系统实现apk安装整体流程
应用启动 应用启动流程梳理(一)-应用安装流程
应用启动流程梳理(二)-Input事件传递流程
应用启动流程梳理(三)-Activity启动流程
应用启动流程梳理(四)-视图处理流程
其他 Android序列化浅析
Android项目构建过程分析
android imageview scaletype属性
Android中shape中的属性大全
Android数据存储路径分析
viewpage+fragment浅谈几点问题
录屏软件:OBS Studio 安装操作指南for mac
maven私服搭建

2.2 Sdk开发

系列 文章
网络组件 网络组件 - Okhttp3与Volley整体架构分析
网络组件 - HTTP加密策略分析
网络组件 - 改造方案设计
热修&插件组件 热修&插件 - 编译
热修&插件 - Art加载Dex流程
热修&插件 - Art加载Class流程
热修&插件 - Dalvik加载Dex相关流程
Xcrash 方案选型调研
Xcrash V2.5.7框架解析
Glide 图片框架 - 三方库调研
图片框架 - Glide 4.11.0源码走读
图片框架 - Glide自定义配置和组件及Registry机制
图片框架 - Glide加载webp动图流程解析
图片框架 - Glide解码webp动图浅析
图片框架 - Glide缓存机制解析
图片框架 - Glide磁盘缓存研究
宏观剖析Glide源码
Tinker 热修复框架 - 从Tinker 1.9.14.7开始
热修复框架 - TinkerApplication启动(一) - 初始化过程
热修复框架 - TinkerApplication启动(二) - 加载dex补丁过程
热修复框架 - TinkerApplication启动(三) - 加载资源补丁过程
热修复框架 - TinkerApplication启动(四) - 加载so补丁过程
热修复框架 - Tinker 安装流程分析
热修复框架 - Tinker patch合成流程
热修复框架 - Tinker DexDiff算法浅析
热修复框架 - Tinker disable逻辑梳理
宏观剖析Tinker整体玩法
从Tinker加载dex补丁看动态加载插件过程
Volley Volley V1.1.0 框架解析及线程池优化思考
LeakCanaray leakCanaray V2.5 框架源码解析
KOOM KOOM V1.0.5 框架解析
KOOM V1.0.5 fork dump方案解析
Matrix Matrix V0.6.5 框架解析
ARouter ARouter V1.5.1 框架解析

2.3 NDK开发

系列 文章
语言基础 NDK开发(一) - C语言基础
NDK开发(二)- JNI
NDK开发(三) - C++基础

2.4 架构设计与重构

系列 文章
组件化 项目组件化实践

2.5 逆向安全

系列 文章
基础 【逆向安全】-基础(一)AOSP下载、编译、刷机、调试
【逆向安全】-基础(二)基于vscode的art调试
工具 【逆向安全】-工具(一)AppShark
【逆向安全】-工具(二)Frida
【逆向安全】-工具(三)Jadx & Apktool
系统模块 Widget添加和更新流程分析
FloatWindow弹窗梳理
Android 8.0+ 后台广播限制分析
Android Wifi模块梳理
Android PendingIntent小结

三、系统开发

3.1 Framework

系列 文章
新手引导 了解Android系统架构
如何玩Android系统源码
系统启动 Android系统启动(一)-开篇
Android系统启动(二)-Init篇
Android系统启动(三)-Zygote篇
Android系统启动(四)-SystemServer篇
Android系统启动(五)-ActivityManagerService篇
Android系统启动(六)-Launcher篇
进程管理 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梳理
View 整体梳理:
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信号处理
HWUI:
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编译流程
AMS Activity:
四大组件之Activity(一)-启动过程概览
四大组件之Activity(二)-StartingWindow流程分析
四大组件之Activity(三)- 任务栈
Activity启动流程分析
Service:
四大组件之Service(一)-Service启动过程
PMS Android PMS(一)-启动流程
Android PMS(二)-Apk安装流程
Android PMS(三)-Installd执行dexopt流程
Android PMS(四)-安装微信
WMS Android WMS(一)-窗口管理
Android WMS(二)-Surface管理
Android WMS(三)- Input管理
其他 手机状态栏信号显示流程浅析
Service的自动重启问题
任务列表流程浅析
Android phone 拨号、来电流程
内存耗用:VSS/RSS/PSS/USS 的介绍

3.2 Kernel

Linux学习 文章
内存管理 Linux学习-内存管理篇(一) - 概览
Linux学习-内存管理篇(二)-MMU介绍
Linux学习-内存管理篇(三)-节点、分区、页、页框、页表关系分析
Linux学习-内存管理篇(四)-内存分配算法
Linux学习-内存管理篇(五)-内存分配函数
Linux学习-内存管理篇(六)-内存回收(lru链表)
内存管理基础(上)
内存管理基础(下)
进程管理与调度 Linux学习-进程管理与调度(一)-进程描述及其生命周期
Linux学习-进程管理与调度(二)-进程的创建与销毁
Linux学习-进程管理与调度(三)-调度基础
Linux学习-进程管理与调度(四)-负载均衡与实时性
文件&权限 Linux学习 - 文件基本属性
Linux学习 - SELinux/SEAndroid

四、性能优化:

系列 文章
优化盘点(加精) 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(二)-触发原理

五、数据结构&算法

分组 文章
基础 数据结构&算法(一)-算法思想
数据结构&算法(二)-单链表
数据结构&算法(三)-二叉树
数据结构与算法(四)-排序
数据结构&算法(五)-字符串
数据结构&算法(六)-数组

六、读书笔记

书名 文章
持续交付2.0 持续交付2.0 读书笔记
易经 【易经六十四卦】-乾卦
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容