android面试

Posted wzjhoutai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android面试相关的知识,希望对你有一定的参考价值。

http://www.apkbus.com/android-115989-1-1.html
面试的几个回答技巧

2013-5-9号补充:今天最新的腾讯面试题。应该说是全部面试中最难的。我个人感觉。并且是个女面试官。好嗨皮啊,哈哈。

腾讯面试题
1.int a = 1;
int result = a+++3<<2;
2.int a = 2;
int result = (a++ > 2)?(++a):(a+=3);
3.int a = 1234567;
int b = 0x06;
int result = a&b;
4.Integer a = 34556;
Integer b = 34556;
boolean result = a==b;
5.String func(string s ){
return s.length() > 0 ? func(s.subString(1))+ s.charAt(0):"";
}
String result = func("Tencent");
6.byte result = (byte) oxffeffefe;
7.int result = [(oxfe2baf&oxf)|oxff] >> 2/(4<<1);
8.推断两个String的交集
比方 A = "Marginle"。B = Valaienie", 交集为aie,写个算法。

9.什么是状态机?项目中什么时候用到状态机,举例说明。
10.写出两种单例模式

Android基础
1.Activity和BroadCast Receiver的生命周期
2.写出几种service和Activity的交互方式
3.UI线程和非UI线程的交互方式。写出几种各自的耗时。
4.requestLayout, invalidate和postInvalidate的异同
5.写出三种经常使用layout布局并进行解释
6.http怎么增加超时和代理
7.view的绘制过程。讲讲draw/onDraw和drawChild这个能够口述。
8.下面是Android sdk的英文文档请细读。
9.100盏灯。所有关闭,第一人所有打开(亮),第二个人隔一个按开关,第三个人隔2个按开关。以此类推,第100人路过时有几盏灯亮着?(写出结果即可)

Java基础
1.说出sleet,wait,notify的差别

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

百度面试题
2013-5-2号补充:
1.View和ViewGroup的关系


2.怎样定位和解决Andorid的内存溢出问题


3.一个有N个元素的一维数组(A[0],A[1], ..., A[n-1]),设计一个算法求解该数组最大子数组。(要求时间复杂度是O(n))


4.用Java代码实现推断一个字符串中是否包括还有一个字符串,不要用jdk中String的indexOf方法。


5.用Java实现一个Singleton.


6.简述Observer设计模式,并画出Observer模式的典型结构类图


7.& 和&&的差别


8.什么是dpi,ps,sp?

适配是怎样做的。为什么?


9.用最有效率的方法算出2乘以8等于几?


10.静态成员类、非静态成员类有什么差别?什么是匿名内部类?


11.Handler机制的原理,内部是怎样实现的,消息队列的实现机制?


12.什么是ANR。怎样定位和避免?


13.APK之间互相传递数据


14.简述Android的启动过程


15.怎样载入ndk库?怎样在jni中注冊native函数,有几种注冊方法?


16.怎样收集软件崩溃信息?


17.简述软件编译流程和公布流程


18.是否编译过android源代码和linux内核源代码


19.写一个归并排序数组


20.自己定义控件相关


21.缓存实现


22.线程同步(生产者 消费者)


23.符号匹配(栈)


24.还问了下拉刷新和分页载入的实现机制


-------------------------------------------------------


盘古搜索面试总结


算法题
2.求一个数组的最大连续子序列和,比方:-10,3,5,2,-3,6,7
最笨的方法就是穷举法。用三层for循环


3.求一个数组中出现次数最多且值最大的数


android的基础题
1.service的生命周期


2.Intent用途。了解多少?IntentService知道么?


3.自己定义控件


4.xmpp协议的理解


5.广播创建方式有几种?有什么差别?


6.多线程有几种实现方式?
继承Thread,  实现Runnable接口。 AsynTask


------------------------------------------------------------


一、listview怎样优化(这个非常重要,多次被问到)
1.分页载入
2.convertView缓存
3.viewHolder
4.scrollListener,记住滑动的状态


二、经常使用排序算法,各种算法的复杂度,用Java实现一种排序算法。






四、单链表的反转、合并、排序


五、二分查找法

六、Intent Flag经常使用的记住几个




七、AIDL怎么用?全称是什么?


八、taskAffinity 亲和性
这个一般人应该都不熟悉,了解一下。面试中可能被问到,几率不大。




--------------------------------------------------------------


百度各种面试总结


1.Listview item缓存怎样实现
convertView


2.非常多view怎样缓存


3.图片上传


4.图片过大怎样处理?压缩后图片有多大?
分辨率压缩、质量压缩




5.OOM怎么办?




6.图片的缓存机制,怎样做到高效和稳定?




7.自己定义view怎么做能提高效率?

自己定义view怎样做图片缓存?自己定义view怎样推断单击和双击?自己定义view 的 onDraw方法主要做什么?


避免反复调用measure 和 layout


8.是否看过view的源代码


9.动画的机制及其底层实现?


10.二叉树、链表


11.平时看什么书?去哪些论坛看?


12.问项目底层实现


13.Linux文件系统实现,怎样实现文件的隐藏?

---------------------------------------------------------------------------------------------------------

面试算法题总结


1.有一个整数数组,有负数和整数,用一个方法把正负数分开,要求空间复杂度是O(1),时间复杂度是:O(N)(百度移动平台部)




2.有一个数列。奇数个。当中有3个是单个的, 其他都是成对的。怎么找出当中随意一个单个的数(小米一面)




3.在一个数组中。找出出现次数最多且数值最大的一个数并输出




4.用最快的方式将两个数组合并到一个数组中?时间复杂度


============================================================================================

2013-4-10补充:
问题:如何的类能够作为HashMap的键?
答:这个问题是搜狗2012年的笔试题,我開始还真是没想太明确。

