面向 Android 高级工程师的一份面试宝典 (持续更新)

yangkun19921001 2020-03-17 23:42 收藏

Blog

用于记录生活、学习、工作等内容。

面试

  • Android 高级工程师面试宝典

Flutter 系列

  • Google 为什么以 Flutter 作为原生突破口
  • Flutter (一) Dart 语言基础详解(变量、内置类型、函数、操作符、流程控制语句)
  • Flutter (二) Dart 语言基础详解 (异常,类,Mixin, 泛型,库)
  • Flutter (三) Dart 语言基础详解 (异步,生成器,隔离,元数据,注释)
  • Flutter (四) 基础 Widgets、Material Components Widget 全面介绍

数据结构和算法系列

  • 从零开始学数据结构和算法(一)冒泡与选择排序
  • 从零开始学数据结构和算法(二)线性表的链式存储结构
  • 从零开始学数据结构和算法(三)栈与栈的应用
  • 从零开始学数据结构和算法(四)哈希表的思想和二叉树入门
  • 从零开始学数据结构和算法(五) 分治法 (二分查找、快速排序、归并排序)
  • 从零开始学数据结构和算法(六)二叉排序树
  • 从零开始学数据结构和算法(七) huffman 树与 AVL 树

Java 源码分析

  • 源码分析 (一) ArrayList JDK 1.8 源码分析
  • 源码分析 (二) LinkedList JDK 1.8 源码分析
  • 源码分析 (三) Stack 源码分析

Android 源码分析

  • 从 setContentView 入口,全方位分析 LayoutInflater
  • 分析广播 的 registerReceiver、sendBroadcast、 onReceive 系统到底做了什么?
  • Android 8.0 源码分析 (一) SystemServer 进程启动
  • Android 8.0 源码分析 (二) Launcher 启动
  • Android 8.0 源码分析 (三) 应用程序进程创建到应用程序启动的过程
  • Android 8.0 源码分析 (四) Activity 启动
  • Android 8.0 源码分析 (五) Service 启动
  • Android 8.0 源码分析 (六) BroadcastReceiver 启动
  • Android 8.0 源码分析 (七) ContentProvider 启动
  • Android 8.0 源码分析 (八) ActivityManagerService
  • Android 8.0 源码分析 (九) WindowManager
  • Android 8.0 源码分析 (十) WindowManagerService 的窗口管理

第三方流行框架源码分析

  • Android 图片加载框架 Glide 4.9.0 (一) 从源码的角度分析 Glide 执行流程
  • Android 图片加载框架 Glide 4.9.0 (二) 从源码的角度分析 Glide 缓存策略
  • 从源码的角度分析 Rxjava2 的基本执行流程、线程切换原理
  • 从源码的角度分析 OKHttp3 (一) 同步、异步执行流程
  • 从源码的角度分析 OKHttp3 (二) 拦截器的魅力
  • 从源码的角度分析 OKHttp3 (三) 缓存策略
  • 从源码的角度分析 Retrofit 网络请求,包含 RxJava + Retrofit + OKhttp 请求讲解

性能优化系列

  • 性能优化(一)APP 启动优化(不敢说秒开,但是最终优化完真不到 1s)
  • 性能优化(二) UI 绘制优化
  • 性能优化(三)看完这篇文章,至少解决 APP 中 90 % 的内存异常问题
  • 性能优化(四) ubuntu 完美编译 libjpeg 图像压缩库,媲美微信图片压缩算法
  • 性能优化 (五) 长图优化,仿微博加载长图方式
  • 性能优化 (六) 老板问你咱们 APP 耗电量,看完这篇文章不仅能知道还能做出对应优化。
  • 性能优化 (七) APK 加固之 Dex 加解密,反编译都看不到项目主要代码。
  • 性能优化 (八) APK 加固之动态替换 Application
  • 性能优化 (九) APP 稳定性之热修复原理探索
  • 性能优化 (十) APP 持续运行之进程保活实现
  • 性能优化 (十一) ProGuard 对代码和资源压缩
  • 性能优化 (十二) APK 极限压缩(资源越多,效果越显著)
  • 性能优化 (十三) 有了 breakpad , native 崩溃再也不怕了

