最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

【Android

互联网 admin 51浏览 0评论

【Android

前言

如今,Android 开发岗的就业形势逐渐严峻,不像前几年那么热门,但是高级人才依然紧缺。想要在众多面试者中脱颖而出,拿下大厂 offer,就必须全面梳理知识点,扩充题库,并针对面试中可能遇到的关键知识,进行深入分析。

本文是专为 Android 高级工程师准备的面试题及答案帮助大家顺利进阶高级工程师。

一、Activity 相关

1. 启动模式以及使用场景?

2. onNewIntent() 和 onConfigurationChanged()

3. onSaveInstanceState() 和 onRestoreInstanceState()

4. Activity 到底是如何启动的?

  • 启动模式以及使用场景
  • onSaveInstanceState以及onRestoreInstanceState使用
  • onConfigurationChanged使用以及问题解决
  • Activity 启动流程解析

二、Service 相关

1. 进程保活

2. Service 的运行线程(生命周期方法全部在主线程)

3. Service启动方式以及如何停止?

4. ServiceConnection里面的回调方法运行在哪个线程?

  • startService 和 bingService区别
  • 进程保活一般套路
  • 关于进程保活你需要知道的一切

三、 BroadcastReceiver 相关

1. 注册方式,优先级

2. 广播类型,区别

3. 广播的使用场景,原理

  • Android广播动态静态注册
  • 常见使用以及流程解析
  • 广播源码解析

四、Handler 相关

1. Handler Looper Message 关系是什么?

2. Messagequeue 的数据结构是什么?为什么要用这个数据结构?

3. 如何在子线程中创建 Handler?

4. Handler post 方法原理?

5. ThreadLocal 必备

  • Android消息机制的原理及源码解析
  • Handler 都没搞懂,拿什么去跳槽啊?
  • Android Handler 消息机制(解惑篇)
  • Android 消息机制
  • Android的消息机制之ThreadLocal的工作原理

五、Fragment 相关

1. Fragment 生命周期和 Activity 对比?

2. Fragment 之间如何进行通信

3. Fragment 的 startActivityForResult

4. Fragment 重叠问题

  • Fragment 初探
  • Fragment 重叠, 如何通信
  • Fragment生命周期

六、Android 布局优化之 viewStub、include、merge

1. 什么情况下使用 ViewStub、include、merge?

2. 他们的原理是什么?

  • ViewStub、include、merge概念解析
  • Android布局优化之ViewStub、include、merge使用与源码分析

七、AsyncTask 相关

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

2. AsyncTask 随着安卓版本的变迁?

  • AsyncTask 完全解析
  • 串行还是并行

八、Android 事件分发机制

1. onTouch 和 onTouchEvent 区别,调用顺序?

2. dispatchTouchEvent, onTouchEvent, onInterceptTouchEvent 方法顺序以及使用场景?

3. 滑动冲突,如何解决?

  • 事件分发机制
  • 事件分发解析
  • dispatchTouchEvent, onTouchEvent, onInterceptTouchEvent方法的使用场景解析

九、Android View 绘制流程

1. 简述 View 绘制流程?

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

3. 如何进行自定义 View

4. view 重绘机制

  • Android LayoutInflater原理分析,带你一步步深入了解View(一)
  • Android视图状态及重绘流程分析,带你一步步深入了解View(二)
  • Android视图状态及重绘流程分析,带你一步步深入了解View(三)
  • Android自定义View的实现方法,带你一步步深入了解View(四)

十、Android Window、Activity、DecorView 以及 ViewRoot

  • Window、Activity、DecorView 以及 ViewRoot 之间的关系

十一、 Android 的核心 Binder 多进程 AIDL

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

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

3. 多进程带来的问题?

  • AIDL 使用浅析
  • binder 原理解析
  • binder 最底层解析
  • 多进程通信方式以及带来的问题
  • 多进程通信方式对比

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

1. AMS,WMS,PMS 创建过程

  • AMS,WMS,PMS全解析
  • AMS启动流程
  • WindowManagerService启动过程解析
  • PMS 启动流程解析

十三、Android ANR

