大厂Android面试,居然还问这些问题!
前言
又到了金三银四的面试季,自己也不得不参与到这场战役中来,其实是从去年底就开始看,android的好机会确实不太多,但也还好,3年+的android开发经历还是有一些面试机会的,不过确实不像几年前门槛那么低了,总的体会就是小的创业公司比较注重你的项目经历是否和自己的贴合,直接能过来独当一面。大厂除了看中项目经历外,还比较注重你知识面的广度,是广度、深度和解决方案等多方面的考察,平时够工作要好好积累临时刷题只聊点皮毛估计是过不了关的。下面就总结一些遇到的题目,各种风格的都有。这里先列举问题。
面试真题
各厂名字字母表示,自己猜。本题目整理不保证你会遇到相同的问题,根据岗位和面试官本身情况,问题可能差别很大,比如有做中间件的同学被问到热修复的细节等等。总体说来阿里的面试是很正规的,从android基础到一定程度的理解总结性问题,然后回到java基础及原理,主要着重问简历上的,或从简历出发发散问题,问题会由表及里逐渐深入,很考察对你负责的项目的理解和其中用到知识原理。因为是凭着记忆后记的,以下问题不分先后。这里按岗位来分类,能有个渐进的感觉。
由于文章篇幅有限,面试题答案领取方式:加入即可领取
tb:电面一
dp是什么,sp呢,有什么区别?
自定义View,ViewGroup注意那些回调?
界面卡顿的原因以及解决方法?
android中的存储类型?
service用过么,基本调用方法?
Handler机制?
LinearLayout、FrameLayout、RelativeLayout性能对比,为什么?
Activity的生命周期,finish调用后其他生命周期还会走么?
FW层熟悉么,源码看过么?
GC回收机制熟悉么,分代算法知道么?
Java的类类加载原理?
内存泄漏如何排查,MAT分析方法以及原理,各种泄漏的原因是什么比如?
Handler为什么会泄漏?
gradle熟悉么,自动打包知道么?
介绍下先的app架构和通信?
自己负责过哪些模块,跟同事相比自己的优势是什么?
遇到过什么印象深刻的问题,怎么解决的?
现场面试:三场
First:
- 最近都做了哪些工作?
- 遇到了什么印象深刻的问题。A:会顺着你介绍的项目问下具体实现。?
- 推送消息有富文本么?
- 热修复了解么,用的什么?
- apk包大小有限制么?怎么减少包大小?
- 工作中有没有用过或者写过什么工具?脚本,插件等等?
- 比如:多人协同开发可能对一些相同资源都各自放了一份,有没有方法自动检测这种重复之类的?
- 写过native的底层代码么?
- view的绘制熟悉么?
- gc相关的算法?
- anr是因为什么产生的,怎么排查?
- 界面上的话,有什么优化措施么?比如列表展示之类的,平时遇到过内存问题吗,怎么优化的?
- 平时用过哪些设计模式?
Second:
- 介绍下最近一年主要做了什么工作
- 会对简历上突出的技能进行详情的询问: 比如:音频合成的具体步骤,以及遇到的一些问题和细节处理。 会根据面试发散一些问题,问到,seek方法播放到末尾后重新播放会有一些卡顿的不流畅问题,怎么避免,从交互设计或者技术角度。(个人表示没怎么关注这种)。
- 项目团队多少人,怎么分配工作?
- 线程之间怎么通信的?
- app的架构是怎么样的,并且为什么这样,有什么优缺点?
- 算法熟悉么?给了一个二叉排序树,出了一个给定节点找到它的下一个元素(指的是大小顺序的下一个)的算法题。
- 为什么找工作,自己的优势是什么?
Third:
技术问题不再局限于简历,可能根据简历和回答情况渐进并扩散。 感觉各个技术面试官之前并没有沟通,可能会问到类似的问题
- 介绍下自己主要负责的工作
- Activity的生命周期有哪些,知道onRestart么,介绍下
- savedInstanceState知道么,干什么用的,什么时候有值,什么时候为空,平时是怎么用的
- View绘制熟悉么,介绍下,能说下是实现原理么?
- 平时用过什么开发工具,分析工具?
- ANR是怎么回事?怎么查?Service会引起ANR么?
- Activity的启动模式有哪些?栈里是A-B-C,先想直接到A,BC都清理掉,有几种方法可以做到?这几种方法产生的结果是有几个A的实例?
- 有什么工具可以看到Activity栈信息么?多个栈话,有方法分别得到各个栈的Activity列表么
- 都熟悉哪些命令?知道怎么用命令启动一个Activity么?
- SharedPrefrences的apply和commit有什么区别
- java里带$的函数见过么,是什么意思
- MD5是加密方法么,Base64呢
- 有博客和github,主要是写的什么?有哪些关注
- android 8.0 有哪些新特性
差不多就这些吧。。最后每个面试官都会让你问他问题。
某公司
- glide缓存策略?同一个图片跟size有关么
- android中的动画有哪些
- View事件传递机制
- 界面卡顿怎么排查和优化?
- Fragment的replace和end??的区别?
- MVP,MVVM,MVC解释和实践
- 项目之外的,对技术的见解,拓展知识
二面:
- 微信跳一跳外挂怎么实现,检测怎么做的?
- 一张纯色背景下怎么有效检测各个矩形?
- 对接的so算法了解么,有接触过相关的库么?
- 三个算法题选一个并写出测试用例:打印n-m之间所有的素数;计算n-m之间1出现的次数;指定数字序列的排序;
- android api层的源码熟悉哪些?解释一下
- ACTION_CANCEL什么时候触发,触摸button然后滑动到外部抬起会触发点击事件吗,在+ + 滑动回去抬起会么
- 怎么处理嵌套View的滑动冲突问题
- 热修复相关的原理,框架熟悉么
- gradle打包流程熟悉么
- 任意提问环节:其实可以问之前面试中遇到的问题:比如,多模块开发的时候不同的负责人可能会引入重复资源,相同的字符串,相同的icon等但是文件名并不一样,怎样去重?
NetBase:
- Canvas的底层机制,绘制框架,硬件加速是什么原理,canvas lock的缓冲区是怎么回事
- surfaceview, suface,surfacetexure等相关的,以及底层原理
- android文件存储,各版本存储位置的权限控制的演进,外部存储,内部存储
- 上层业务activity和fragment的遇到什么坑??页面展示上的一些坑和优化经验
- 网络请求的开源框架:OKHttp介绍,写过拦截器么
Netbase:AI
- 数据层有统一的管理么,数据缓存是怎么做的,http请求等有提供统一管理么?
- 有用什么模式么,逻辑什么的都在Activity层?怎么分离的?
- 如果用了一些解耦的策略,怎么管理生命周期的?
- 有什么提高编译速度的方法?
- 对应用里的线程有做统一管理么?
- jni的算法提供都是主线程的?是不是想问服务类的啊
- 边沿检测用的啥?深度学习相关的有了解么?
- 上线后的app性能分析检测有做么?
yz
- 进程间通信方式?Binder的构成有几部分?
- HttpClient和HttpConnection的区别
- View的事件传递机制
- MVC,MVP,MVVM分别是什么?
- Android中常用的设计模式,说三个比较高级的?
- 内存优化,OOM的原因和排查方法
- 想改变listview的高度,怎么做
- Https是怎么回事?
- 除了日常开发,其他有做过什么工作?比如持续化集成,自动化测试等等
滴滴
- ActivityA跳转ActivityB然后B按back返回A,各自的生命周期顺序,A与B均不透明。
- Synchronize关键字后面跟类或者对象有什么不同。
- 单例的DCL方式下,那个单例的私有变量要不要加volatile关键字,这个关键字有什么用
- JVM的引用树,什么变量能作为GCRoot?GC垃圾回收的几种方法
- ThreadLocal是什么?Looper中的消息死循环为什么没有ANR?
- Android中main方法入口在哪里
- jdk1.5?SparseArray和ArrayMap各自的数据结构,前者的查找是怎么实现的,与HashMap的区别
- Runnable与Callable、Future、FutureTask的区别,AsyncTask用到哪个?- AsyncTask是顺序执行么,for循环中执行200次new AsyncTask并execute,会有异常吗
- IntentService生命周期是怎样的,使用场合等
- RecyclerView和ListView有什么区别?局部刷新?前者使用时多重type场景下怎么避免滑动卡顿。懒加载怎么实现,怎么优化滑动体验。
- SQLite的数据库升级用过么
- 开放问题:如果提高启动速度,设计一个延迟加载框架或者sdk的方法和注意的问题。
- Scroller有什么方法,怎么使用的。
- 分享下项目中遇到的问题
- webwiew了解?怎么实现和javascript的通信?相互双方的通信。@JavascriptInterface在?版本有bug,除了这个还有其他调用android方法的方案吗?
- ReactiveNative了解多少
- JNI和NDK熟悉么?Java和C方法之前的相互调用怎么做?
几点建议
1、简历要如实写,相关的知识点一定要烂熟于心。
2、基础扎实,android和java相关的知识树网上有很多资料,看过但让你讲出来未必能说的好。
3、提前总结,你还擅长什么其他技术?这种开放问题要看知识面了。
4、学会提问,你有什么问题要问我吗?这种礼貌性问题也是一个了解对方的好机会。
5、良好的心里素质,无论遇到什么情况,面试官迟到、面试官态度冰冷说话不客气、质疑你的回答等等各种问题都不要慌也不要排斥,一定要沉住气,耐心积极的思考并回答对方的提问。
大厂的面试流程比较长,面试是一场全面大考验,如果想换个工作,最好提前充分准备。
由于文章篇幅有限,面试题答案领取方式:加入即可领取
转载于:https://juejin.im/post/5c9e1c71f265da309f53571b
大厂Android面试,居然还问这些问题!相关推荐
- 阿里、腾讯大厂Android面试必问知识点系统梳理,满满干货指导
前言 金三银四,又是一年校招季. 经历过,才深知不易.最近,和作为校招面试官的同事聊了聊,问他们是如何去考察一个学生的,我简单归为以下几点: 聪明.反应快,这点自不必说,聪明意味着学习能力.适应力强, ...
- 升职加薪必看!阿里、腾讯大厂Android面试必问知识点系统梳理,深度好文
前言 今年是转折的一年,很多学android开发的小伙伴失业了,虽找到了一份工作,但高不成低不就,下半年金九银十有想法更换一份工作,很多需要大厂面试经验和大厂面试真题的小伙伴,想提前准备刷下题.接下来 ...
- 大厂Android面试经历(已获头条、百度、OPPO等大厂offer)
前言 本人水平有限,此文针对于自认为技术实力对标阿里P6,百度T5或者以下的读者,如果是大佬不小心点进来了,可以自行点x略过.文内并不会出现每一家公司的面试过程细节,主要目的在于帮助大家怎么在像我一样 ...
- 上海大厂Android面试经历;华为+小米+映客+抖音
前言 面试:如果不准备充分的面试,完全是浪费时间,更是对自己的不负责. 文末会给大家分享下我整理的Android面试专题及答案其中大部分都是大企业面试常问的面试题,可以对照这查漏补缺,当然了,这里所列 ...
- 【不仅仅有面经】2020大厂Android面试经历,Android从入门到精通
本人985学校本科毕业,非科班出身,三年多Android开发经验,半年iOS开发经验,和一个JavaScript小游戏开发经验.技术水平,略低于百度T5的样子(去百度面过,止步第四轮技术面).一直在创 ...
- 十多家大厂Android面试真题锦集干货整理,好文推荐
我,来自大山. 我,不甘平凡. 笔者80后,出生在江西一个偏远的山村.虽然出生时已经不是那个温饱都是问题的年代,但是也谈不上有个幸福的童年.家里很穷.幼儿园并没有读,因为家里觉得花那个钱没有必要,小学 ...
- 无意苦争春,一任群芳妒!看完这份2020年度大厂Android面试总结,我直接起飞!
前言 草色青青柳色黄,桃花历乱李花香.度过了愉快的春节,转眼间春天也就到了.金三银四青铜五,今年面试形势严峻,切勿临时抱佛脚.在博主认为,对于Android面试以及进阶的最佳学习方法莫过于刷题+博客+ ...
- 安卓android刷机工具!2021大厂Android面试经历,值得收藏!
从基础到架构进阶,包含了腾讯.百度.小米.阿里.乐视.美团.58.猎豹.360.新浪.搜狐等一线互联网公司面试被问到的题目,涵盖了初中高级安卓技术点. 文章中所列主要为大纲部分,详细内容可以在文末自行 ...
- android activity启动流程_1307页!一线大厂Android面试全套真题解析!
/ 前言 / 金九银十到了,很多读者都反映有面试的需求,所以我特地给大家准备了一点资料! 下面的题目都是大家在面试一线互联网大厂时经常遇到的面试真题和答案解析,如果大家还有其他好的题目或者好的 ...
最新文章
- vconsole插件_手机前端开发调试利器 – vConsole
- python文件读写_python文件操作-读写删除复制总结
- xgboost源码 要看的
- Jquery实现图片左右滚动,没有头尾的,一直循环
- 计算机硬件与游戏发展史,电脑硬件的发展历程中 什么是电竞SSD?
- PHP草根论之设计模式-訪问者模式
- K8s卸载清理flannel插件清理
- FineUILearning
- java 更新订单状态_Java 8状态更新
- PHPcms框架的Webshell
- WPF Multi-Touch 开发:Windows 7 安装多点触屏模拟器
- DJango — URL的Reverse和Resolve
- python算法之归并排序
- CCF NOI100002 取数游戏
- SpringMVC核心
- 大数据学习之大数据概述
- 拓展SOUI中SImRichEdit控件的语音OLE控件(AudioOle)
- 提高计算机CPU运行速度,提高cpu运行速度的方法
- Java歌手评分系统
- 庞博 上海交大计算机系,那个脱口秀的段子手——交大帅哥庞博
热门文章
- MyBatis批量插入
- Android系统源码编译最重要的一步
- 检索COM 类工厂中CLSID 为{00024500-0000-0000-C000-000000000046}组件时失败
- linux字符cdev和Inode的关系
- 用 CALL TRANSACTION USING... 调用批输入时的一些注意事项
- 好程序员HTML5大前端分享常用开发工具大集合
- 【javascript】深入理解对象
- hashlib摘要算法模块,logging日志,configparser配置文件模块
- 阿里云云盾吴翰清:未来将重点构建阿里云用户安全的大生态
- 《TensorFlow技术解析与实战》——第3章 可视化TensorFlow 3.1PlayGround