[我的第一面]Android面试经历

今天是2012年11月5日,中午13:30,我进行了我人生中第一次的interview,并且是intern interview。

下面我就来说说整个面试的过程。

我是****大学计算机学院2009级的学生,由于保研了,所以就过去参加一个Android的intern interview,对方的公司是个刚创业起步的公司。

我们约定的时间就是13:30,我在地铁站磨蹭了一段时间,在13:20分的时候进了大厦,等待电梯顺利到达。

其实说公司,应该就算一个工作室,只有80平米左右的空间把。大门是半开的。我礼貌的敲了敲大门,于是坐在最里面的一位女士起身了,我知道那就是Eliza了,HR。

Eliza问我是不是来面试的,我答应了,她把我邀到正对大门的一个沙发坐下,并给我倒了杯热水。然后就和我寒暄了几句,无非就是我是哪个学校,哪个专业,保研情况,还问了问我们学校一个很牛逼的学生现在是什么情况。我如实答到。接着HR就示意旁边的面技术的过来面试了。

下面就是我今天被虐的场景了,惨不忍睹。

1.首先,他看了看我的简历,然后让我给他演示其中的一个程序,因为我写的是基于WIFI的安卓飞鸽传书的程序,虽说他们公司有wifi,但是我的两个手机却是怎么也连不上,于是演示就无疾而终。

于是我就给他简单说明了下整个程序的实现。因为飞鸽是基于局域网的,所以我就没有用服务器,但是他说要是不是在同一个子网的话,你要怎么实现,我答到就增加一个服务器,这样就类似于QQ一样,上线的时候就通知服务器。发送消息的话,让服务器帮忙转发。他又追问道,这个可以实现p2p么,就是两个在不同子网的进行直接通信,因为我是想面试安卓的,所以就没有复习网络相关的内容,于是我就想坦白从宽嘛,说我没有怎么接触p2p。但是他还是不肯舍弃这个问题,继续追问,还是问类似的问题,我就直接回答不知道了。

2.然后我又简单的进行了其他几个项目的介绍,分别是图片浏览器,密码保管箱,天气预报程序。因为只想演示第一个程序的,这些我都没有带来。

我还是和他简单说下实现的思路。

就密码保管箱我说主要是继承一个SQLiteHelper来实现数据库的管理,什么新建啊,增删改查啊,都可以的。

然后他就开始问,这程序安全性你有没有考虑呢?我回答说,因为是初学者,所以我做的程序没有那么多的考虑,但是我觉得如果要实现一个比较安全的话,我们可以先对明文进行DES加密然后再存进去,他接过话说,DES你怎么实现,我说就在程序内部做,他又说这样的话,要是对方的机器足够好的话,还是可以破解的,或者说人家就把你的apk给反编译了,我答到,我是可以用混淆技术来使apk不好被反编译的,至于如果说DES还是可能被破解的话,那我们就在明文里面的固定位,比如第2位,第4位,第8位....进行一个干扰位的添加,再进行加密。 

他又接过去,这样还是可以被破译的。于是我就说那我就真的不知道怎么办了。

后来不知道怎么扯上360的密码保险箱的,结果他就问我有没有看360的密码保险箱是怎么实现的,我问意思是反编译360的apk然后看?我说我没有这么干过。

这还没有结束,他说那你有没有想过,比如说你的一个记录保存了账号和密码,那你能不能就直接通过这个账号密码调用相关的官方软件实现自动登陆(意思是,比如你数据库存了你的QQ账号以及密码,那你能不能就在密码保管箱内实现调用QQ客户端并且利用这个账号密码进行直接登陆,省去输入的步骤)。我想了想,就我所知道的调用程序是可以的,往程序里面传数据也是可以的,都用Intent,但是官方的程序要能处理这个数据才行啊。于是我就说这个应该是不能实现的吧,你觉得呢?他也没有回应我,就跳转下一个问题了。

3.接着呢,就是问我使用过那些应用程序,觉得那些好。我拿起我的手机,找了找,觉得UC还是不错的,毕竟用了很久了,我就说UC还不错,他说为什么?我说因为它省流量。然后他就问我为什么UC省流量呢?到底是怎么实现的呢?我当时就懵了,这还真不知道,我就胡扯了几下,说什么比如说取图片的时候要对图片进行压缩。然后他问那它是在哪里进行图片或者网页的压缩的呢?我说肯定不是在手机上,我觉得是去取的时候添加了参数的吧。

我下一个程序说的是搜狐新闻,但是我基本说的是它存在以及以前存在的一些缺点,比如说有的新闻在ListView上面是有图片显示的,但是点击进去之后就没有图片,他问我为什么会有这样的情况呢,为什么会设计成这样?我说我觉得是一个BUG。

还有就是之前在新闻内部有图片的时候,图片左下角有个"+"的形状的按钮,给人感觉是可以看大图的,但是点进去之后却还是很小的一张,但是现在改过来了,现在就是大图了。

4.接着就是他问我在写程序的过程中都遇到过那些问题,怎么解决的。然后我就说写飞鸽传书的时候有ListView的优化的问题,在GetView的方法中,要尽量使用convertView,从而减少view的新建开销,但是我后来上网又发现了更好的或者差不多的优化方法,那就是使用viewHolder。他问我说这个优化有什么明显的提升么,我说,这倒是没有什么感觉,因为毕竟我现在的程序用户还是很少,但是要是多了的话,就会出现内存消耗过大的情况,手机本来空间就很宝贵的。

接着我就说了我做图片浏览器的时候遇到的一些问题,OOM,因为图片都是比较大的,所以一直在取一直在取得话,就很容易OOM,所以我就进行了图片的压缩处理,他问我怎么压缩的,我说android的decodeFile就自带压缩参数的传入的,然后他又问android是怎么进行图片压缩的,我说我觉得它就是跳像素点,他又问说这样的话图片就会失真的,我回答说,因为是缩略图,所以失真点也是可以的,只要你点击这个图片进入单个图片浏览的时候要取大点的图片。

5.接着他就问我还有什么问题需要问他的,我就问了两个问题:

1)我想问下你们这里都做那些产品,那方面的,比如说新闻啊,还是游戏啊?

他回答说两个都不是,他们是做创新程序的,有好玩的程序他们就做。

2)因为我是大四的,所以我想问一下你们这里工作的时间是怎么安排的。

他回答说我们这里是比较自由的,比如说你早上起的早,那你就早点过来,起来晚,那就晚点来。还是比较自由的。

 

最后他说了句,那今天就到这里吧。于是我就走了。

 

我还是总结下我今天的面试吧。

1.我带过去的程序竟然没能演示,这是不是我自己的运气太背?

2.今天问的这些问题和andorid的关系都不是很大。

3.我自己还是太水。

4.面试还是要继续下去的,我要一直面下去。虽然今天被黑成狗了,但是还是积累了不少的经验。

 

 

以后我会把我所有的面试经历都写到这里来和大家分享的。谢谢!

posted @ 2012-11-05 22:45  Nate_Android  阅读(759)  评论(1)    收藏  举报