Android 知识体系图谱

发布于 2023-01-05 23:32:28 字数 6034 浏览 173 评论 0

思维导图:https://www.wenjiangs.com/attachment/7949782e706e67

系统源码学习

组件

四大组件解析

Activity
Activity 的启动过程
启动流程和启动模式
生命周期
# onNewIntent()
与Window/View的关系
与Fragment的关系
Service
IPC(AIDL)、IntentService
ContentProvider全方位解析
BroadcastReceiver全方位解析
静态、有序、本地、粘性

Fragment

懒加载
与Activity通信

Context详解

Window

Toast
Dialog
PopupWindow
PopupWindow和Dialog区别

WebView

JSBridge
Deeplink
首屏加速
离线包

RecyclerView

四级缓存+局部刷新
与ListView比较

LinearLayout 和 RelativeLayout 相同层级下效率比较

系统服务

ActivityManagerService

Window和WindowManager

WindowManagerService

ServiceManager

流程

Android系统启动过程

system_server启动过程

Android Apk安装过程

Android应用进程启动

通讯

WIFI

NFC

蓝牙

架构能力

设计模式

Android源码中的设计模式应用

OOD原则

架构模式

MVP

MVVM

DataBinding

Flux

Clean Architecture

Android Architecture Components

Android Jetpack架构

App框架

分包

分层

开源库

ORM框架

GreenDao

Room

事件总线

EventBus

4种模式、粘性事件
观察者模式解耦

网络

Retrofit

动态代理
运行时注解
GsonConverter
RxJava2CallAdapter

OKHttp

拦截器(责任链模式)
超时重传&重定向
Http缓存
Socket连接池复用

Volley

图片

Glide

生命周期控制
二级缓存
BitmapPool复用

Fresco

Picasso

依赖注入

butterknife

apt

Dagger2

序列化

Gson

FastJson

ARouter

响应式编程

RxJava

常用操作符
线程调度
异常处理
Flowable背压

RxBinding

RxAndroid

测试

单元测试

robolectric

自动化测试

UI自动化

Money

常见机制

线程通信

Handler原理

AsyncTask

HandlerThread

IntentService

RxJava

进程

IPC通信Binder

AIDL
序列化
匿名共享内存

lowmemorykiller

进程的优先级

View体系

自定义控件

事件分发机制
滑动冲突
滑动、嵌套滑动
自定义动画
Lottie动画解析库
绘制
measure
layout
draw
# requestLayout() 和 invalidate() 区别

Android消息机制

本地存储

Sqlite、SharedPreferences、文件

资源管理系统、资源加载机制

基础能力

Java高级

反射

动态代理

NIO

垃圾回收和GC

多线程(并发锁)

网络协议

集合框架

数据结构和算法

线性表

栈和队

树的基础
其他常见的树
并查集
B-树,B+树,B*树

图的基础
拓扑排序
Kruskal算法、Prim算法、Dijkstra算法、Floyd算法

散列查找

排序

海量数据处理

操作系统

计算机网络

DNS HTTP/1.x HTTPs HTTP/2 TCP 等网络协议知识

SSL

虚拟机

JVM

ART & Dalvik

AOT compilation
GC
Bytecode & Dex

进阶

资源管理

主题样式

多分辨率适配

AssertManager

Resource

打包

Gradle

编译

混淆

签名

AOP

AspectJ

APT

Javassist

组件化

页面路由

消息推送&保活

长连接保活

心跳包

进程保活

NDK

调用JNI方法

回调JAVA方法

CMAKE语法

NDK MakeFile语法

安全

root原理

二进制漏洞挖掘

经典的漏洞研究如cve20143153 cve20153636之类

poc和exp

逆向

arm汇编
smali字节码
dex和ELF结构
安卓和Linux调试体系和反调式体系
加固与反加固
Hook

多媒体

图片

图片处理
Bitmap压缩策略
Bitmap裁剪
Bitmap复用
动画
View动画、帧动画、属性动画
图片加载
缓存策略
# LRUCache

音视频

音频编解码
AudioTrack播放
视频解码
OpenGL绘制
视频编辑转码
视频滤镜

性能优化

启动时间和冷启动优化

避免启动白屏

Crash 收集分析

卡顿检测和优化

ARR
避免频繁GC
ViewHolder

布局优化

include、merge、ViewStub的使用

线程优化

监控

埋点
APM 性能检测
WebView 性能监控
leakcanary 内存泄露监控

内存优化

OOM
内存泄露
图片压缩
内存分析
MAT
monitor

apk瘦身

电量优化

网络优化

网络调试
Charles
Fiddler
tcpdump
postman
低网速优化
API优化
流量优化

持续集成

Jenkins

动态化

混合开发

React Native
Fuchsia+Flutter+Dart
weex
JavaScript引擎
渲染引擎

插件化技术

class、dex基础知识
ClassLoader原理
如何hook Activity启动流程
双亲委派
插件化原理
插件化框架学习

热修复

插桩
ASM字节码
类加载方式
底层替换

其他

Python

Linux

kernel源码

SELinux

Docker

Android 书籍

入门

第一行代码

Android群英传

Android编程权威指南

Android编程实战

进阶

Android开发进阶从小工到专家

深入理解Android

Android组件化架构

App研发录

Android 进阶解密

Android 进阶之光

源码

Android源码设计模式解析与实战

Android开发艺术探索

Creating Dynamic UI with Android Fragments

安全

Android安全架构深究

Android软件安全与逆向分析

底层

Android系统源代码情景分析

Android内核剖析

深入理解Android内核设计思想

T型成长

团队管理

敏捷

Devops

CodeReview

代码质量与代码规范

自我管理

代码质量

时间管理

后端

领域驱动设计

微服务

语言

Kotlin

C、C++(NDK)

SQL(DB)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

递刀给你

暂无简介

文章
评论
26 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文