整理了一份 Android 高级开发的技术大纲,如有遗漏和不足,欢迎指出和补充。
为了方便查看,大家可以查看xmind版图片:
高级开发路线规划.png
UI 绘制
UI绘制流程以及原理
- Android xml布局绘制到屏幕的原理
- Android 系统卡顿原理以及VSYNC信号机制
自定义View
- Paint & Canvas
- 贝塞尔曲线
- Camera几何变换和原理
- 测量和布局
- 硬件加速
- PathMeasure
属性动画
- 属性动画源码分析
- TypeEvaluator源码分析和定制
- 自定义复杂动画
事件传递机制
- 事件分发详解
- 解决嵌套滑动问题
屏幕适配
- 自定义像素适配
- 百分比适配
- 修改系统density、densityDPI适配
- 刘海屏适配
其他
-
Material design
- 交互设计规范
- 组件熟悉和使用
- CardView源码分析
- CoordinatorLayout实现原理和高级用法
- 自定义RecyclerView以及优化
SVG的用法和原理
阿里VLayout原理
NDK 开发
C/C++相关
- Linux内存布局原理、指针分析
- 结构体、共同体
- so动态库的设计和编译
- 命名空间、C++混合编程、函数扩展
- C++编译器对象管理模型分析
- C++类型转换、操作符重载
- IO和异常处理
- 容器、对组、对象管理、类的构造和析构、友元函数
NDK编译原理和语法详解
-
MakeFile语法详解
- 静态库与动态库原理和编译流程
- MakeFile文件走读
- 编译、链接、处理程序
- MakeFile语法
- 预定义变量和宏函数
-
Cmake详解
- Cmake编译so库过程
- Cmake与MakeFile的区别
- Cmake语法详解
- CmakeList.txt文件构成详解
-
Shell语法详解
- 语法详解
- 方法参数传递机制
- Shell脚本编写和执行编译ffmpeg库
短视频热门技术实现
- 音视频处理
- FFmpeg集成
- 音视频编码原理
- 音视频解码、音视频同步处理
- 音视频采集与编码
- 直播推流的原理及实现
- 音视频特效
- 人脸美化
- 熟悉OpenGL
- 人脸磨皮、美白算法
- 图像处理
- 人脸关键点检测
- 人脸贴纸
- 大眼瘦脸
- 其他
- 仿抖音灵魂出窍、幻影抖动
- 音视频合成原理
- 人脸美化
OpenCV
- opencv原理详解、结构体、颜色通道
- Android studio 通过 Cmake 配置opencv开发环境
- opencv实现车牌号码检测与识别、人脸识别
- opencv其他应用
webRTC
- WebRTC详解
- 实现点对点通信原理
- 实现内网通信的穿透机制原理
- 实现视频通话
其他
- 阿里andfix热修复和Sophix原理分析
- Java方法在Davik和Art虚拟机运行原理
- 利用系统源码实现GIF播放
- bsdiff实现增量更新
架构
设计模式
- AOP面向切面编程(集中式登录架构设计)
- Handler+Message源码分析和手动实现
- Binder原理
- PMS源码分析和apk安装原理
- AMS源码分析和架构设计
- App启动流程源码解析
应用架构
- MVC思想和优化
- MVP思想以及实际应用、优化
- MVVM与databinding
- Google android architecture架构分析
- databinding原理与编译时绑定布局和数据原理
应用换肤技术
- 动态式换肤详解(QQ、美团、网易云音乐等)
- 手动实现动态换肤框架(字体、状态栏、自定义空间、fragment)
- 编译式换肤详解(高德地图、今日头条)
- 定制高扩展性换肤框架、多种动态皮肤加载与替换
组件化
- 主流实现方式分析
- Android项目组件化配置
- 手写集中式路由管理(ARouter)
- 组件化打包发布
插件化
- 主流几种插件化实现方式
- 手动实现插件化架构(RePlugin)
- activity启动流程及hook
- 插件化架构设计、稳定性
- 广播插件化实现、apk安装原理
- Android系统启动时加载app中so库流程
- 手写宿主管理插件系统架构(360插件式)
- Android9.0插件化解决@hide修饰的api问题
- 手写dlsym完成对libart.so解析
- IDA工具反编译so,寻找hook点
- hook虚拟机类加载器
事件总线框架
- EventBus源码与架构分析
- 手写事件总线实现(跨进城)
- 饿了么进程通信框架Hermes分析
- fastjson实现对象在多进程共享
数据库框架设计
- ORMLite核心架构分析
- 面向对象式数据库架构设计
- 实现数据库分库(多群组、多用户、多权限)如QQ
- xml脚本打造数据库全量升级
网络请求框架实现
- 网络层分析和TCP/IP详解
- okhttp源码分析和架构揭秘
- http与https分析
- okhttp任务队列架构设计
- socket连接池复用机制详解
- 拦截器责任链模式实现重连、源码分析、协议解析等
- 手动实现完整网络请求框架
图片加载框架实现
- Glide源码分析和设计思维(生命周期、缓存设计)
- 建造者模式链式调用
- 请求队列、转发、加载器、加载策略、缓存策略实现
- LruCache和DiskLruCache源码分析
- 手动实现完整图片加载框架
Rxjava
- rxjava架构分析和源码分析
- 高阶泛型和泛型变换
- 链式调度、事件变换、线程切换、订阅模式实现
IOC框架设计
- ButterKnife源码分析
- Java文件结构化文本详解
- Dragger2源码分析和原理实现
- APT注解手动实现依赖注入式框架
- 手写依赖注入框架,component实现依赖者与被依赖对象绑定
其他
- 手动实现编译时期Android动态权限申请框架
- 动态代理机制实际运用(retrofit)
性能优化
基础
- app启动原理,冷启动、热启动,启动时间检测
- app启动白屏优化
- Doze与Studby模式介绍与兼容和Job Scheduler源码详解
- AsyncTask源码详解、ThreadPool线程池原理
- Handler机制
内存泄漏分析
- 原因和如何避免
- 布局渲染流程和原理
- 过度渲染分析和优化(Lint、MAT、TraceView等工具)
- LeakCanary 源码分析以及内存泄漏检测原理
- 内存管理机制(gc回收机制原理)
- 后台服务优化
- 如何保障服务的常驻内存
- 双进程守护
- 多线程并发的性能问题
- 阻塞式队列详解
- 锁机制原理分析与竞争锁
- 原子锁、对象锁以及NIO、BIO区别和应用
- 微信的哈夫曼算法打造的无损压缩技术
- 解决微博长图、大图加载的问题
- webp详解和应用
- Android系统耗电优化
- apk文件优化
- Protocol Buffer数据交换格式
- Protocol Buffer二进制序列化与反序列化
- 文件压缩与解压--7zip库的移植和使用
- 冗余代码分析和apk极限压缩
- 防反编译和加固技术的实际操作应用
应用安全
- dex文件编译原理
- 混淆详解(在app生成时流程以及mutlidex原理)
- https防抓包机制(拒绝hook)
- Dex加密与反编译(app加固)
- 数据传输加密(服务端与客户端双向加密校验)
欢迎大家加入Android集中营,一起探讨技术:601924443