2021年Android面经分享,面试总结
Posted m0_56037919
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021年Android面经分享,面试总结相关的知识,希望对你有一定的参考价值。
曾听过很多人说android学习很简单,做个App就上手了,工作机会多,毕业后也比较容易找工作。这种观点可能是很多Android开发者最开始入行的原因之一。
在工作初期,工作主要是按照业务需求实现App页面的功能,按照设计师的设计稿实现页面的效果。
在实现的过程中,总是会被提如下的需求:
这个字能不能大点或者醒目点儿?
感觉颜色和设计稿有差别,能不能再调调?
怎么老是崩溃啊,行不行啊?
…
所以,工作过一年后你会发现,自己的工作重点就是**将找各种各样的组件、框架,拖拖拽拽,改改样式。**在极端情况下出现了问题后(比如部分机型上崩溃,加载图片慢),也不知道该如何解决!都不好意思说自己是搞技术的。
一、java相关
java基础
1、java 中==和 equals 和 hashCode 的区别
2、int、char、long 各占多少字节数
3、int 与 integer 的区别
4、谈谈对 java 多态的理解
5、String、StringBuffer、StringBuilder 区别
6、什么是内部类?内部类的作用
7、抽象类和接口区别java高级
1、哪些情况下的对象会被垃圾回收机制处理掉?
2、讲一下常见编码方式?
3、utf-8 编码中的中文占几个字节;int 型几个字节?
4、静态代理和动态代理的区别,什么场景使用?
5、Java 的异常体系
6、谈谈你对解析与分派的认识。
7、修改对象 A 的 equals 方法的签名,那么使用 HashMap 存放这个对象 实例的时候,会调用哪个 equals 方法?
##二、图片相关
1、图片库对比
2、LRUCache 原理
3、图片加载原理
4、自己去实现图片库,怎么做?
5、Glide 源码解析
6、Glide 使用什么缓存?
7、Glide 内存缓存如何控制大小?
8.Fresco 源码分析
三、网络和安全机制
1.网络框架对比和源码分析
2.自己去设计网络请求框架,怎么做?
3.网络请求缓存处理,okhttp 如何处理网络缓存的
4.从网络加载一个 10M 的图片,说下注意事项
5.TCP 的 3 次握手和四次挥手
6.TCP 与 UDP 的区别
7.TCP 与 UDP 的应用
8.HTTP 协议
四、数据库相关
1.Sqlite 升级,增加字段的语句
2.数据库框架对比和源码分析
3.数据库优化
4.数据库数据迁移问题
5.Sqlite 常见异常
五、插件化、模块化、组 件化、热修复、增量更新、Gradle
1.对热修复和插件化的理解
2.插件化原理分析
3.模块化实现(好处,原因)
4.热修复、插件化
5.项目组件化的理解
6.描述清楚点击 Android Studio 的 build 按钮后发 生了什么
六、架构设计与设计模式
1.谈谈你对 Android 设计模式的理解
2.MVC MVP MVVM 原理和区别
3.你所知道的设计模式有哪些?
4.项目中常用的设计模式
5.手写生产者/消费者模式
6.写出观察者模式的代码
7.适配器模式,装饰者模式,外观模式的异同?
8.谈谈对 RxJava 的理解
七、性能优化专题
1.启动 app 黑白屏优化
2.稳定——内存优化
3.流畅——卡顿优化
4.节省——耗电优化
5.安装包——APK 瘦身
6.冷启动与热启动
7.内存泄漏的场景和解决办法
- Bitmap 优化
9.webview 优化
八、Android Framework 相关
1、Android 系统架构
2、View 的事件分发机制?滑动冲突怎么解决?
3、View 的绘制流程?
4、跨进程通信。
5、Android 系统启动流程是什么?
6、说下四大组件的启动过程,四大组件的启动与销 毁的方式。
7、理解 Window 和 WindowManager。
8、大体说清一个应用程序安装到手机上时发生了什 么?
九、Android 优秀三方库源码
1.网络底层框架:OkHttp 实现原理
2.网络封装框架:Retrofifit 实现原理
3.响应式编程框架:RxJava 实现原理
4.图片加载框架:Glide 实现原理
5.事件总线框架:EventBus 实现原理
6.内存泄漏检测框架:LeakCanary 实现原理
7.依赖注入框架:ButterKnife 实现原理
8.依赖全局管理框架:Dagger2 实现原理
9.数据库框架:GreenDao 实现原理
最后
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。
这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司21年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
由于篇幅有限,这里以图片的形式给大家展示一小部分。
详细整理在GitHub可以见;
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)**
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
以上是关于2021年Android面经分享,面试总结的主要内容,如果未能解决你的问题,请参考以下文章
面经分享5年Android开发的求职之路,作为面试官的一点心得★★★★★