阿里笔试和视频一面 2017.9

来源:互联网 发布:java病毒代码 编辑:程序博客网 时间:2024/06/18 16:43

大家好,这是我的第一篇面试经验,虽然很短,希望对大家有所帮助。

今年阿里的内推,估计是参加的人太多了,就没有免笔试的环节了,对于阿里的笔试,选择题感觉还是偏难的,大部分题型在技术之瞳这本书上有,阿里出这本书还是有一定意义的。

对于笔试的编程题,剑指offer多刷,有时间去看看leetcode,这对编程有极大的帮助。

笔试结束,经过10几天的等待,阿里通知电话面试。

对于电话面试

首先先自我介绍,根据我的感觉来说,最好先讲讲自己对Android的看法,还可以简单的介绍下自己做过的项目。面 试官一般了解你是通过简历了解你,最好能在简历中突出自己的强项。

在自我介绍中,面试官能通过你的自我介绍了解到很多信息,所以自我介绍要稍微准备下,可以简单介绍自己的项目所用到比较好的点。

接下来就是面试官的一些问题(我就把自己认为正确的答案贴在下面了,没贴答案的题目是因为太长了,需要理解)

1.Activity的启动模式有4种,问在哪些情况下用哪种

1.standartd模式是activity的默认模式,大部分情况下,都应该使用这种模式,也就是在配置文件中什么都不用做,当确实有特殊需求时,再考虑其他模式。

2. SingleTop模式和standard模式非常相似,主要区别就是当一个singleTop模式的Activity已经位于任务栈的栈顶,再去启动它时,不会再创建新的实例,如果不位于栈顶,就会创建新的实例,当一个Activity已经在栈顶,但依然有可能启动它,而你又不想产生新的Activity实例,此时就可以用singleTop模式。例如,一个搜索Activity,可以输入搜索内容,也可以产生搜索结果,此时就可以用singleTop模式,不会用户每次搜索都会产生一个实例。

3. SingleTask模式的Activity在同一个Task内只有一个实例,如果Activity已经位于栈顶,系统不会创建新的Activity实例,和singleTop模式一样。但Activity已经存在但不位于栈顶时,系统就会把该Activity移到栈顶,并把它上面的activity出栈,singleTask模式是任务内单例的,所以我们是否设定Activity为singleTask模式,就是看我们activity是否需要单例,例如你的某个Activity里面有一个列表,如果有多个实例,有可能导致用户看到的列表不一致,有的Activity需要经常启动,如果每次都创建实例,会导致占用资源过多,这些情况都可以使用singleTask模式,但启动singleTask模式的Activity会导致任务栈内它上面的Activity被销毁,有可能会影响用户体验,使用时要注意。

4.singleInstance模式也是单例的,但和singleTask不同,singleTask只是任务栈内单例,系统里是可以有多个singleTask Activity实例的,而singleInstance Activity在整个系统里只有一个实例,启动一singleInstanceActivity时,系统会创建一个新的任务栈,并且这个任务栈只有他一个Activity。例如一个电视launcher里的Activity,通过遥控器某个键在任何情况可以启动,这个Activity就可以设置为singleInstance模式,当在某应用中按键启动这个Activity,处理完后按返回键,就会回到之前启动它的应用,不影响用户体验。


2.Java反射机制有没有了解

3.出现ANR等问题,在写代码时用哪个方法来检测这些错误

strictmode工具类(监测线程策略和VM策略),

BlockCanary(监测主线程的卡顿)

4.多线程问题(Android当中有哪些多线程问题),平时在项目是都用在哪里


5.自定义View(ondraw、onmeasure)

6.Android启动流程(应用启动流程)

7.Service和Activity的通信都有哪些

8.假如你的一个APP,你每次版本更新打算怎么做(不知道该怎么回答)

9.Bundle AIDL这些进程间通讯怎么做的

10.导致ANR的情况


没有答案的问题 百度都能找到




原创粉丝点击