Android面试题Android面试面试

Android面试真题,了解一下?

2018-03-08  本文已影响765人  好奇的小刺猬

前言

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

面试真题

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

一、

tb:电面一:

  1. 最近都做了哪些工作?
    遇到了什么印象深刻的问题。
    A:会顺着你介绍的项目问下具体实现。
  2. 推送消息有富文本么?
  3. 热修复了解么,用的什么?
  4. apk包大小有限制么?怎么减少包大小?
  5. 工作中有没有用过或者写过什么工具?脚本,插件等等
    比如:多人协同开发可能对一些相同资源都各自放了一份,有没有方法自动检测这种重复之类的
  6. 写过native的底层代码么
  7. view的绘制熟悉么,介绍下
  8. gc相关的算法
  9. anr是因为什么产生的,怎么排查
  10. 界面上的话,有什么优化措施么?比如列表展示之类的,平时遇到过内存问题吗,怎么优化的?
  11. 平时用过哪些设计模式?
    Second:
  12. 介绍下最近一年主要做了什么工作
  13. 会对简历上突出的技能进行详情的询问:
    比如:音频合成的具体步骤,以及遇到的一些问题和细节处理。
    会根据面试发散一些问题,问到,seek方法播放到末尾后重新播放会有一些卡顿的不流畅问题,怎么避免,从交互设计或者技术角度。(个人表示没怎么关注这种)。
  14. 项目团队多少人,怎么分配工作
  15. 线程之间怎么通信的?
    5.app的架构是怎么样的,并且为什么这样,有什么优缺点?
    6.算法熟悉么?给了一个二叉排序树,出了一个给定节点找到它的下一个元素(指的是大小顺序的下一个)的算法题。
  16. 为什么找工作,自己的优势是什么
    Third:
    技术问题不再局限于简历,可能根据简历和回答情况渐进并扩散。
    感觉各个技术面试官之前并没有沟通,可能会问到类似的问题
二、

zfb:

三、

NetBase:

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

Netbase:AI

五、

yz:

六、

DiDi:比较全面

  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存储


Android存储.png

android优化


App优化.png

里面有一些链接因为图片的关系无法点击,不知道简书怎么上传其他文件,需要的同学可以联系我我另发Xmind吧。

几个建议:

1.简历要如实写,相关的知识点一定要烂熟于心。
2.基础扎实,android和java相关的知识树网上有很多资料,看过但让你讲出来未必能说的好。
3.提前总结,你还擅长什么其他技术?这种开放问题要看知识面了。
4.学会提问,你有什么问题要问我吗?这种礼貌性问题也是一个了解对方的好机会。
5.良好的心里素质,无论遇到什么情况,面试官迟到、面试官态度冰冷说话不客气、质疑你的回答等等各种问题都不要慌也不要排斥,一定要沉住气,耐心积极的思考并回答对方的提问。
6.推荐几本书,也是好几次面试后发现里面涵盖了大部分答案。《Android开发艺术探索》《Android源码设计模式-解析与实战》《Android进阶之光》《深入理解Java虚拟机》,多看几遍。

大厂的面试流程比较长,面试是一场全面大考验,如果想换个工作,最好提前充分准备,最后,看到这里的人给你点个赞并有福利喽,下面的链接是对以上一些问题的答案的整理,以及一些其他的经典问题,链接:面试那些事。其中因为时间问题其他主题还没有开始动笔,并且引用了很多博客链接,希望相关博主不要介意。仅作为参考。

上一篇下一篇

猜你喜欢

热点阅读