1. 为什么会发生 ANR?

2. 如何定位 ANR?

3. 如何避免 ANR?

  • 什么是 ANR
  • 如何避免以及分析方法
  • Android 性能优化之 ANR 详解

十四、Android 内存相关

1. 什么情况下会内存泄漏?

2. 如何防止内存泄漏?

  • 内存泄漏和溢出的区别
  • OOM 概念以及安卓内存管理机制
  • 内存泄漏的可能性
  • 防止内存泄漏的方法

十五、Android 屏幕适配

1. 屏幕适配相关名词解析

2. 现在流行的屏幕适配方式

  • 屏幕适配名词以及概念解析
  • 今日头条技术适配方案

十六、Android 缓存机制

1. LruCache 使用极其原理

  • Android缓存机制
  • LruCache使用极其原理述

十七、Android 性能优化

1. 如何进行 内存 cpu 耗电 的定位以及优化

2. 性能优化经常使用的方法

3. 如何避免 UI 卡顿

  • 性能优化全解析,工具使用
  • 性能优化最佳实践
  • 知乎高赞文章

十八、MVC、MVP、MVVM

  • 设计模式选择

十九、Android Gradle 知识

这两篇官方文章

  • 必须贴一下官方文档:配置构建
  • Gradle 提示与诀窍

Gradle插件 了解就好

  • Gradle 自定义插件方式

  • 全面理解Gradle - 执行时序

  • Gradle系列一

  • Gradle系列二

  • Gradle系列三

二十、RxJava

使用过程,特点,原理解析

  • RxJava 名词以及如何使用
  • Rxjava 观察者模式原理解析
  • Rxjava订阅流程,线程切换,源码分析 系列

二十一、OKHTTP 和 Retrofit

  • OKHTTP完整解析
  • Retrofit使用流程,机制详解
  • 从 HTTP 到 Retrofit
  • Retrofit是如何工作的

二十二、最流行图片加载库: Glide

郭神系列 Glide 分析

  • Android图片加载框架最全解析(一),Glide的基本用法
  • Android图片加载框架最全解析(二),从源码的角度理解Glide的执行流程
  • Android图片加载框架最全解析(三),深入探究Glide的缓存机制
  • Android图片加载框架最全解析(四),玩转Glide的回调与监听
  • Android图片加载框架最全解析(五),Glide强大的图片变换功能
  • Android图片加载框架最全解析(六),探究Glide的自定义模块功能
  • Android图片加载框架最全解析(七),实现带进度的Glide图片加载功能
  • Android图片加载框架最全解析(八),带你全面了解Glide 4的用法

二十三、Android 组件化与插件化

1. 为什么要用组件化?

2. 组件之间如何通信?

3. 组件之间如何跳转?

  • Android 插件化和热修复知识梳理

  • 为什么要用组件化

  • 1、Android彻底组件化方案实践

  • 2、Android彻底组件化demo发布

  • 3、Android彻底组件化-代码和资源隔离

  • 4、Android彻底组件化—UI跳转升级改造

  • 5、Android彻底组件化—如何使用Arouter

  • 插件化框架历史

  • 深入理解Android插件化技术

  • Android 插件化和热修复知识梳理

二十四、Flutter 与 RN

  • Flutter原理
  • Flutter KO React Native? 让时间去决定吧…
  • 如何评价 React Native?

二十五、面试常问的点

除了上面整理的安卓高级技术问题,还有一些面试官喜欢问的点,大家针对准备回答:

  • 你在项目中遇到最难得点是什么?如何解决的?
  • 平时遇到问题了是如何解决的?比较好的回答: 官方文档一定要看,通过源码解决问题,然后才是搜索引擎以及和同事讨论
  • 你最近做的 APP 是如何架构的?为什么要这样架构?
  • 平时怎么进行技术进阶,如何学习?
  • 你觉得自己处于什么技术水平?
  • 你的技术优势是什么?
  • 用过什么开源技术?它的原理是什么?看过它的源码么? 这里建议看上面 Glide 相关
  • 如何设计一个框架?能不能回答上直接判断你的技术等级

