Android知识体系
2023-07-22 11:43:06 0 举报
AI智能生成
登录查看完整内容
Android知识体系
作者其他创作
大纲/内容
泛型的作用与定义
通配符与嵌套
泛型上下边界
Rxjava中泛型的使用分析
泛型
自定义注解与元注解
注解参数与默认值
自定义注解
APT,编译时注解处理器
插桩,编译后处理筛选
反射,运行时动态获取注解信息
注解的使用
Retrofit中的注解
注解
CPU核心数、线程数、时间片轮转机制解读
synchronized、lock、volatile、ThreadLocal如何实现线程共享
wait、notify/notifyAll,join方法如何实现线程间协作
线程共享和协作
CAS原理
原子操作类的正确使用实战
CAS带来的ABA问题
CAS
Callable、Future和FutureTask源码解读
线程池底部实现分析
线程池排队机制
手写线程池实战
Executor框架解读实战
线程池
Android AsyncTask原理解析
并发
Serializable原理
Parcelable接口原理解析
JSON
序列化
对象存活及强、弱等各种引用解析
快速解读GC算法之标记-清楚、复制以及标记-整理算法
GC日志解读
垃圾回收机制
JVM栈帧以及方法调用详解
JMM,Java Memory Model
内存分配策略
Dalvik虚拟机
虚拟机
三种获取Class对象的方式
获取构造器实例化对象与属性信息
包信息和方法
Hook技术动态变成
发射基本概念与Class
动态代理模式
Android Davilk与ART
PathClassLoader、DexClassLoader、BootClassLoader
双亲委托机制
ClassLoader类加载器
发射与类加载
装饰者模式
InputStream与OutputStream
Reader与Writer
Java IO体系
FileChannel
内存映射
File文件操作
IO操作Dex加密
IO
Consumer
Supplier
Predicate
Function
Lambda
https://juejin.cn/post/6983835171145383967
Stream
Java
Kotlin
基础知识
事件分发机制
onLayout与onMeasure
onDraw映射机制
View渲染机制
源码解析
布局管理器LayoutManager
ItemDecoration
ViewHolder与回收复用机制
RecyclerView
圆角阴影实现原理
5.0以下阴影与边距的适配
CardView
加载机制与优化
与Fragment的结合
ViewPager
使用与原理
js与Java交互
多进程WebView使用实战
WebView和Native的通信框架手写实战
WebView
常用View
ConstraintLayout
LinearLayout
RelativeLayout
FrameLayout
GridLayout
ViewGroup
Canvas与Paint高级使用
自定义属性与动画
自定义瀑布流实战
自定义View
UI
四大启动模式与IntentFlag
APK启动流程与ActivityThread解析
Activity生命周期源码解析
实战Splash广告载入与延时跳转
Activity与调用栈
Fragment事务管理机制
Fragment转场动画
嵌套处理,ChildFragmentManager
Fragment的管理与内核
start与bind区别与原理
自带工作线程的IntentService
前台服务与Notify
Service内核原理
Activity和Fragment低耦合通信设计
Android与Service通信
Intent数据传输与限制
ViewModel通信方案
事件总线EventBus源码解析
实战:自动感知生命周期事件总线LiveDataBus
组件间通信方案
组件内核
AIDL配置文件
C/S架构Binder原理
Messager
进程间通信框架原理与实现
Binder机制原理
Broadcast
ContentProvider
文件
Socket
共享内存与管道
其他IPC
IPC
sdcard与内部存储
Android文件系统
SharedPreference原理
MMAP内存映射
文件数据结构
增量更新与全量更新
微信MMKV原理与实现
轻量级kv持久化
SqliteOpenHelper
Sqlite升级与数据迁移方案
实战注解ROOM数据库框架
嵌入式Sqlite数据库
数据持久化
Activity管理
实战插件化核心启动未安装Activity
AMS
Window体系
悬浮窗口工具实现
WMS
PackageMS面试锦囊
实战插件化框架原理与实现
XMS内核管理
Looper
Message链表与对象池
MessageQueue消息队列与epoll机制
Handler消息机制
LayoutManager加载布局流程
Resource与AssetManager
布局加载与资源系统
Framework内核解析
Lifecycle的创建方式有几种
有什么不同?推荐使用哪种?为什么?
Event事件和State状态是什么关系
nStop()生命周期,处于什么State状态
Lifecycle是如何进行生命周期同步
如果在onResume注册观察者会收到哪几种回调?为什么?
ActivityFragment实现Lifecycle能力的方式一样吗?
为什么要做么设计?有什么好处?
Application能感知Activity生命周期吗?
Lifecycle从源码角度,简述Lifecycle的注册,派发,感知的过程
什么嵌套事件?发生的时机?Lifecycle是如何解决的?
Lifecycle
Jetpack
Android
单一职责原则
开闭原则
里氏替换原则
依赖倒置原则
接口隔离原则
迪米特法则
六大原则
桥接模式
适配器模式
装饰器模式
代理模式
组合模式
结构型模式
建造者模式
单例模式
抽象工厂模式
工厂方法模式
静态工厂模式
创建型模式
模板方法模式
策略模式
观察者模式
责任链模式
命令模式
访问者模式
行为型模式
设计模式
线性表ArrayList
链表LinkedList
栈Stack
Queue
Deque
阻塞队列
队列
平衡二叉树
红黑树
Tree
HashTable
HashMap
SparseArray
ArrayMap
映射表
数据结构
冒泡排序
选择排序
插入排序
快速排序
堆排序
基数排序
排序算法
折半查找
二分查找
树形查找
Hash查找
查找算法
算法
设计思想与代码质量优化
冷暖热启动耗时检测与分析
启动黑白屏解决
卡顿分析
StickMode严苛模式
Systrace与TraceView工具
启动速度与执行效率优化
布局层级优化
过渡渲染检测
Hierarchy Viewer与Layout Inspactor工具
布局检测与优化
内存抖动和内存泄露
内存大户,Bitmap内存优化
Profile内存检测工具
Mat大对象与泄露检测
内存优化
Doze&Standby
Battery Historian
JobScheduler、WorkManager
耗电优化
Google序列化工具protobuf
7z极限压缩
使用webp图片
网络传输与数据存储优化
APK瘦身
微信资源混淆原理
APK大小优化
屏幕适配
程序性能优化
分布式版本控制系统Git
Gradle与Android插件
Transform API
自定义插件开发
多渠道打包
发版自动钉钉
插件实战
自动化构建工具Gradle
开发效率优化
全方面性能调优
AOT/JIT、dexopt与dex2oat
CLASS_ISPREVERIFIED问题与解决
即使生效与重启生效热修复原理
Gradle自动补丁包生成
热修复设计
Class文件加载Dex原理
Android资源加载与管理
四大组件的加载与管理
so库的加载原理
Android系统服务的运行原理
插件化框架解读
组件化之集中式路由-阿里巴巴ARouter原理
APT技术自动生成代码与动态类加载
Java SPI机制实现组件服务调用
拦截器AOP编程(跳转前预处理--登录),路由参数传递与IOC注入
手写组件化式路由
组件化框架设计
Universal ImageLoader、Glide、Picasso与Fresco
Glide
Picasso
Fresco
图片加载框架选型
Fragment感知生命周期
自动图片大小计算
图片解码
优先级请求队列
ModelLoader与Registry机制
LRU内存缓存
引用计数与弱引用活跃缓存
Bitmap复用池
缓存大小配置
内存缓存原理
原始图像文件缓存
解码图像文件缓存
磁盘文件缓存
Glide原理分析
图片加载框架
Restful RUL
HTTP协议&TCP/IP协议
SSL握手与加密
DNS解析
SOCKETS代理
HTTP普通代理与隧道代理
Socket通信原则
网络通信必备基础
Socket连接池复用机制
HTTP协议重定向与缓存处理
高并发请求队列:任务分发
责任链模式拦截器设计
OKHttp源码解读
Retrofit源码解析
网络访问框架设计
链式调用
扩展的观察者模式
事件变换设计
Scheduler线程控制
RxJava响应式编程框架设计
依赖注入与控制反转
ButterKnife原理
Dagger架构设计核心解密
IOC架构设计
LiveData原理
Navigation如何解决tabLayout问题
ViewModel如何感知View生命周期以内核原理
Room架构方式方法
dataBinding为什么能够支持MVVM
WorkManager内核揭秘
Lifecycle生命周期
Android架构组件-Jetpack
设计思想解读开源框架
数据类型
内存结构与管理
预处理指令、Typedef别名
结构体与共用体
指针、智能指针、方法指针
线程
函数、虚函数、纯虚函数与析构函数
初始化列表
类
C与C++
静态与动态注册
方法签名、与Java通信
本地引用与全局引用
JNI开发
编译器、打包工具与分析器
静态库与动态库
CPU架构与注意事项
CMake
Makefile
构建脚本与构建工具
FFmpeg交叉编译
X264、FAAC交叉编译
解决所有移植问题
交叉编译移植
AS构建NDK项目
Native开发工具
Linux环境搭建,系统管理,权限系统和工具使用(vim等)
Shell脚本编程
Linux变成
NDK知识体系
PNG/JPEG/WEBP图像处理与压缩
微信图片压缩
GIF合成原理与实现
底层图片处理
Camera与手机屏幕采集
图像原始数据格式YUV420(NV21与YV12等)
音频采集与播放系统
编解码器MediaCodec
MediaMuxer复用与MediaExtractor
多媒体系统
FFmpeg模块介绍
音视频解码,音视频同步
I帧,B帧,P帧解码原理
x264视频编码与faac音频编码
OpenGL绘制与NativeWindow绘制
FFmpeg
RTMP协议
音视频通话P2P webRTC
流媒体协议
OpenGL ES美颜大眼
抖音视频效果分析与实现
子主题
音视频效果处理
音视频开发
灰度化、二值化
腐蚀与膨胀
图像预处理
人脸检测
身份证识别
SVM分类器检测车牌
人工神经网络识别车牌
车牌号识别
Opencv
机器学习
NDK模块开发
MVC、MVP、MVVM
模块化与组件化架构
架构设计
架构师炼成实战
Android知识体系
收藏
0 条评论
回复 删除
下一页