面霸养成记;50W字Android面试文档致敬2022摸爬滚打的一年
Posted 初一十五啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面霸养成记;50W字Android面试文档致敬2022摸爬滚打的一年相关的知识,希望对你有一定的参考价值。
前言
“抗寒”,2022专有词…任正非大佬都说了要把寒气传给每一个人,确实22年过得很艰辛,摸爬滚打,总算是安定下来了。
回头想想,抽空吧面试过程中被问到的问题和平时看的文档整理分享出来,希望能给面试的小伙伴一点借鉴。
一丶面霸养成记
1.百度面试问什么?
- 关于
okhttp
和Retrofit
view
的绘制流程- 触摸的传递机制
- 自定义
view
主要重写哪个方法 - 讲一下策略模式和状态模式的各自的特点和区别
- 说一下线程安全,线程同步的原子性,可见性和有序性
- 讲一下双重检查锁中的
volatile
关键字的作用 - 讲一下
jvm
的堆栈 - 二叉树的层次遍历
- 自定义
Navigator
切换fragment
Navigation
使用和源码剖析volatile
的作用
2.阿里面试问什么?
android
插件化.Hook
插件化框架 (Hook Activity
启动流程 |Hook
点分析Android
中Handler
处理Runnable
任务的常见方法- 讲讲对
Handler
的认识 - 求二叉树中两个节点之间的最大距离。
- 谈谈对
Binder
的认识 - 动态代理实现
ASM
的原理- 内存泄漏常见场景以及解决方案
touch
事件源码问题。Android
自定义崩溃收集器捕获java
层和native
层崩溃异常- 如果 int 的值大于了 3 需要提示
- 介绍下
flutter
的启动流程 - 介绍下
flutter
与weex
的区别 - 组件化介绍一下
webview
与js
交互的实现方法- 介绍下
flutter_boost
的原理
3.腾讯面试问什么?
- 讲一下
MVVM, MVP,MVC
LiveData
在项目里的实践是怎样的,遇到了什么问题;有没有想过怎么去解决LiveData
膨胀的问题Handler
,messageQueue
懂多少说多少,越详细越好View
绘制的三个流程;onMeasure
中的measureSpec
,wrapContent
为什么会失效- 内存泄漏是怎么避免的?
LeakCanary
原理是什么,没看过源码的话现在想一下该怎么实现 - 项目里的
webView
是如何优化加载速度的的 RecyclerView
和ScrollView
为什么不能一起使用- 线程池用过吗,工作组件有哪些,
OkHttp
用的是什么线程池,为什么要用 synchronized
锁升级的过程,为什么要设计这个锁升级HashMap
的实现,如果要自己实现多线程安全的HashMap怎么操作- 如果我想要自定义个任务有优先级的线程池,应该从哪些方面入手
- 为啥打开一个
app
以后默认会显示白屏吗,为啥不是黑屏呢? - 进程间通信方式有哪些,
Binder
讲一下,和共享内存的区别是什么 - 动态代理和静态代理
- 数据结构和23种设计模式
RecyclerView
的性能优化怎么实践- 堆排序实现
4.京东面试问什么?
Activity
相关(生命周期、启动模式)service
的意义Handler
内存泄漏相关OKhttp
源码相关- 手写
Singletion
5.字节面试问什么?
- 弱引用与软引用,
HashMap
的各个版本差异 - 什么是线程安全,如何实现线程安全 .常用的线程池种类,为什么要这么设计
- 单例常见的实现方式
DCL
为什么要加两层判断ReentrantLock
如何实现公平锁的- 线程池里面非核心线程什么时候会被回收
handler
机制,AsyncTask
原理,Activity
窗口层级,binder
机制,Activity
的启动流程,mmap
,Intent
传输数据的限制,ANR
原理,RxJava
线程池的使用注意问题,OKHTTP
拦截器Activity
的启动流程OKhttp
,Retrofit
- 布局优化,内存优化,网络优化,apk瘦身
kotlin
,- 常用设计模式,
MVC,MVVM,MVP
main
方法执行之前发生了什么
6.Bilibili面试问什么?
- 启动
Activity
的方法 intent
可以传递的数据Activity
和Fragment
的关系,生命周期,如何传递数据- 项目用到了
ViewModel
,说说看他的原理,为什么Fragment
可以获取到Activity
的ViewModel
- 你说到了内存泄露,有用过别的内存检查的工具吗,什么时候会发生内存泄露
- 说说进程和线程的理解
- 请说说看
mvp
和mvvm
模式有什么区别吗 JVM
的内存结构是怎样的,哪个地方不会出现内存泄露App
的启动流程- 对
Handler
的理解,handler
的内存泄露了解吗
7.网易面试问什么?
- 线程进程
IPC
HashMap
- 创建线程三种方式
- 锁、
volatile
- 动态代理
http
相关(https、响应码、请求方式)Handler
Binder
view
绘制
8.小米面试问什么?
Android
启动模式- 不同启动模式活动跳转的生命周期
handler
机制- 一个线程中几个
handler
同时发送一个相同的消息,怎么分辨哪个消息是哪个handler
发送的 Android
服务的生命周期Android
持久化存储的方式Android
广播的分类和使用场景- 自定义
view
三个方法,每个方法都要覆写吗 java
怎么使得一个同步方法变为异步方法synchnoized
作用java
抽象类和接口的区别- 抽象类的方法一定要继承吗
9.携程面试问什么?
Glide
讲一讲。你为什么选择glide
Glide
三级缓存Glide
怎么加载图片进Imageview
的OKhttp
拦截器get
和post
请求区别- 项目里面内存优化
LeakCanary
-Bitmap
高效缓存- 项目中启动优化
- 渲染布局优化
ViewStub
懒加载MVP
和MVVM
,谈谈你对它们的了解- 设计模式项目里边有用过哪些
HTTPS
通信- JVM内存模型
- 怎么保证线程安全
- 垃圾回收
gc
讲一讲
10.小红书面试问什么?
Java
深拷贝和浅拷贝的区别- 自定义
View
是怎么绘制的?ViewGroup?
Handler
机制,TCP
和UDP
的区别
11.爱奇艺面试问什么?
Android
布局嵌套深有什么问题kotlin
协程HashMap
原理- 算法:手写快排
Activity
启动模式Activity A → B
的生命周期在这四种启动模式下的状态- 有序广播如何实现的按顺序收到广播
SharedPreferences
的格式xml
解析方式json
与xml
的区别,json
为什么比xml
更好Android view
绘制流程surfaceView
- 机型大小适配
ANR
什么时候出现,如何排查Android
动画startService
与bindService
的区别Service
保活方式java
泛型- 重写
equals
方法需要重写hashCode
方法吗
二丶音视频面霸养成记
获取参考答案:
音视频真的是太吃香了?60道音视频经典面试题
看音视频从零到一到精通之前结合上面的60道经典音视频面试全面掌握(答案已经整理出)
1.从零到一:音视频初级开发
1.通过三种方式绘制图片.
2.使用 AudioRecord
采集音频PCM
并保存到文件.
3.使用 AudioTrack
播放PCM
音频.
4.使用 Camera API
采集视频数据.
5.使用 MediaExtractor
和 MediaMuxer API
解析和封装 mp4 文件
6.MediaCodec API
详解
7.音视频如何录制?
2.从一到熟悉:音视频中级开发
1.OpenGL ES
环境搭建,定义.绘制形状
2.OpenGL ES
使用投影和相机视图
3.OpenGL ES
添加运动效果
4.OpenGL ES
响应触摸事件
5.OpenGL ES
着色器语言GL
SL
6.OpenGL ES
纹理贴图
7.通过GLES20
与着色器交互
8.利用SoundTouch
实现PCM
音频的变速和变调
3.从熟悉到精通:音视频高级开发
1.MPEG-4/H.264 AVC
编解码标准
2.AAC
音频编码技术
3.流媒体协议:HLS
,RTMP
4.多媒体文件格式:MP4
,FLV
,M3U8
,TS
,PCM / WAV
5.查看媒体文件头信息工具ffprobe
6.:播放媒体文件的工具ffplay
7.媒体文件转换工具ffmpeg
8.FFmpeg
调整音视频播放速度
9.Mac
下安装FFmpeg
10.将 FFmpeg
移植到 Android平台
11.FFmpeg API
介绍与通用 API
分析
12.FFmpeg
编解码 API
分析及超时设置
13.FFmpeg
核心模块 libavformat
与 libavcodec
分析
14.AVFormatContext
,AVStream
,AVPacket
,AVFrame
, AVCodec
,AVCodecContext
,AVIOContext
分析
15.FFMPEG
中重要结构体之间的关系
16.FFmpeg
开发之 AVFilter
使用流程总结
17.FFmpeg
和NDK
在Centos7
上交叉编译
18.x264
和NDK
在Centos7
上交叉编译
19.faac
和NDK
在Centos7
上交叉编译
20.Webrtc
音视频通话
三丶Android面霸养成记
1.性能优化
启动优化、内存优化、启动优化速度、卡顿优化、布局优化、崩溃优化、应用启动全流程(源码深度解析)等内容.
2.Framework
Framework源码面试六部曲:1.activity启动流程
Framework源码面试六部曲:2.Binder通信机制
Framework源码面试六部曲:3.Handler面试集合
Framework源码面试六部曲:4.事件传递机制
Framework源码面试六部曲:5.onMeasure测量原理
Framework源码面试六部曲:6.Android屏幕刷新机制
Framework
通信、Framework
底层服务、Framework
事件机制等内容.
4丶Compose
5.Android资深架构师
Arraylist
,Okhttp
,Retrofit
,图片加载,Dagger 2
,MVC
.MVP
.MVVM
,Jetpack Room
6.Android车载工程师
涉及:Android Auto
,汽车媒体应用,构建Android Auto
即时通信应用,构建车载导航和地图注点应用,构建Android Automotive OS
视频应用,测试Android
车载应用,分发Android
汽车应用,适用于汽车的Google Play
服务,Android Automotive OS
的通知.
视频:
比亚迪车载DiLink系统:Framework需求和源码实战车载APP主题切换
7.Flutter高级工程师
Dart
语法,Flutter
动画丶组件丶网络请求以及Flutter3.0
简介。
配合最全的 整套50W字Android体系文档 内容,让学习更贴近未来实战
以上是关于面霸养成记;50W字Android面试文档致敬2022摸爬滚打的一年的主要内容,如果未能解决你的问题,请参考以下文章
面霸养成记;50万字2022最新Android11位大厂面试专题