【Android

前言

如今,Android 开发岗的就业形势逐渐严峻,不像前几年那么热门,但是高级人才依然紧缺。想要在众多面试者中脱颖而出,拿下大厂 offer,就必须全面梳理知识点,扩充题库,并针对面试中可能遇到的关键知识,进行深入分析。

本文是专为 Android 高级工程师准备的面试题及答案帮助大家顺利进阶高级工程师。

一、Activity 相关

1. 启动模式以及使用场景?

2. onNewIntent() 和 onConfigurationChanged()

3. onSaveInstanceState() 和 onRestoreInstanceState()

4. Activity 到底是如何启动的?

  • 启动模式以及使用场景
  • onSaveInstanceState以及onRestoreInstanceState使用
  • onConfigurationChanged使用以及问题解决
  • Activity 启动流程解析

二、Service 相关

1. 进程保活

2. Service 的运行线程(生命周期方法全部在主线程)

3. Service启动方式以及如何停止?

4. ServiceConnection里面的回调方法运行在哪个线程?

  • startService 和 bingService区别
  • 进程保活一般套路
  • 关于进程保活你需要知道的一切

三、 BroadcastReceiver 相关

1. 注册方式,优先级

2. 广播类型,区别

3. 广播的使用场景,原理

  • Android广播动态静态注册
  • 常见使用以及流程解析
  • 广播源码解析

四、Handler 相关

1. Handler Looper Message 关系是什么?

2. Messagequeue 的数据结构是什么?为什么要用这个数据结构?

3. 如何在子线程中创建 Handler?

4. Handler post 方法原理?

5. ThreadLocal 必备

  • Android消息机制的原理及源码解析
  • Handler 都没搞懂,拿什么去跳槽啊?
  • Android Handler 消息机制(解惑篇)
  • Android 消息机制
  • Android的消息机制之ThreadLocal的工作原理

五、Fragment 相关

1. Fragment 生命周期和 Activity 对比?

2. Fragment 之间如何进行通信

3. Fragment 的 startActivityForResult

4. Fragment 重叠问题

  • Fragment 初探
  • Fragment 重叠, 如何通信
  • Fragment生命周期

六、Android 布局优化之 viewStub、include、merge

1. 什么情况下使用 ViewStub、include、merge?

2. 他们的原理是什么?

  • ViewStub、include、merge概念解析
  • Android布局优化之ViewStub、include、merge使用与源码分析

七、AsyncTask 相关

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

2. AsyncTask 随着安卓版本的变迁?

  • AsyncTask 完全解析
  • 串行还是并行

八、Android 事件分发机制

1. onTouch 和 onTouchEvent 区别,调用顺序?

2. dispatchTouchEvent, onTouchEvent, onInterceptTouchEvent 方法顺序以及使用场景?

3. 滑动冲突,如何解决?

  • 事件分发机制
  • 事件分发解析
  • dispatchTouchEvent, onTouchEvent, onInterceptTouchEvent方法的使用场景解析

九、Android View 绘制流程

1. 简述 View 绘制流程?

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

3. 如何进行自定义 View

4. view 重绘机制

  • Android LayoutInflater原理分析,带你一步步深入了解View(一)
  • Android视图状态及重绘流程分析,带你一步步深入了解View(二)
  • Android视图状态及重绘流程分析,带你一步步深入了解View(三)
  • Android自定义View的实现方法,带你一步步深入了解View(四)

十、Android Window、Activity、DecorView 以及 ViewRoot

  • Window、Activity、DecorView 以及 ViewRoot 之间的关系

十一、 Android 的核心 Binder 多进程 AIDL

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

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

3. 多进程带来的问题?

  • AIDL 使用浅析
  • binder 原理解析
  • binder 最底层解析
  • 多进程通信方式以及带来的问题
  • 多进程通信方式对比

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

1. AMS,WMS,PMS 创建过程

  • AMS,WMS,PMS全解析
  • AMS启动流程
  • WindowManagerService启动过程解析
  • PMS 启动流程解析

十三、Android ANR

1. 为什么会发生 ANR?

2. 如何定位 ANR?

3. 如何避免 ANR?

  • 什么是 ANR
  • 如何避免以及分析方法
  • Android 性能优化之 ANR 详解

十四、Android 内存相关

1. 什么情况下会内存泄漏?

2. 如何防止内存泄漏?

  • 内存泄漏和溢出的区别
  • OOM 概念以及安卓内存管理机制
  • 内存泄漏的可能性
  • 防止内存泄漏的方法

十五、Android 屏幕适配

1. 屏幕适配相关名词解析

2. 现在流行的屏幕适配方式

  • 屏幕适配名词以及概念解析
  • 今日头条技术适配方案

十六、Android 缓存机制

1. LruCache 使用极其原理

  • Android缓存机制
  • LruCache使用极其原理述

十七、Android 性能优化

1. 如何进行 内存 cpu 耗电 的定位以及优化

2. 性能优化经常使用的方法

3. 如何避免 UI 卡顿

  • 性能优化全解析,工具使用
  • 性能优化最佳实践
  • 知乎高赞文章

十八、MVC、MVP、MVVM

  • 设计模式选择

十九、Android Gradle 知识

这两篇官方文章

  • 必须贴一下官方文档:配置构建
  • Gradle 提示与诀窍

Gradle插件 了解就好

  • Gradle 自定义插件方式

  • 全面理解Gradle - 执行时序

  • Gradle系列一

  • Gradle系列二

  • Gradle系列三

二十、RxJava

使用过程,特点,原理解析

  • RxJava 名词以及如何使用
  • Rxjava 观察者模式原理解析
  • Rxjava订阅流程,线程切换,源码分析 系列

二十一、OKHTTP 和 Retrofit

  • OKHTTP完整解析
  • Retrofit使用流程,机制详解
  • 从 HTTP 到 Retrofit
  • Retrofit是如何工作的

二十二、最流行图片加载库: Glide

郭神系列 Glide 分析

  • Android图片加载框架最全解析(一),Glide的基本用法
  • Android图片加载框架最全解析(二),从源码的角度理解Glide的执行流程
  • Android图片加载框架最全解析(三),深入探究Glide的缓存机制
  • Android图片加载框架最全解析(四),玩转Glide的回调与监听
  • Android图片加载框架最全解析(五),Glide强大的图片变换功能
  • Android图片加载框架最全解析(六),探究Glide的自定义模块功能
  • Android图片加载框架最全解析(七),实现带进度的Glide图片加载功能
  • Android图片加载框架最全解析(八),带你全面了解Glide 4的用法

二十三、Android 组件化与插件化

1. 为什么要用组件化?

2. 组件之间如何通信?

3. 组件之间如何跳转?

  • Android 插件化和热修复知识梳理

  • 为什么要用组件化

  • 1、Android彻底组件化方案实践

  • 2、Android彻底组件化demo发布

  • 3、Android彻底组件化-代码和资源隔离

  • 4、Android彻底组件化—UI跳转升级改造

  • 5、Android彻底组件化—如何使用Arouter

  • 插件化框架历史

  • 深入理解Android插件化技术

  • Android 插件化和热修复知识梳理

二十四、Flutter 与 RN

  • Flutter原理
  • Flutter KO React Native? 让时间去决定吧…
  • 如何评价 React Native?

二十五、面试常问的点

除了上面整理的安卓高级技术问题,还有一些面试官喜欢问的点,大家针对准备回答:

  • 你在项目中遇到最难得点是什么?如何解决的?
  • 平时遇到问题了是如何解决的?比较好的回答: 官方文档一定要看,通过源码解决问题,然后才是搜索引擎以及和同事讨论
  • 你最近做的 APP 是如何架构的?为什么要这样架构?
  • 平时怎么进行技术进阶,如何学习?
  • 你觉得自己处于什么技术水平?
  • 你的技术优势是什么?
  • 用过什么开源技术?它的原理是什么?看过它的源码么? 这里建议看上面 Glide 相关
  • 如何设计一个框架?能不能回答上直接判断你的技术等级
发布评论

评论列表 (0)

  1. 暂无评论