移动架构师系列

  • 移动架构 (一) 架构第一步,学会画各种 UML 图。
  • 移动架构 (二) Android 中 Handler 架构分析,并实现自己简易版本 Handler 框架
  • 移动架构 (三) AMS 源码分析
  • 移动架构 (四) EventBus 3.1.1 源码分析及实现自己的轻量级 EventBus 框架,根据 TAG 发送接收事件。
  • 移动架构 (五) 仅仅对 Java Bean 的操作,就能完成对数据持久化。
  • 移动架构 (六) 轻量级进程间通信框架设计
  • 移动架构 (七) 人人都能看得懂的组件化框架模型
  • 移动架构 (八) 人人都能看得懂的动态化加载插件技术模型实现

设计模式

  • 通过代码示例来学习面向对象六大原则
  • 设计模式 (一) 通过理论 + 代码示例 + Android 源码中单例模式来学习单例
  • 设计模式 ( 二 ) 结合代码示例 + Android 源码中 Builder 来学习建造者模式
  • 设计模式 ( 三 ) 原型模式
  • 设计模式 ( 四 ) 工厂方法模式
  • 设计模式 (五) 抽象工厂模式
  • 设计模式 (六) 策略模式
  • 设计模式 (七) 状态模式
  • 设计模式 (八) 责任链模式
  • 设计模式 (九) 观察者模式
  • 设计模式 ( 十 ) 备忘录模式
  • 设计模式 (十一) 迭代器模式
  • 设计模式 (十二) 模板方法模式
  • 设计模式 (十三) 访问者模式
  • 设计模式 (十四) 中介者模式
  • 设计模式 (十五) 代理模式
  • 设计模式 (十六) 组合模式
  • 设计模式 (十七) 适配器、装饰、享元模式
  • 设计模式 (十八) 外观、桥接模式

高级 UI 系列

  • 高级 UI 成长之路 (一) View 的基础知识你必须知道
  • 高级 UI 成长之路 (二) 深入理解 Android 8.0 View 触摸事件分发机制
  • 高级 UI 成长之路 (三) 理解 View 工作原理并带你入自定义 View 门
  • 高级 UI 成长之路 (四) Paint 渲染/滤镜/xfermode 使用
  • 高级 UI 成长之路 (五) 看完该篇文章 Canvas 你应该会了
  • 高级 UI 成长之路 (六) PathMeasure 制作路径动画
  • 高级 UI 成长之路 (七) SVG 基础使用 + 绘制中国地图

音视频

  • 音视频之进程间传递 YUV 格式视频流,解决不能同时调用 Camera 问题
  • 音视频学习 (一) C 语言入门
  • 音视频学习 (二) C++ 语言入门
  • 音视频学习 (三) JNI 从入门到掌握
  • 音视频学习 (四) 交叉编译动态库、静态库的入门学习
  • 音视频学习 (五) Shell 脚本入门
  • 音视频学习 (六) FFmpeg 4.2.2 交叉编译
  • 音视频学习 (七) 掌握音频基础知识并使用 AudioTrack、OpenSL ES 渲染 PCM 数据
  • 音视频学习 (八) 掌握视频基础知识并使用 OpenGL ES 2.0 渲染 YUV 数据
  • 音视频学习 (九) 从 0 ~ 1 开发一款 Android 端播放器(支持多协议网络拉流/本地文件)
  • 音视频学习 (十) 基于 Nginx 搭建(rtmp、http)直播服务器
  • 音视频学习 (十一) Android 端实现 rtmp 推流

开源项目

  • 热修复 DexEncryptionDecryption
  • 图片压缩 LIBJPEG_SAMPLE
  • 进程保活 KeepAlive
  • Java/Native 异常捕获 YKCrash
  • 插件化 YKPluginAPK
  • YUV 播放 YUVPlay
  • 防微博长图加载 long_picture_view
  • 进程间通信 YKProBus
  • EventBus YEventBus
  • 进程间大数据传输 MemoryFileWriteBytesYUV
  • Kotlin GitHub App
  • Android rtmp推流、拉流

英语

待更新...

关于我

项目地址:https://github.com/yangkun19921001/Blog

你可能感兴趣的:(面向 Android 高级工程师的一份面试宝典 (持续更新))