春招遗憾败北,总结了 Android 面试集,十几道热门题 BAT 必问

前言

这是我春招在面试中学习并总结到的一些 Android 知识点,都是一些比较典型的、面试常常被问到的问题。如果你平时没有注意去总结的话,那么当你面试被问到的时候可能会是一脸懵圈,就算这个问题你知道怎么回事,但是你平时没有认真总结,你也可能会出现逻辑混乱的情况,从而错失工作机会。

有些知识点不经常使用就会忘记,但是面试还会问,对此,我也是深受其害,所以我决定将这些遇见的问题整理下来,分享出去,帮助更多的人,我们共同进步。

为了让大家更清晰地了解整份面试题包含的内容,我这里也直接整理了一份 Android 面试核心思维导图。如下图所示;

春招遗憾败北,总结了 Android 面试集,十几道热门题 BAT 必问_第1张图片

Android 面试核心思维导图

本文包含 Android 春招面试题50+、热门必刷面试题100+(附解析),由于面试题较多,建议大家收藏,细细解答。其PDF模板(附参考答案)会在文章中贴出,需要的朋友可以去文末获取;

春招遗憾败北,总结了 Android 面试集,十几道热门题 BAT 必问_第2张图片

一、 2021我的春招面经

腾讯某业务部门

一面

  • 自我介绍
  • Android 生命周期中 onStart 里面干了啥?
  • 介绍一下 Activity 的四种启动模式
  • android:style 和 android:theme 的区别
  • http 和 https 的区别,http 组成,http 请求的整个过程
  • 动画种类及其工作原理
  • 线程启动方式,线程池原理清楚不?
  • 讲讲 IntentService
  • 知道哪些 Jetpack 组件?挑一两个讲讲原理
  • 有哪些 ipc 方式
  • Sp 怎么支持跨进程?
  • Binder 原理流程介绍一下
  • window, view, activity 关系
  • 软硬件绘制区别,性能比较,具体绘制任务(如复杂动画)怎么选择?
  • 性能优化方式讲一讲
  • 查找算法有哪些?手写二分查找
  • 了解哪些跨平台方案?

二面

  • 抠实际项目,然后从中引出一些问题
  • SurfaceView, TextureView及View的区别。SurfaceView怎么控制它处于的层级
  • Binder工作流程
  • 介绍一下MVC,MVP,MVVM,你们项目用的是哪个?
  • 对组件化的理解,你们是怎么实现组件化的?功能模块之间互相引用会有什么问题?
  • 内存优化工具,LeakCanary和MAT的原理
  • JVM内存模型
  • Java同步机制有哪些,volatile和syncronized区别
  • HashMap和HashTable区别,ConcurrentHashMap分段加锁的原理
  • 二叉树的前中后遍历
  • 算法:判断一棵树是否是平衡二叉树
  • 算法题:给定一个链表L1、L2,每个元素是为10以内的正整数,链表表示一个数字,表头为高位。 求两个链表之差,以链表形式返回
  • Java和Kotlin的一些区别,Kotlin的缺点?
  • SurfaceView和TextureView的区别?
  • 了解过哪些插件化的实现?
  • 说说ARouter的原理
  • 两个业务组件模块之间,怎么实现相互调用接口?
  • 让你设计一个下载功能,实现多个大文件同时下载,考虑哪些(断点续传)?
  • 有没有音视频开发经验?
  • 怎么处理内存泄漏?强引用弱引用?LeakCanary原理说一下。

京东某金融部门

一面

  • 自我介绍
  • ViewPager2原理
  • LifeCycle的原理是怎样的?
  • ViewModel为什么在旋转屏幕后不会丢失状态
  • Drawable与View有什么区别,Drawable有哪些子类
  • 属性动画更新时会回调onDraw吗?
  • OkHttp网络拦截器,应用拦截器?OKHttp有哪些拦截器,分别起什么作用
  • 自定义实现一个九宫格如何实现
  • PathClassLoader与DexClassLoader有什么区别
  • 这些年有做一些什么比较难的工作?
  • 编译时注解与运行时注解,为什么retrofit要使用运行时注解?什么时候用运行时注解?
  • kotlin lazy使用,lazy viewmodel
  • 有没有看一下Google官方的ViewModel demo
  • ViewModel在Activity初始化与在Fragment中初始化,有什么区别?
  • kotlin与Java互相调用有什么问题?
  • retrofit怎么做post请求
  • 界面优化的一些方法,ConstraintLayout实现三等分,ConstraintLayout动画.
  • CoordinatorLayout自定义behavior,可以拦截什么?

