您的位置:首页 > 职场人生

Android面试汇总(百度+360+Tencent+淘宝+Qualcomm+HTC)

2016-07-14 20:05 435 查看

汇总笔者经历了一些来自百度,360,淘宝,腾讯,高通中国,htc上海的电话面试及现场面试,还有笔试相关题目

百度:百度在北京中关村上地七街奎科科技大厦,不大但是很安静的一个办公地点。

百度技术面试分为两轮,第一轮基础技术面试,一般为项目负责人,主要考察基本知识及知识广度,第二轮面试一般为部门负责 人,主要考察技术深度。基础面试感觉个人答的还不错,主要询问了一些关于android基本知识的考察,涉及到Activity之间的跳转,然后问了一些 关于所参与项目中遇到的问题,比如现在做的云信项目中,如何提供传输效率等,然后讨论了一下关于View刷新机制等问题。总体来看一面比较容易,时间差不 多一个半小时。

第二轮面试,面试官看起来挺严肃的,当然由于是考技术深度,所以难度加大了,当然自己也败在这里边了。由于看到简历边有说JNI这块,他就特地主要文这块了,所有问题基本都是以C和数据结构为主。

主要问道:

1. 实现Strlen(char* str)
2. 说说常见的两种数据结构之间的区别,这里边问道了MAP,TREE,队列,数据,栈等。并且说说时间复杂度及空间复杂度。
3. 说说地图定位方式,详细说说wifi定位是如何实现的。

总体而言,之所以答的不好,对常见的数据结构确实并不是很熟悉,没有做好充分准备,建议如果去面试,好好复习《剑指名企Offer》。第三个问题,面试官让发挥想象去考虑wifi是怎么实现定位的,没有答出来。

360:位于北京朝阳区大望路地铁站不远处,办公地点环境很好。

涉及的主要问题:

1. 笔试,hashcode 与 equals()区别?

2. 冒泡排序算法实现

3. 常见的排序算法时间复杂度

4. dp,px,sp区别及使用场景

5. lauchmode及应用场景

6. 说说你对android的理解。

7. Android sqlite3是否支持并发访问?

8. 有没有遇到过各个版本之间android api接口的区别?试列举1~2个

9. Android wap访问方式。

360此次面试总体而言,表现挺失败的,笔试题没有答好。面试也没表现好。

腾讯面试:地点在腾讯大厦隔壁的楼里边。

腾讯在电话面试中主要问道了:

1. C++ 引用与指针的区别。

2. Android aidl原理。

3. 如何保证service在后台不被kill

现场笔试题如下:

1. Broadcast生命周期。

2. Requestlayout,onlayout,onDraw,DrawChild区别与联系

3. Invalidate 与 postInvaliate区别

4. Android 2D动画框架实现原理

5. Java状态机

6. 线程wait(),yelid(),sleep()区别

7. Java垃圾回收机制

8. 两种单例模式的实现方式

9. 与操作

10.递归算法

11.Map原理

12.Java中int char long各占多少字节数

13.Android为每个应用程序分配的内存大小是多少?

14.Integer与Int的区别。

笔试大概耗时30分钟。

面试过程中,主要是问关于算法与数据结构的题,问了C里边比较经典的一个算法题,求一个数N的2进制表现形式中1的个数。如3(0x0011)中为2个。

没答出来。

腾讯面试兼顾android及java基础知识,并且在面试中主要考察数据结构与算法,但是面试前没有花时间与精力复习此。悲剧的收场。

淘宝:淘宝面试只参与了电话面试,电话面试耗时约1小时,在电话面试中主要问了如下问题:

1. 自我介绍

2. 参考自我介绍,问了很多关于目前所做项目中遇到的问题

3. 在项目中遇到的最大的问题,回答,listview图片缓存机制。

4. 项目亮点:网络架构,说说对AsyncTask的理解。

5. 如何防止service被kill掉。

6. 说说View的刷新机制。

7. 对Java虚拟机的理解。Java内存回收机制的理解。

8. AIDL

淘宝电话面试时由于当时刚入门android没多久,只接触了一个项目,项目经验不够,并且由于对java理解很浅,所以得到的面试结果是:技术基础还可以,但是技术深度不够。

Qualcomm中国:

Qualcomm简历是在51job上投放的,这也是唯一一个通过网投简历获得的面试机会,其余全都是通过内部推荐获取,这也验证了,其实网投被HR看到的几率是很低,效率不高。不能完全依赖网投的方式进行找工作。、

此次电话面试的是Qualcomm中国上海的 android研发测试工程师,虽然是测试工程师职位,但是在面试过程中问到的问题,丝毫不比开发工程师难度低并且远胜过开发职位。

具体面试问题如下:

1. 谈谈对SurfaceView的理解

2. 如何防止进程死锁。

3. OO里边多态的概念

4. ContentProvider实现原理,为什么能够共享数据

5. 下载模块的优化

6. A a 与 Aa = new A();的区别

7. 说说常用的Intent Flag。

具体问题,目前只记得这几个了,但是面试交谈大概耗时一个小时,一个小时中问道了很多问题,包括linux系统知识,OO,C/C++知识,android及java。覆盖范围比较广。

HTC中国上海:

HTC面试也是通过网投的。看来HTC跟Qualcomm等外企通过网投的概率比较大。

HTC也是采取电话面试:

HTC电话面试,从对方听筒的声音来看,对方一共有5~6人参与面试,包括技术与人力。鸭梨山大。

主要问道如下问题:

1. AIDL

2. 强引用,软引用,弱引用之前的区别

3. Epub格式解析过程

4. 网络访问方式。

5. Davink与jvm的区别

6. Jni相关知识

7. ConentProvider实现过程,这个比较偏像于如何实现。

8. 数据库联表查询。

9. 抽象类跟接口的区别。

总体来看,其实HTC电话面试所问问题相对都比较容易答上,并且实际情况也是很容易通过电话面试了
952a
,但是考虑到个人职业规划安排,后续没有去上海总部面试。

经历过以上这些面经历,发现自己学到很多,也认识到很多不足:

1.在不断的面试过程中,自己对如何自我介绍这个环节有了一定提高,比如在baidu的面试自我介绍过程中,完美结合自己对产品的理解,以及如何把这个理念在开发中实现,摆脱了之前面试一位的补充简历的弊端。

2.通过不断的面试,发现了自己在技术上的不足,找到了后续提高的点。技术深度上下苦工,并且面试前要好好做好数据结构复习。

3.面试过程中,适度的低调,隐藏自己的知识面,通过 虽然我不知道是怎么做的,但是我想****这种方式来增强面试官对你的印象。

接下来自己要努力的点:

1. 解决上述面试过程中遇到的问题。

2. 在平时的工作中,多问为什么,多想想优缺点。

3. 研究SurfaceView,JNI,view工作原理,2D动画框架

4. 深入理解BINDER,CONTENTPROVIDER。

5. 深入学习java,多问几个为什么。

原文出处
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: