Android 面试题

660 阅读10分钟

摘抄的,但是原路径有点找不到了,不是原创,只用于面试记录

image.png

图片来源:raw.githubusercontent.com/feelschaoti…

另一张更简单一些的技术图谱:cloud.tencent.com/developer/a…

Java

Java 基础部分

Java 集合

Java 多线程

Java 虚拟机

Android 方面

Android 考察点比较纷杂,以下针对之前收录的面试题做一个大概的划分:

Android 四大组件相关

Android 异步任务和消息机制

Android UI 绘制相关

此类主要涵盖 Android 的 View 绘制过程、常见 UI 组件、自定义 View、动画等。

Android 性能调优相关

Android 中的 IPC

Android 系统 SDK 相关

综合技术

其他

翔叔的常用面试题

feelschaotic.gitbook.io/android-kno…

interview-q-a-1gdnkgkla15afdbe-1258598664.tcloudbaseapp.com/Android/

github.com/JsonChao/Aw…

以上内容绝大部分来源于GitHub搜Android Interview,选取最近更新的Repo

初级:

  1. Activity启动模式
  2. Service启动模式
  3. IntentService的作用
  4. ContentProvider的作用,是否支持多线程和多进程
  5. Broadcast的注册模式,生命周期,有序与无序那种可以中断广播
  6. AsyncTask的作用,不同Android版本下的区别,如何使用(包括有哪些方法,其中那个是异步方法)
  7. Handler机制
  8. Dialog的使用
  9. Activity的生命周期
  10. Fragment的生命周期
  11. Activity和Fragment如何通信
  12. View的绘制机制
  13. View的事件传播机制
  14. 如何监听手势
  15. ImageView设置图片显示有哪几种模式
  16. 本地存储方式
  17. SharedPreferences是否支持多进程,多线程

中级:

  1. Activity的任务亲和性

  2. Service如何创建为单独进程

  3. IntentService的实现原理

  4. LocalBroadcast的作用,实现原理,相对于Broadcast的优势在哪,劣势在哪

  5. Handler的缺点,会不会造成内存泄漏,有则如何解决

  6. Fragment与Activity的区别和联系

  7. Fragment如何缓存布局

  8. Fragment与ViewPager的搭配使用,有没有问题重叠问题,怎么解决

  9. 同时提供侧滑和上下滑动,如何解决事件传播问题

  10. 是否使用过Design包,有则:

    1. 嵌套滑动理解
    2. behavior的原理以及左右

高级:

  1. Activity的启动过程(Frameworkd层)
  2. Service创建为单独进程会有哪些问题
  3. 简述AIDL的构建过程
  4. IPC机制
  5. android多进程通信方式,内部原理
  6. App启动的入口在哪
  7. LRU缓存算法
  8. Bitmap的有哪几种压缩算法,有啥区别
  9. 图片在手机本地存储大小和在内存大小是否一致,为什么,Android默认像素一般占几个字节
  10. 若用过Volley网络框架,则询问其架构,如何使用,自带网络缓存判断过程
  11. 若用过okhttp3网络框架,则询问其架构,如何使用
  12. 若用过retrofit网络框架,则询问其架构,如何使用,如何通过反射构建网络通信对象
  13. 若用过Rxjava网络框架,则询问其优点,缺点,内部如何实现线程切换
  14. SharedPreference内部实现原理