刚才看到HashMap的时候才发现原来是这么回事。
当须要往ArrayList,HashMap中放东西时。像int,double这样的内建类型是放不进去的,由于容器都是装object的,这就须要这些内建类型的外覆类了。比方:int相应的Integer。double相应的Double。

相同是搜狗的笔试题:适合频繁插入和查找的数据结构
答:频繁插入,链表效率高,频繁查找数组效率高,那么综合一下,我个人认为是哈希表,或者说HashMap等使用hash算法的数据结构。

1、对于简历上所写的每一个问题,面试官感兴趣的会对我提问,并分析里边遇到的问题以及得到的经验。

面试过程描写叙述曾经做过的项目。

项目中你觉得的难点是什么。


2、对于网络交互这块儿须要注意什么问题

3、android是一个什么样的系统。Jni调用机制是什么。

用uml画一个在你的项目中使用的设计模式。



面试中常问的非技术类问题:
1.简介一下你自己。

2.对自己做个评价。长处、缺点。
3.自己做过的项目,具体介绍一下。
4.实习经历,在实习过程中遇到哪些问题,怎样解决的?
5.你对公司有什么问题要问吗(对公司有什么要了解的)?
技术类的问题主要就看对技术的掌握程度和自己的综合能力了。
百度移动终端研发project师笔试题,题量不大,2个小时。有点难度。

1.写一个字符串逆序的程序,时间复杂度和空间复杂度最低,效率越高越好。
2.实质:二叉树的层序遍历,每层的结点用单链表输出。

3.1-N(N最大32000。且未知),内存仅仅有4K,找出当中的反复数
4.编程题,比較复杂。是个系统设计题,与《编程之美》中3.2,电话号码相应英语单词类似。
百度软件开发project师一面问题:
1.有101个数。为[1。100]之间的数,当中一个数是反复的。怎样寻找这个反复的数,其时间复杂度和空间复杂度是多少?
2.Java中抽象类与接口的差别。
3.进程与线程之间的联系与差别。

(多家公司都在问,好好研究一下)

4.谈谈对设计模式的认识与理解。简介一下你所知道的设计模式。

(多家公司都问。Android方向面试必考的)

5.线程、多线程相关(必问)
6.Linux经常使用的命令,shell编程。grep命令的使用。
7.海量数据查找或者排序,有资源限制要求。

(常考的)

建议:简历中对自己的专业技能要实事求是的写,突出自己的重点,不宜托大,面试官面试时提问的根据就是简历上的内容。百度的工作环境非常好。做技术的员工给人的感觉就是尽管人家的技术水平非常高,可是都比較谦逊。百度确实是一个不错的互联网公司。

Sina无线client开发project师面试
笔试的题目和7月22日实习生的题目几乎相同。面试主要问了:
1.二叉树的一些基础知识。
2.Java多线程。对stop()方法的认识,怎样安全的终止一个线程。
3.设计模式相关的问题
4.谈谈你对面向对象编程中继承的认识
5.排序算法
网易2012校招无线client开发笔试。题目不太难。比較基础。
1.面向对象编程中多态的概念。用伪代码展示出来。
2.斐波那契数列编程,效率越高越好(详见《编程之美》2.9)
3.60W长度为32的字符串一次性读入内存中,大约占用多少内存空间?
4.一个X向量n,怎样求其内部的最大距离。

5.在浏览器中输入http://www.163.com,从输入到页面在浏览器中显示出来,期间发生了哪些过程。越具体越好。
6.简介一下Android系统中的Activity,Service, Intent, ContentProvider组件。
7.编程解析一段josn格式内容,并在界面上显示出来。
8.英文阅读。考察英语能力。
9.网络应用分析,发挥自己的主观能动性和积累。
搜狗2012校招笔试
搜狗的题目出的非常全,全部职位的题目都在一份卷子上。涉及到数据结构、网络、操作系统、算法、软件project等多方面。依据自己所投递的职位,有针对性的选择要答的题目就可以。

金山2012校园招聘笔试
为了保险。做了运维的题目,难度不大,主要是网络和Linux操作系统方面的。略微准备一下就可以。答题的时候自我感觉良好。结果没收到面试通知。被歧视了,o(╯□╰)o
Android开发project师面试中常常会问到的问题
1.Activity的生命周期(最主要的)。
2.Android基本框架结构。
3.Android终止一个进程的方法,怎样彻底终止一个程序。
4.怎样改敲代码,改变android手机中返回键的功能(西安TCL研究院技术面试)。
一般来说,大公司的校园招聘中首先看的还是基础,有工作或者实习经验的会重点考虑。多问一些在实习中的项目细节,同一时候会问一些算法。建议认真研读《编程之美》《编程珠玑》之类的书籍。首先要做好充足的准备,打好基础,其次还要看一些算法、设计的内容,一面以后的技术面问的题目都有一定的挑战性。假设有实习或者项目经历,能够大大添加校招中简历筛选通过的机率。对于互联网公司。特别喜欢海量数据的排序、搜索,网上类似的资源非常多。能够看看。

技术更新永无止境。要时刻保持清醒的头脑,不断学习,充实自己。才干在竞争中不被淘汰,祝大家好运。找到心仪的工作。


=================================================================================================================

1.程序之间亲和性的理解
eoe的一个朋友的回答,要不我还真想不到是什么。

是问affinity吧
sdk文档中有具体说明
2.Task任务栈的分配
3.Activity怎样启动一个service
这个问题開始真是小看了,个人认为有两种:一种就是start一个service,第二种就是bind一个service。

百度android
笔试题
java怎样同步
wait 和 sleep的差别
java经常使用的数据结构 怎样实现
重载与重写差别
android 怎样提高稳定性
--------------------------------------------------------------
android 有哪些安全机制