面向 Android 高级工程师的一份面试宝典 (持续更新)
yangkun19921001 2020-03-17 23:42 收藏
Blog
用于记录生活、学习、工作等内容。
面试
Flutter 系列
- Google 为什么以 Flutter 作为原生突破口
- Flutter (一) Dart 语言基础详解(变量、内置类型、函数、操作符、流程控制语句)
- Flutter (二) Dart 语言基础详解 (异常,类,Mixin, 泛型,库)
- Flutter (三) Dart 语言基础详解 (异步,生成器,隔离,元数据,注释)
- Flutter (四) 基础 Widgets、Material Components Widget 全面介绍
数据结构和算法系列
- 从零开始学数据结构和算法(一)冒泡与选择排序
- 从零开始学数据结构和算法(二)线性表的链式存储结构
- 从零开始学数据结构和算法(三)栈与栈的应用
- 从零开始学数据结构和算法(四)哈希表的思想和二叉树入门
- 从零开始学数据结构和算法(五) 分治法 (二分查找、快速排序、归并排序)
- 从零开始学数据结构和算法(六)二叉排序树
- 从零开始学数据结构和算法(七) huffman 树与 AVL 树
Java 源码分析
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推流、拉流
英语
待更新...
关于我
-
Email: yang1001yk@gmail.com
- 掘金
- GitHub