二面

  • 你的项目中做过什么比较难的工作?
  • 视频播放,一个player怎么实现预加载,避免loading
  • webView加载本地图片,如何从安全方面考虑
  • http1.0,http1.1,http1.2有什么区别
  • https与http有什么区别
  • 有用过什么加密算法?AES,RAS什么原理?
  • android跨进程通信了解吗?共享内存用过吗?binder怎么验证pid?binder驱动了解吗?
  • SharedParence可以跨进程通信吗?如何改造成可以跨进程通信的.commit和apply的区别.
  • Seriazable与Parceable的区别
  • Bundle是什么数据结构?利用什么传递数据
  • Jvm的内存结构,Jvm的垃圾回收,方法区有什么东西?
  • h5与native交互,webView.loadUrl与webView.evaluateUrl区别

三面

  • 有没有做过什么WebView秒开的一些优化
  • 你们的项目中有什么难点?
  • native如何对h5进行鉴权,让某些页面可以调,某些页面不能调
  • 有看过哪些框架的源码吗?
  • viewModel是怎么实现双向数据绑定的?
  • viewModel怎么实现自动处理生命周期?
  • 图片加载优化有什么经验吗?
  • viewpager切换掉帧有什么处理经验?
  • 一个wrap_content的ImageView,加载远程图片,传什么参数裁剪比较好?
  • 两个getDrawable取得的对象,有什么区别?
  • 补间动画与属性动画的区别,哪个效率更高?
  • jsBridge实现方式
  • 平常是怎么了解一些新知识与业界动态的,最近有什么印象深刻的文章
  • 平常抓包用什么工具?
  • Mvp与Mvvm有什么区别?

春招遗憾败北,总结了 Android 面试集,十几道热门题 BAT 必问_第3张图片

 

春招遗憾败北,总结了 Android 面试集,十几道热门题 BAT 必问_第4张图片

 

二、 Android 热门必刷面试题(附答案解析)

1、什么是 ANR 如何避免它?
2、当横竖屏切换时候, Activity 的生命周期?
3、AsyncTask 的缺陷和问题,说说他的原理?
4、android 中进程的优先级?(BAT必问)
5、Bunder 传递对象为什么需要序列化?Serialzable 和 Parcelable 的区别?
6、APP保活的思路?(必问)
7、为什么属性动画移动后仍可点击?
8、Android 中有哪几种解析 xml 的类,官方推荐哪种?以及它们的原理和区别?
9、Android 为每个应用程序分配的内存大小是多少?
10、Thread、AsyncTask、IntentService 的使用场景与特点?
11、Activity 的 startActivity 和 context 的 startActivity 区别?
12、怎么在 Service 中创建 Dialog 对话框?
13、Android 怎么加速启动 Activity?
14、Handler 机制原理?(BAT必问)
15、Handler 引起的内存泄露原因以及最佳解决方案(BAT必问)
16、为什么我们能在主线程直接使用 Handler,而不需要创建 Looper ?(BAT必问)
17、创建 Message 实例的最佳方式是什么?
18、主线程的死循环一直运行是不是特别消耗 CPU 资源呢?
19、Handler postDelay 这个延迟是怎么实现的?
20、内存泄露,怎样查找,怎么产生的内存泄露?
21、如果App发生了异常情况,怎么快速止损?
22、启动优化是怎么做的?他的实现原理是什么?
23、版本迭代导致的启动变慢有好的解决方式吗?

春招遗憾败北,总结了 Android 面试集,十几道热门题 BAT 必问_第5张图片

 

春招遗憾败北,总结了 Android 面试集,十几道热门题 BAT 必问_第6张图片

 

更多面试知识点在文章内就不做展示了,不过 Android 热门必刷面试题(附答案解析)和我的春招总结面经是开源分享的,整理不易,有需要的朋友可以关注下后扫描下方二维码即可免费获取

纵观目前大环境来看,今年春招跳槽成功的难度比往年高很多。总结一下2021春招面试的感受:无论一面还是二面,都很真的考验 Android 程序员的技术功底!!如果你没有良好的技术作为支撑,很难在下一轮的秋招中拿到offer,所以我觉得未雨绸缪总是比临门一脚更容易“进球”。

你可能感兴趣的:(Android,程序人生,面试,android,春招)