知识体系引导

一、基础

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模块梳理

三、系统开发

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 读书笔记
易经 【易经六十四卦】-乾卦
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349

推荐阅读更多精彩内容