做者:小石java
春节假期结束差很少有大半个月了,而我在这个时间段里面试了几家大小不一的公司,其中还有大厂。在这里我拿出跟你们简单的总结一下,但愿对你们有所帮助。git
首先 简历 是很重要的一个因素,面试过程当中的提到的问题,通常都是基于你的 简历 进行的。通常面试中的前几题不会很难,面试官会先从基础开始提问,从中考察你的知识体系的完备程度,接着会考察你的极限,最后还会考察一些软技能,好比你的学习能力、协做能力、沟通能力、分析解决未知问题的能力、抗压能力等。github
复习计划的制定和进度的把控也很重要,能够参考别人的学习计划去学习,再根据本身的实际状况去作适当的调整。面试
Android 面试知识点梳理,面试复习文档可直接去我 GitHub:https://github.com/733gh/Android-T3 参考学习。sql
一面 (技术面)数据库
1.自我介绍缓存
2.Handler是用来作啥的安全
3.每一个线程都能有本身的Handler吗markdown
4.Fragment和Activity之间传递数据网络
5.Activity加载Fragment的方式
6.add一个Fragment的时候已经有一个Fragment的话,对以前的Fragment的生命周期的影响
7.ActivityA启动ActivityB的生命周期回调
8.Activity的启动模式(分别用于什么场景)
9.onSaveInstance和onReStoreInstance做用
10.ViewModel怎么实现的
11.ViewModel是否是一直存在内存中(好比我开启了不少页面,或者ViewModel持有Bitmap这样的对象)
12.Android用过哪些布局
13.View的绘制会通过哪些(onMeasure,onLayout,onDrow)
14.让View从新绘制的方法(重绘时,onMeasure会调用几回)
15.onMeasure会执行几回
16.ConstraintLayout常常用到的属性
17.guaidline为何不会在布局上显示
18.事件分发机制
19.Android中线程挂了进程会崩溃吗?
20.RxJava用过了哪些操做符
二面(技术面)
1.自我介绍
2.问了一些项目里面的东西,聊聊是干啥的
3.为何要用MVVM
4.数据变动UI自动更新怎么实现的,用的DataBinding吗
5.什么是观察者模式,有什么好处
6.什么状况下用责任链模式?哪里遇到过?有什么好处?
7.怎么实现的责任链模式
8.为何okHttp里面用到责任链模式
9.用户能够自定义多个拦截器吗
10.有网状态下的缓存和无网状态下的缓存同样吗
11.缓存是本身作的仍是okhttp作的
12.能够手写一些sql吗
13.room是什么类型的数据库
14.room是怎么实现的,为何不要写sql呢
15.livedata粘性事件
16.jetpack还用过哪些
17.navigation用来作什么
18.TCP UDP区别
19.为何须要三次握手和四次挥手
三面 (非技术面) 略
一面
1.自我介绍+介绍项目
2.Activity生命周期,每一个回调方法的做用是什么?
3.事件的分发机制
4.内存泄漏
5.遇到过滑动冲突吗?滑动冲突的解决方法
6.如何进行单元测试,如何保证App稳定 ?
7.说一说Android中如何查看一个对象的回收状况 ?
8.Apk的大小如何压缩 ?
9.如何经过Gradle配置多渠道包?
10.插件化、组件化、热修复原理分析
二面
1.深挖项目
2.Activity 生命周期,A启动B两个状态分别是什么 ,A的onStop必定会执行吗?
3.surfaceView 和普通view的区别
4.Bitmap高效加载* 线程之间的通讯方式handler
5.内存泄漏
6.为何handler能够线程切换
7.Rxjava map关键字的做用是什么
8.怎么获取view的宽高,如何肯定值是准确的,说了view.post()补充viewTreeObserverOnGlobalLayoutListener
9.场景题:头条列表有多个不一样的card,使用RecyclerView怎么解耦getViewType,得到不一样的card 说了用个管理类映射,面试官说用注解、反射,依赖注入。
三面
1.项目深挖
2.ARouter路由原理
3.如何管理过多的路由表?
4.看视频的时候网络请求很慢怎么优化?
5.说说HTTP3.0有什么改进?
6.App上线后用户使用时卡顿怎么查看是什么缘由?
1.讲一下View的测绘流程
2.由View的绘制流程拓展到自定义View,讲若是你要自定义一个流式标签布局你会去设计哪些内容暴露给外界,以及会在上面提到的View的三个方法里作哪些相关的工做
3.讲一些Android手势事件处理
4.由上面的延伸,若是你要设计一个双击的监听listener,你会怎么设计
5.上面那个问题我讲了两种方案,选了其中一种详细讲了一下而后并在面试官的引导下做了相关的优化
6.讲一下你本身处理过的比较复杂的手势处理
7.若是让你本身作一个像ScrollView那样的View,你怎么设计
8.讲讲Android的消息机制
9.针对上面的机制,咱们可不能够利用它的特性来检测ANR,讲一下方案
10.讲讲死锁的发生条件以及如何避免死锁
11.讲讲jvm内存模型
12.讲讲Java的四种引用类型,何时会被回收,项目里怎么用的
13.讲讲UDP和TCP的区别
14.讲讲HTTPS和HTTP的区别
15.HTTPS能抓包吗,既然能抓包它为何还安全
16.讲讲activity的生命周期
17.讲讲activity异常状态下的生命周期有哪些
18.讲讲broadcastreceiver的应用场景
19.上面回答涉及到了应用内广播,我提了一句通常应用内广播的话如今都用EventBus之类的总线代替,而后问了一下懂不懂EventBus的实现原理,回答不懂而后问若是让你设计一个事件总线框架你会怎么设计,思路是什么
20.Service通常用来干什么,什么状况下用什么样的Service
有一块儿学习的小伙伴能够关注下个人公众号——❤️【程序猿百晓生】❤️ 每周会按期作技术分期。快加入和我一块儿学习吧!