Android 高级开发的技术大纲

整理了一份 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

你可能感兴趣的:(Android 高级开发的技术大纲)