安卓面试经验 - 进阶篇

本文最后更新于: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/
作者
Yorick
发布于
2025年3月9日
许可协议