【干货】2021Android 高级开发面试宝典以及答案整理 1,透彻分析源码
白色保活
灰色保活
唠叨的分割线
进程回收机制
五、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、性能优化经常使用的方法
评论