从去年底就开端看,android的好时机的确不太多,但也还好,3年+的android开发阅历仍是有一些面试时机的,不过的确不像几年前门槛那么低了,总的领会便是小的创业公司比较重视你的项目阅历是否和自己的贴合,直接能过来独立自主。大厂除了看中项目阅历外,还比较重视你常识面的广度,是广度、深度和处理计划等多方面的调查,平常够作业要好好堆集暂时刷题只聊点皮裘估量是过不了关的。
下面就总结一些遇到的标题,各种风格的都有。这儿先罗列问题。
面试真题
又坐标hz,各厂姓名字母表明,自己猜。本标题收拾不确保你会遇到相同的问题,依据岗位和面试官自身状况,问题或许不同很大,比方有做中间件的同学被问到热修正的细节等等。整体说来阿里的面试是很正规的,从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是怎样回事?
除了日常开发,其他有做过什么作业?比方继续化集成,主动化测验等等
六.DiDi:比较全面
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办法之前的彼此调用怎样做?
几点主张
简历要照实写,相关的常识点必定要纯熟于心。
根底厚实,android和java相关的常识树网上有许多材料,看过但让你讲出来未必能说的好。
提早总结,你还拿手什么其他技能?这种敞开问题要看常识面了。
学会发问,你有什么问题要问我吗?这种礼貌性问题也是一个了解对方的好时机。
杰出的心里本质,不管遇到什么状况,面试官迟到、面试官情绪严寒说话不客气、质疑你的答复等等各种问题都不要慌也不要排挤,必定要沉住气,耐性活跃的考虑并答复对方的发问。
引荐几本书,也是好几次面试后发现里边涵盖了大部分答案。《Android开发艺术探究》《Android源码规划形式-解析与实战》《Android进阶之光》《深化了解Java虚拟机》,多看几遍。
大厂的面试流程比较长,面试是一场全面大检测,假如想换个作业,最好提早充分准备。