拔刀金九银十:2020 年最新 BAT 大厂 Android 面试知识点,安卓开发入门到精通
异常情况下的生命周期
异常情况下的数据保存
各种情况下跳转到某个 Activity 时目标 Activity 及当前 Activity 的生命周期
Activity 的启动模式及应用场景
进程和应用生命周期
Service 相关
Service 的定义及作用
Service 两种启动方式 startService、 bindService 区别及生命周期
Service 绑定服务的三种实现方式,扩展 Binder 类、使用 Messenger、使用 AIDL
关于启动服务与绑定服务间的转换问题 先绑定服务后启动服务、先启动服务后绑定服务
服务 Service 与线程 Thread 的区别
Android 5.0 以上的隐式启动问题及其解决方案
如何保证服务不被杀死
IntentService 的使用及原理
BroadcastReceiver 相关
BroadcastReceiver 定义及作用、应用场景
BroadcastReceiver 的注册方式,静态方式、动态方式
BroadcastReceiver 注册与取消的时机
BroadcastReceiver 的不同类型,普通广播,系统广播、有序广播、粘性广播、应用类广播
Fragment 相关
Fragment 生命周期
Fragment 的懒加载
Fragment 之间的通信
FragmentPagerAdapter 与 FragmentStatePagerAdapter 的区别
为什么不建议直接通过使用 new Fragment 的方式传入数据
序列化相关
序列化与反序列化的定义及区别
Serializable 中 serialVersionUID 及 transient 关键字的作用
序列化:Parcelable 和 Serializable 差异
IPC 相关
在 Android 中什么样的情况下会使用多进程模式,如何开启多进程
Android 为什么采用 Binder 做为 IPC 机制
IPC 常用方式 使用 Bundle、使用文件共享、使用 Messenger、使用 AIDL、使用 ContentProvider、使用 Socket
AIDL 的语义
AIDL 如何创建
AIDL 生成 Java 文件详细分析
View 事件机制相关
View 的坐标体系
View 滑动的几种方式,使用 ScrollTo/ScrollBy、使用动画、改变布局参数
弹性滑动的原理及实现
View 的事件分发机制,点击事件的传递规则,事件分发的源码解读
处理滑动冲突的场景及解决方法
View 绘制相关
DecorView、Window、ViewRootImpl 等概念
MeasureSpec 概念
View 的工作流程,measure 过程、layout 过程、draw 过程
自定义 View 需要注意的事项
Activity、Window、View 三者之间的关系
View 动画相关
常用动画 View 动画(补间动画)、属性动画与帧动画
补间动画与属性动画区别
差值器和估值器理解
属性动画的工作原理
Handler 相关
Handler 机制之 ThreadLocal
Handler 机制之 Looper、Handler、消息队列如何理解
Handler 机制之 Message 的发送与取出
Handler 机制之 Message 及 Message 的回收机制
Handler 机制之循环消息队列的退出
Handler 机制之内存泄漏
Handler 机制之 IdleHandle 的理解及使用
AsyncTask 相关
AsyncTask 的使用和注意事项
AsyncTask 几个重要的方法 doInBackgound、onProgressUpdate、onPostExecute 等
AsyncTask 的工作原理及源码理解
Bitmap 压缩回收相关
Bitmap 所占内存
常用压缩图片方式
LruCache 原理
DiskLruCache 原理
LinkedHashMap 原理
ListView 与 RecyclerView 相关
ListView 的原理和复用机制
ListView 和 RecyclerView 的区别
数据存储相关
常用数据库框架 GreenDao,官方 Room
数据库数据迁移问题
GreenDao 中一对一,一对多,多对多关系
SharedPreferences 使用及源码,commit 与 apply()方法的区别
==========================================================================
OkHttp 相关
OkHttp 的优点
OkHttp 执行请求的整个流程
OkHttp 中的拦截器
OkHttp 中的同步请求与异步请求的理解及其源码
OkHttp 中涉及到的设计模式
OkHttp 底层网络请求实现,socket 还是 URLConnection
Retrofit 相关
Retrofit 执行请求的整个流程
Retrofit 中 ConverterFactory、CallAdapterFactory 的理解
Retrofit 中 CallAdapter 的适配器模式
RxJava 相关
RxJava 常用创建操作符 create、from、just、interval、range 等
RxJava 常用组合、合并操作符 combineLatest、join、merge、zip 等
RxJava 错误处理操作符 onErrorReturn、onErrorResumeNext、onExceptionResumeNext 等
RxJava 过滤操作符 filter、ofType、sample、take 等
Rxjava 背压相关理解
RxJava 实际开发中的使用:网络请求轮询、网络请求嵌套回调、从磁盘 / 内存缓存中 获取缓存数据等
Glide 相关
Glide 的执行流程
Glide 的缓存机制
Glide 图片转换
Glide 带进度的图片加载功能
Glide 内存、磁盘缓存,优先级使用
ButterKnife 相关
Java 注解相关 Annotation
Java 注解相关之 APT 工具
ButterKnife 注解框架原理
EventBus 相关
EventBus 原理,及索引类的使用
=======================================================================
性能优化:布局优化、绘制优化、线程优化等
ANR 异常:主线程执行了耗时操作,如 BroadcastReceiver(前台广播 10s,后台广播为 60s)、Service(前台 20s,后台 200s)没有处理完相关任务等
OOM 异常:内存溢出的原因
内存泄漏:内存泄露的几种场景,如单例模式引出的泄露、静态变量导致的泄露、属性动画导致的内存泄露等
==========================================================================
今日头条适配方式
宽高限定符适配方式
smallestWidth 适配
========================================================================
安卓签名的理解
Gradle 多渠道打包
========================================================================
MVC 架构设计模式面试问题讲解
MVP 架构设计模式面试问题讲解
MVVM 架构设计模式面试问题讲解
=============================================================
===============
Android 不同版本下的特性
广播在 7.0、8.0、9.0 下的适配
Android 6.0 权限下的适配
评论