Android-大三学生记一次阿里实习的电话面试

210 阅读5分钟

本人Android小菜鸡,目前还在大三下学期,在学校的网络中心搞Android开发。

想趁着春招体验一下面试,就在一个月前投了阿里,(ps:阿里的简历处理速度有点慢)。直到今天才打电话通知我电话面试。 记录一下4.29日下午4点阿里的电话一面:

面试官:请做一下自我介绍 我:你好,我是…..现在在学校网络中心负责Android开发。(正常介绍就完事)

面试官 : 你做过的这些项目中 , 哪一个是最有成就感的? 我: …(想了想Crossword做的最多,就说了说Crossword是怎么从无到有和小伙伴在老师的指导下开发的)。 ok,ok..嗯..嗯

面试官 : 那这个项目中,你遇到的最难的问题是什么? 我 :拍照打分(讲了讲项目中要实现从目前二维数组到像素坐标转换的难点)。 嗯。。嗯。。(貌似对我的回答挺满意 ? )

面试官 :还有吗其他遇到比较难的地方吗 ? 我 : (想了想。。。好像其他没什么太难的,毕竟都是OCR和翻译的百度的服务。)实现生成Crossword的算法,到打印成pdf吧,优化算法的过程中费了不少时间,学习PDF库的使用。

面试官 : ok,没什么问题,说一下Android的四大组件吧 ? 我 : Activity,BroadCastReciver,Service,ContentProvider(这个相信大家基本都会)

面试官 : 好,那说一下 ContentProvider 的作用吧 我 : ContentProvider,内容提供程序,可以为其他app提供信息,比如得到电话号码,可以进行一些类数据库的增删改查操作之类的操作( 感觉说的不是很好 )

面试官 : 嗯,好。说一下Activity吧,Acitivity有四个启动模式,都知道吗 ?

我 :….(想了半天,就记起来一个 栈内复用模式)栈内复用模式,当A是此模式时,A启动了B,B启动了C,C再启动A,系统就会把A从活动栈中拿出来(这点说错了,面试官纠正了我,其实是启动了A,那么栈中在A之上的活动B,C都会被弹出,A回到栈顶。) (。。面试官估计是不太满意)

面试官:(打破窘境)那咱们换个换题吧,用过自定义View吗? 我 : (对于自定义View我有点虚,只会点简单的),用过一些简单的自定义View,比如一个View实现随手全局滑动。

面试官 : 好,这个全局随手滑动是怎么实现的呢 ? 我 : 在View的 onTouchEvent函数中,获取手指的坐标,在onLayout中,对View进行定位,坐标是获得的手指坐标。

面试官 : 好,那 在 onTouchEvent方法,onLayout方法中,坐标是相对与谁的 ? 我 : (这一点,我开始说了是相对屏幕的,然后意识到不对,马上改成是相对父布局的….)

面试官 :(估计也发现了我对这块不太熟..)那有没有做过更复杂一点的自定义View呢? 我 : 没有,不过目前打算在我们的项目中用到自定义棋盘的GridView.

面试官 :嗯。那你准备怎么实现呢 ? 我 : 先实现能够展示黑白棋盘格子,并且有效格子部分能够接收键盘输入,然后如果屏幕显示不下,还需要画布能够随手势放大,缩小。。。暂时想的是实现这些。 (其实这里,我是瞎吹的,这个功能估计不会做。)

面试官 :好,那你能讲一下 随手势 放大 缩小怎么实现呢 ? 我 : 这两个手势都是需要两个手指触摸屏幕,我只要观察两个触摸点之间的距离,放大时 两个触摸点的距离会越来越大,反之亦然。

面试官 :嗯好,那这个方法缩小的中心点在哪里呢 ? (问的问题好奇怪,不过确实,这也是实现过程中要解决的问题 ) 我 : 暂时想的是以获得焦点的格子为中心或者,当时画布的中间为中心。

面试官 :你有没有观察过微信中 图片的 放大缩小 的中心点 在哪里 ?

我 : (这我真没观察过,后来试了试发现是以两指之间的中间点为放大缩小的中心点。。。)嗯。。。是两只之间的中间点,这是个不错的方案。

面试官 :嗯。。。。(反应一般,貌似没达到满意的效果)。 给你看到算法题吧,说一说你的思路

(重点来了)

我 :(想了一会,说了一个比较笨的方法)对数组挨个遍历,第一个是9,用9往后加,不符合就跳到下一个元素5...,5往后加,5,4,8是符合的,ok,结束。

面试官 : emmm,你的时间复杂度是多少 ? 我 : 。。。。n2.

面试官: 题目要求时间复杂度是2n,你还有更好的方法吗? 我 : (emmmmm。。。)在之前检查9的时候可以保存已经 加过了的信息,留到检查到后面的元素是复用。

面试官 : 那能说说具体用什么实现吗 我 : 队列 ?...(我自己也不确定)emmmm,暂时不清楚。

面试官 : 好,我的问题问完了,你还有什么问题吗 (我估计已经凉了,等秋招再来吧) 我 : emmm,如果这次面试没有过的话,会影响秋招吗 ?

面试官 : 基本不影响的吧,(好像他自己也不确定),一般都是春招没有招够,再在秋招补招的 我 : ???(好吧),那没有什么问题了。。

面试大概用了40分钟吧,面试的人也是个懂技术的,都说大厂重视基础,这句话一点也不假,问我的这些问题,都是基础范围。 还是准备的不充分,再这最后半年好好复习了。加油吧

(完~)

好文推荐:终于有人把 【移动开发】 从基础到实战的全套视频弄全了

好文推荐:阿里腾讯Android开发十年,到中年危机就只剩下这套移动架构体系了!