📚 课程介绍
本课程由大厂资深面试官主讲,深入解析Android高级面试题,涵盖插件化、热修复、内存优化、Handler、Activity、JNI、并发编程、Java基础、架构设计、优化等多个方面,帮助学员全面备战Android高级面试。
📋 学习前提
1. Android基础(熟悉Android开发环境、基本组件和生命周期) 2. Java基础(掌握Java编程语言的基本语法和面向对象编程) 3. 算法与数据结构基础(了解常用算法和数据结构,如排序、查找、链表、树等)
📖 课程目录
第1章 课程介绍
1-1 课程导学
第2章 不变之法:面试居然就一个套路
2-1 如何准备面试?
2-2 如何准备简历?
第3章 不假思索:我精通 Java
3-1 Java 的 char 是两个字节,是怎么存 Utf-8 的字符的?
3-2 Java String 可以有多长?
3-3 Java 的匿名内部类有哪些限制?
3-4 怎样理解 Java 的方法分派?
3-5 Java 泛型的实现机制是怎样的?
3-6 Activity 的 onActivityResult 使用起来非常麻烦,为什么不设计成回调?
第4章 不可轻敌:我真的熟悉并发编程吗?
4-1 如何停止一个线程?
4-2 如何写出线程安全的程序?
4-3 ConcurrentHashMap 如何实现并发访问?
4-4 AtomicReference 和 AtomicReferenceFieldUpdater 有何区别?
4-5 如何在 Android 当中写出优雅的异步代码?
第5章 不求甚解:让我们挖一挖 JNI 编程的细节
5-1 CPU 架构适配需要注意哪些问题?
5-2 Java Native 方法与 Native 函数是怎么绑定的?
5-3 JNI 如何实现数据传递?
5-4 如何全局捕获 Native 异常?
5-5 只有 C、C++ 可以编写 JNI 的 Native 库吗?
第6章 不屑一顾:居然问我 Activity 这么“简单”的东西?
6-1 Activity 的启动流程是怎样的?
6-2 如何跨App启动 Activity?有哪些注意事项?
6-3 如何解决 Activity 参数传递的类型安全以及接口复杂的问题?
6-4 如何在代码的任意位置为当前 Activity 添加 View?
6-5 如何实现类似微信右滑返回的效果?
第7章 不以为然:我脸上写着我不会 Handler 吗?
7-1 Android 中为什么非 UI 线程不能更新 UI?
7-2 Handler 发送消息的 Delay 靠谱吗?
7-3 主线程的 Looper 为什么不会导致应用 ANR ?
7-4 如何自己实现一个简单的 Handler – Looper 框架?
第8章 不败之地:我当然做过内存优化
8-1 如何避免OOM的产生?
8-2 如何对图片进行缓存?
8-3 如何计算图片占用内存的大小?
第9章 不出所料:就知道你会问插件化和热修复
9-1 如何规避 Android P 对访问私有 API 的限制?
9-2 如何实现换肤功能?
9-3 VirtualApk 如何实现插件化?
9-4 Tinker 如何实现热修复?
第10章 不离不弃:我做事情一向追求极致
10-1 如何开展优化类的工作-1
10-2 如何开展优化类的工作-2
10-3 一个算法策略的优化Case
10-4 一个工程技术的优化 Case
第11章 不同凡响:拆解需求设计架构是我常做的事儿
11-1 如何解答系统设计类问题?-1
11-2 如何解答系统设计类问题?-2
11-3 如何设计一个短视频App
11-4 如何设计一个网络请求框架?
第12章 课程总结
12-1 课程总结
