这份Android高级开发面试题及答案整理,希望为你理清 Android 面试的主线思路,通过详解各大互联网公司的常见面试题,从面试的角度去展开介绍某一知识点,以及该知识点在项目中的使用,并在此过程中帮你梳理和建立 Android 开发的知识体系。

因此,无论是你短期内想提升 Android 内功实力,突破自己工作中的能力瓶颈,还是准备参加 Android 面试,都会在这份指导手册中有所收获。需要完整版的朋友,可以点击这里在我的公众号免费获取

一、Handler相关知识

  • 1、Handler Looper Message关系是什么?
  • 2、Messagequeue的数据结构是什么?为什么要用这个数据结构?
  • 3、如何在子线程中创建Handler?
  • 4、Handler post方法原理?
  • 5、Android消息机制的原理及源码解析
  • 6、Handler都没搞懂,拿什么去跳槽啊?
  • 7、Android Handler消息机制(解惑篇)
  • 8、Android 消息机制

二、Activity相关

  • 1、启动模式以及使用场景?
  • 2、Activity 四种启动模式常见使用场景
  • 3、启动模式在实际开发中小插曲
  • 4、Activity 中其他常见问题
  • 5、Activity异常生命周期与应用
  • 6、系统配置改变引起异常;
  • 7、系统回收引起异常
  • 8、Activity异常基础处理
  • 9、Activity到底是如何启动的
  • 10、zygote是什么?有什么作用?
  • 11、SystemServer是什么?有什么作用?它与zygote的关系是什么?
  • 12、ActivityManagerService是什么?什么时候初始化的?有什么作用?
  • 13Launcher是什么?什么时候启动的?
  • 14、Instrumentation是什么?和ActivityThread是什么关系?
  • 15、如何理解AMS和ActivityThread之间的Binder通信?
  • 16、AMS接收到客户端的请求之后,会如何开启一个Activity?

三.Fragment

  • 1、Fragment生命周期和Activity 对比
  • 2、Fragment之间如何进行通信
  • 3、Fragment的startActivityForResult
  • 4、Fragment重叠问题
  • 5、Android Fragment完全解析,关于碎片你所需知道的一切中
  • 6、Fragment重叠,如何通信
  • 7、Fragment回退栈管理
  • 8、Fragment与Activity通信
  • 9、Fragment重叠问题
  • 10、Fragment与ActionBar和Menultem
  • 11、没有布局的Fragment—保存大量数据
  • 12、DialogFragment的使用
  • 13、Fragment的startActivityForResult
  • 14、FragmentPagerAdapter与FragmentStatePagerAdapter的区
  • 15、Fragmenti间的数据传递
  • 16、Activity与Fragment生命周期探讨

四、Service相关

  1. 进程保活
  2. Service的运行线程(生命周期方法全部在主线程)
  3. Service启动方式以及如何停止
  4. ServiceConnection里面的回调方法运行在哪个线程?
  5. Android进程保活的一般套路
  • 如何查看进程了解进本信息
  • 进程划分
  • 内存阀值
  • 进程保活方案

6.关于Android进程保活,你所需要知道的一切

  • 保活手段
  • 黑色保活
  • 白色保活
  • 灰色保活
  • 唠叨的分割线
  • 进程回收机制

五、Android布局优化之ViewStub. inelude.merge

  1. 什么情况下使用ViewStub.include.merge?
  2. 他们的原理是什么?
  3. 布局优化神器include . merge. viewStub标签详解 include 标签使用
  • 定义要实现(抽取)的layout布局:
  • Activity的XML布局文件调用include标签
  • Activity中调用include标签layout中的子View merge 标签使用
  • merge 标签使用前后 y Hierarchy r Viewer 截图 ViewStub 标签
  • ViewStub标签Demo效果图:
  • ViewStub标签使用前后Hierarchy Viewer截图

4.Android布局优化之ViewStub.include. merge使用与源码分析

六、BroadcastReceiver 相关

  • 1、注册方式,优先级
  • 2、广播类型,区别
  • 3、广播的使用场景,原理
  • 4、Android广播Broadcast的两种注册方式静态和动态
  • 静态和动态注册方式
  • 插入BroadcastReceiver的两种常用类型
  • 默认广播下两种注册方式的比较
  • 在有序广播下两种注册方式比较
  • 接受打电话的广播,程序运行与结束时比较两种注册方式 (1)在未退出Activity时,拨打电话,Log如下: (2)在退出Activity时,拨打电话,Log如下(即便不解除注册,动态仍无法接受到广播): 5、Android四大组件:BroadcastReceiver史上最全面解析 6、安卓广播的底层实现原理

七、AsyncTask 相关

1、AsyncTask是串行还是并行执行?

2、AsyncTask随着安卓版本的变迁

3、Android AsyncTask完全解析,带你从源码的角度彻底理解

  • AsyncTask的基本用法
  • 分析AsyncTask的源码
  • 关于AsyncTask你所不知道的秘密

4、Android源码分析—带你认识不—样的AsyncTask

  • 使用AsyncTask的规则
  • AsyncTask到底是串行还是并行?源码分析
  • 让你的AsyncTask在3.0以上的系统中并行起来

八、Android 事件分发机制

1、onTouch和onTouchEvent区别,调用顺序

