安卓面试经验 - 进阶篇
本文最后更新于:2025年3月9日 晚上
第四部分:Android进阶篇
20、序列化
- 序列化是什么? ⭐⭐⭐⭐
- 序列化的作用?什么时候需要序列化? ⭐⭐⭐⭐
- Android中序列化方式有几种?说说它们的区别。 ⭐⭐⭐⭐⭐
- Bunder传递对象为什么需要序列化? ⭐⭐⭐
21、JNI/NDK
- 什么是JNI?它主要用来干什么。 ⭐⭐⭐⭐⭐
- Java 声明的Native方法如何和Native层的Native函数进行绑定的?(也就是介绍两种注册方法) ⭐⭐⭐⭐⭐
- JNI如何实现数据传递? ⭐⭐⭐⭐
- 如何全局捕获Native发生的异常? ⭐⭐⭐
- JNIEnv与JavaVM的关系 ⭐⭐⭐⭐
- C和C++的JNIEnv的区别 ⭐⭐⭐
- JNI项目配置和数据映射 ⭐⭐
22、设计模式使用案例
- 说说设计模式的六大原则。 ⭐⭐⭐
- 请简要谈一谈单例模式? ⭐⭐⭐⭐⭐
- 请列出几种常见的工厂模式并说明它们的用法? ⭐⭐⭐⭐
- 静态代理和动态代理的区别,什么场景使用? ⭐⭐⭐⭐⭐
- 谈一谈责任链模式的使用场景? ⭐⭐⭐
- 请讲讲你会使用的一些设计模式? ⭐⭐⭐⭐
- 能否给我说说Android中至少3个用到设计模式的例子? ⭐⭐⭐⭐⭐
23、APK启动流程
- 你知道桌面点击应用图标到应用显示期间系统实现了什么流程吗? ⭐⭐⭐⭐
- 冷启动和热启动的区别 ⭐⭐
- 桌面点击启动APP和从另一个程序跳转过去有什么区别? ⭐
24、MVC、MVP、MVVM
- 说说你对MVC、MVP、MVVM的理解,他们有什么区别和联系,如何演变的? ⭐⭐⭐⭐⭐
- MVVM的优点和缺点 ⭐⭐⭐⭐
- 为什么Activity旋转屏幕后ViewModel可以恢复数据 ⭐⭐
- ViewModel 的实例缓存到哪儿了 ⭐⭐
- 什么时候 ViewModel#onCleared() 会被调用 ⭐⭐
25、缓存机制
- 你了解Android中的缓存机制吗? ⭐⭐⭐⭐
- LruCache的源码看过吗? ⭐⭐⭐
- 还有用过哪些缓存工具? ⭐⭐⭐⭐
26、APK打包流程和反编译
- 请讲述一下APK打包的流程? ⭐⭐⭐⭐
- 使用过哪些反编译的工具? ⭐⭐⭐
27、注解
- 你是否了解注解? ⭐⭐⭐⭐⭐
- 你知道元注解吗? ⭐⭐⭐
- 知道如何使用自定义注解吗?有哪些实现方法? ⭐⭐⭐⭐
- 具体说一下编译时注解的实现思路 ⭐⭐⭐⭐
- 如何使用注解代替枚举? ⭐⭐⭐
- 你知道哪些常用的注解? ⭐⭐⭐⭐
安卓面试经验 - 进阶篇
https://yorick-ryu.github.io/Android/android-interview-advanced/