写点什么

【干货】2021Android 高级开发面试宝典以及答案整理 1,透彻分析源码

用户头像
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、为什么安卓


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


要用 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、性能优化经常使用的方法

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
【干货】2021Android高级开发面试宝典以及答案整理1,透彻分析源码