大厂Android面试,竟然还问这些问题!

在这里插入图片描述

前言

又到了金三银四的面试季,本身也不得不参与到这场战役中来,实际上是从去年末就开始看,android的好机会确实不太多,但也还好,3年+的android开发经历仍是有一些面试机会的,不过确实不像几年前门槛那么低了,总的体会就是小的创业公司比较注重你的项目经历是否和本身的贴合,直接能过来独当一面。大厂除了看中项目经历外,还比较注重你知识面的广度,是广度、深度和解决方案等多方面的考察,平时够工做要好好积累临时刷题只聊点皮毛估计是过不了关的。下面就总结一些遇到的题目,各类风格的都有。这里先列举问题。javascript

面试真题

各厂名字字母表示,本身猜。本题目整理不保证你会遇到相同的问题,根据岗位和面试官自己状况,问题可能差异很大,好比有作中间件的同窗被问到热修复的细节等等。整体说来阿里的面试是很正规的,从android基础到必定程度的理解总结性问题,而后回到java基础及原理,主要着重问简历上的,或从简历出发发散问题,问题会由表及里逐渐深刻,很考察对你负责的项目的理解和其中用到知识原理。由于是凭着记忆后记的,如下问题不分前后。这里按岗位来分类,能有个渐进的感受。java

因为文章篇幅有限,面试题答案领取方式:加入便可领取android

tb:电面一

  1. dp是什么,sp呢,有什么区别?git

  2. 自定义View,ViewGroup注意那些回调?github

  3. 界面卡顿的缘由以及解决方法?web

  4. android中的存储类型?面试

  5. service用过么,基本调用方法?算法

  6. Handler机制?数据库

  7. LinearLayout、FrameLayout、RelativeLayout性能对比,为何?canvas

  8. Activity的生命周期,finish调用后其余生命周期还会走么?

  9. FW层熟悉么,源码看过么?

  10. GC回收机制熟悉么,分代算法知道么?

  11. Java的类类加载原理?

  12. 内存泄漏如何排查,MAT分析方法以及原理,各类泄漏的缘由是什么好比?

  13. Handler为何会泄漏?

  14. gradle熟悉么,自动打包知道么?

  15. 介绍下先的app架构和通讯?

  16. 本身负责过哪些模块,跟同事相比本身的优点是什么?

  17. 遇到过什么印象深入的问题,怎么解决的?

现场面试:三场

First:

  1. 最近都作了哪些工做?
  2. 遇到了什么印象深入的问题。A:会顺着你介绍的项目问下具体实现。?
  3. 推送消息有富文本么?
  4. 热修复了解么,用的什么?
  5. apk包大小有限制么?怎么减小包大小?
  6. 工做中有没有用过或者写过什么工具?脚本,插件等等?
  7. 好比:多人协同开发可能对一些相同资源都各自放了一份,有没有方法自动检测这种重复之类的?
  8. 写过native的底层代码么?
  9. view的绘制熟悉么?
  10. gc相关的算法?
  11. anr是由于什么产生的,怎么排查?
  12. 界面上的话,有什么优化措施么?好比列表展现之类的,平时遇到过内存问题吗,怎么优化的?
  13. 平时用过哪些设计模式?

Second:

  1. 介绍下最近一年主要作了什么工做
  2. 会对简历上突出的技能进行详情的询问: 好比:音频合成的具体步骤,以及遇到的一些问题和细节处理。 会根据面试发散一些问题,问到,seek方法播放到末尾后从新播放会有一些卡顿的不流畅问题,怎么避免,从交互设计或者技术角度。(我的表示没怎么关注这种)。
  3. 项目团队多少人,怎么分配工做?
  4. 线程之间怎么通讯的?
  5. app的架构是怎么样的,而且为何这样,有什么优缺点?
  6. 算法熟悉么?给了一个二叉排序树,出了一个给定节点找到它的下一个元素(指的是大小顺序的下一个)的算法题。
  7. 为何找工做,本身的优点是什么?

Third:

技术问题再也不局限于简历,可能根据简历和回答状况渐进并扩散。 感受各个技术面试官以前并无沟通,可能会问到相似的问题

  1. 介绍下本身主要负责的工做
  2. Activity的生命周期有哪些,知道onRestart么,介绍下
  3. savedInstanceState知道么,干什么用的,何时有值,何时为空,平时是怎么用的
  4. View绘制熟悉么,介绍下,能说下是实现原理么?
  5. 平时用过什么开发工具,分析工具?
  6. ANR是怎么回事?怎么查?Service会引发ANR么?
  7. Activity的启动模式有哪些?栈里是A-B-C,先想直接到A,BC都清理掉,有几种方法能够作到?这几种方法产生的结果是有几个A的实例?
  8. 有什么工具能够看到Activity栈信息么?多个栈话,有方法分别获得各个栈的Activity列表么
  9. 都熟悉哪些命令?知道怎么用命令启动一个Activity么?
  10. SharedPrefrences的apply和commit有什么区别
  11. java里带$的函数见过么,是什么意思
  12. MD5是加密方法么,Base64呢
  13. 有博客和github,主要是写的什么?有哪些关注
  14. android 8.0 有哪些新特性

差很少就这些吧。。最后每一个面试官都会让你问他问题。

某公司

  1. glide缓存策略?同一个图片跟size有关么
  2. android中的动画有哪些
  3. View事件传递机制
  4. 界面卡顿怎么排查和优化?
  5. Fragment的replace和end??的区别?
  6. MVP,MVVM,MVC解释和实践
  7. 项目以外的,对技术的看法,拓展知识

二面:

  1. 微信跳一跳外挂怎么实现,检测怎么作的?
  2. 一张纯色背景下怎么有效检测各个矩形?
  3. 对接的so算法了解么,有接触过相关的库么?
  4. 三个算法题选一个并写出测试用例:打印n-m之间全部的素数;计算n-m之间1出现的次数;指定数字序列的排序;
  5. android api层的源码熟悉哪些?解释一下
  6. ACTION_CANCEL何时触发,触摸button而后滑动到外部抬起会触发点击事件吗,在+ + 滑动回去抬起会么
  7. 怎么处理嵌套View的滑动冲突问题
  8. 热修复相关的原理,框架熟悉么
  9. gradle打包流程熟悉么
  10. 任意提问环节:其实能够问以前面试中遇到的问题:好比,多模块开发的时候不一样的负责人可能会引入重复资源,相同的字符串,相同的icon等可是文件名并不同,怎样去重?

NetBase:

  1. Canvas的底层机制,绘制框架,硬件加速是什么原理,canvas lock的缓冲区是怎么回事
  2. surfaceview, suface,surfacetexure等相关的,以及底层原理
  3. android文件存储,各版本存储位置的权限控制的演进,外部存储,内部存储
  4. 上层业务activity和fragment的遇到什么坑??页面展现上的一些坑和优化经验
  5. 网络请求的开源框架:OKHttp介绍,写过拦截器么

Netbase:AI

  1. 数据层有统一的管理么,数据缓存是怎么作的,http请求等有提供统一管理么?
  2. 有用什么模式么,逻辑什么的都在Activity层?怎么分离的?
  3. 若是用了一些解耦的策略,怎么管理生命周期的?
  4. 有什么提升编译速度的方法?
  5. 对应用里的线程有作统一管理么?
  6. jni的算法提供都是主线程的?是否是想问服务类的啊
  7. 边沿检测用的啥?深度学习相关的有了解么?
  8. 上线后的app性能分析检测有作么?

yz

  1. 进程间通讯方式?Binder的构成有几部分?
  2. HttpClient和HttpConnection的区别
  3. View的事件传递机制
  4. MVC,MVP,MVVM分别是什么?
  5. Android中经常使用的设计模式,说三个比较高级的?
  6. 内存优化,OOM的缘由和排查方法
  7. 想改变listview的高度,怎么作
  8. Https是怎么回事?
  9. 除了平常开发,其余有作过什么工做?好比持续化集成,自动化测试等等

滴滴

  1. ActivityA跳转ActivityB而后B按back返回A,各自的生命周期顺序,A与B均不透明。
  2. Synchronize关键字后面跟类或者对象有什么不一样。
  3. 单例的DCL方式下,那个单例的私有变量要不要加volatile关键字,这个关键字有什么用
  4. JVM的引用树,什么变量能做为GCRoot?GC垃圾回收的几种方法
  5. ThreadLocal是什么?Looper中的消息死循环为何没有ANR?
  6. Android中main方法入口在哪里
  7. jdk1.5?SparseArray和ArrayMap各自的数据结构,前者的查找是怎么实现的,与HashMap的区别
  8. Runnable与Callable、Future、FutureTask的区别,AsyncTask用到哪一个?- AsyncTask是顺序执行么,for循环中执行200次new AsyncTask并execute,会有异常吗
  9. IntentService生命周期是怎样的,使用场合等
  10. RecyclerView和ListView有什么区别?局部刷新?前者使用时多重type场景下怎么避免滑动卡顿。懒加载怎么实现,怎么优化滑动体验。
  11. SQLite的数据库升级用过么
  12. 开放问题:若是提升启动速度,设计一个延迟加载框架或者sdk的方法和注意的问题。
  13. Scroller有什么方法,怎么使用的。
  14. 分享下项目中遇到的问题
  15. webwiew了解?怎么实现和javascript的通讯?相互双方的通讯。@JavascriptInterface在?版本有bug,除了这个还有其余调用android方法的方案吗?
  16. ReactiveNative了解多少
  17. JNI和NDK熟悉么?Java和C方法以前的相互调用怎么作?

几点建议

一、简历要如实写,相关的知识点必定要烂熟于心。

二、基础扎实,android和java相关的知识树网上有不少资料,看过但让你讲出来未必能说的好。

三、提早总结,你还擅长什么其余技术?这种开放问题要看知识面了。

四、学会提问,你有什么问题要问我吗?这种礼貌性问题也是一个了解对方的好机会。

五、良好的内心素质,不管遇到什么状况,面试官迟到、面试官态度冰冷说话不客气、质疑你的回答等等各类问题都不要慌也不要排斥,必定要沉住气,耐心积极的思考并回答对方的提问。

大厂的面试流程比较长,面试是一场全面大考验,若是想换个工做,最好提早充分准备。

因为文章篇幅有限,面试题答案领取方式:加入便可领取

相关文章
相关标签/搜索