2、dispatchTouchEvent,onTouchEvent,onInterceptTouch

3、滑动冲突,如何解决

Android事件分发机制完全解析,带你从源码的角度彻底理解 Android ViewGroup事件分发机制 源码分析

  • viewGroup - dispatchTouchEvent - ACTION_DOWN
  • ViewGroup - dispatchTouchEvent - ACTION_MOVE
  • ViewGroup - dispatchTouchEvent - ACTION_Up 关于拦截
  • 如何拦截
  • 如何不被拦截

4、如果没有找到合适的子View

讲讲Android的事件分发机制 Activity 的事件分发机制

  • ViewGroup的事件分发机制
  • View 的事件分发机制
  • 再来看看onTouchEvent0

九、Android View 绘制流程

1、简述View绘制流程

2、onMeasure,onlayout,ondraw方法中需要注意的点

3、如何进行自定义View

4、view重绘机制

Android LayoutInflater原理分析,带你一步步深入了解View(一)

Android视图绘制流程完全解析,带你一步步深入了解View(二).

  • onMeasure0

  • onLayoutO

  • onDraw0 Android视图状态及重绘流程分析,带你一步步深入了解View(三)

  • 视图状态

  • 视图重绘 Android自定义View的实现方法,带你一步步深入了解View(四)

  • 自绘控件

  • 组合控件

  • 继承控件

十Android Window、Activity、DecorView 以及 ViewRoot

十一 Android 的核心 Binder 多进程 AIDL

1、常见的IPC 机制以及使用场景

2、为什么安卓要用binder进行跨进程传输

3、多进程带来的问题

4、Android aidl Binder框架浅析

  • AIDL的使用
  • 分析AIDL生成的代码
  • 不依赖AIDL实现程序间通讯

5、Android应用工程师的Binder l原理剖析

  • 为什么必须理解Binder ?
  • 为什么是 Binder ?
  • Linux下传统的进程间通信原理
  • Linux下的传统IPC通信原理
  • Binder跨进程通信原理
  • 动态内核可加载模块&&内存映射.
  • Binder IPC实现原理

6、Binder通信模型

  • Client/Server/ServiceManagerf驱动
  • Binder 通信过程
  • Binder通信中的代理模式
  • Binder的完整定义
  • 手动编码实现跨进程调用
  • 各Java类职责描述
  • 实现过程讲解

Android 进程间通信 (IPC ) 机制 Binder 简要介绍和学习计划

十二Android 高级必备 :AMS,WMS,PMS

  • 1、Android高级必备:AMS,WMS,PMS
  • 2、从Systemserver到AMS
  • 3、ActivityManagerService 创建过程
  • 4、将SystemServer进程可加到AMS中调度管理
  • 5、创建运行在SystemServer进程中Provider
  • 6、AMs systemReady过程
  • 7、升级相关处理:发送PRE_BOOT_COMPLETED广播
  • 8、收集已经启动的进程并杀死除过persistent进程
  • 9、系统准备好后回调传入的Runnable
  • 10、发送账户启动的广播,涉及多用户
  • 11、启动桌面Home Activity.
  • 12、Android解析ActivityManagerService
  • 13、AMS启动流程和AMS家族

十三、Android ANR

  • 1、为什么会发生ANR?
  • 2、如何定位ANR?
  • 3、如何避免ANR?
  • 4、ANR说明和原因·
  • 5、ANR分析办法
  • 6、造成ANR的原因及解决办法
  • 7、ANR源码分析
  • 8、Service造成的Service Timeout
  • 9、BroadcastReceiver造成的BroadcastQueue Timeout
  • 10、ContentProvider的ContentProvider Timeout
  • 11、Android ANR的信息收集

十四、Android 内存相关

  • 1、什么情况下会内存泄漏?
  • 2、如何防止内存泄漏? ###十五、Android 屏幕适配
  • 1、屏幕适配相关名词解析
  • 2、现在流行的屏幕适配方式 ###十六、Android 缓存机制
  • LruCache 使用及其原理

十七、性能优化

  • 1、如何进行内存cpu耗电的定位以及优化
  • 2、性能优化经常使用的方法
  • 3、如何避免U卡顿

十八、Android MVC、MVP、MVVM

MVC

  • 1、MVC眼花缭乱设计图
  • 2、MVC设计图解释
  • 3、MVC三层之间的关系
  • 4、MVC sample
  • 5、MVC总结

MVP

  • 1、MVP说明
  • 2、MVP Sample
  • 3、MVP总结

MVVM

  • 1、MVVM说明
  • 2、MVVM与DataBinding的关系
  • 3、DataBinding简介
  • 4、MVVM Sample
  • 5、MVVM总结

十九、Android Gradle 知识

二十、RxJava

二十一、OKHTTP 和 Retrofit

二十二、Android 图片加载框架最全解析: Glide

  • 1、Glide的基本用法
  • 2、从源码的角度理解Glide 的执行流程
  • 3、深入探究,Glide 的缓存机制
  • 4、玩车专Glide的回调与监听
  • 5、Glide强犬的图片变换功能
  • 6、探究Glide的自定义模块功能
  • 7、文规带进度的Glide图片加载功能主
  • 8、带你全面了解Glide 4的用法

以上内容全都已打包整理好,需要完整版的朋友,可以点击这里在我的公众号免费获取