android面试指南_android面试及答案
android面试指南由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“android面试及答案”。
1、activity的生命周期。
activity主要生命周期的方法说明:
1)onCreate(Bundle savedInstanceState):创建activity时调用。设置在该方法中,还以Bundle的形式提供对以前储存的任何状态的访问!
2)onStart():activity变为在屏幕上对用户可见时调用。
3)onResume():activity开始与用户交互时调用(无论是启动还是重新启动一个活动,该方法总是被调用的)。
4)onPause():activity被暂停或收回cpu和其他资源时调用,该方法用于保存活动状态的,也是保护现场,压栈吧!
5)onStop():activity被停止并转为不可见阶段及后续的生命周期事件时调用。
6)onRestart():重新启动activity时调用。该活动仍在栈中,而不是启动新的活动。
7)onDestroy():activity被完全从系统内存中移除时调用,该方法被
2.横竖屏切换时候activity的生命周期
3.android中的动画有哪几类,它们的特点和区别是什么
4.handler机制的原理
5.说说activity,intent,service是什么关系
6.android中线程与线程,进程与进程之间如何通信
7.widget相对位置的完成在antivity的哪个生命周期阶段实现
8.说说mvc模式的原理,它在android中的运用
9.说说在android中有哪几种数据存储方式
10.android中有哪几种解析xml的类,官方推荐哪种?以及它们的原理和区别 一,listview你是怎么优化的。
二,view的刷新,之前说过
三,IPC及原理
四,Android多线程
五,Android为什么要设计4大组件,他们之间的联系,不设计行不行(主要是为了实现MVC模式,然而java中最难的模式也是这个,很少有产品能将这个模式做得很好【Technicolor的面试官问的这个】
六,service的周期,activity的周期,谈下你对Android内部应用的了解,比如他做电话,以及联系人等等应用。框架层有很多东西还是多看看,熟悉Android怎么做的,不管你做应用程开发还是应用框架层开发很有好处的。
在就是你项目经验,突出你遇到什么难点,然后是怎么解决的!尽量将每个技术点凸显出来,当然面试官有时候会为了体现你是否真正做过,他会问你,你在这个应用中做那个模块,用了多少个类之类的问题。
偶尔有的面试官会问你,你用过Android自带的单元测试了没,怎么用的?当然我面试过很多家单位,有的是做平板,手机,数字电视,有的是做出 个erp之类的客户端等等,出于前面的三个,基本上都是将Android的全部改掉,如果真正要做Android的话,大家要学的还很多。
总之,一句话,什么样的面试官都有,去面试的时候要做好一切心理准备,不管是技术还是基础都得扎实。一个人的交谈能力也很重要,总之不是非常标准 的普通话,最起码你说的得让别人听得懂,而且得把面试官讲得非常彻底,这样你获得offer的机会更大,谈工资也有优势~~当然曾经一家公司的面试官跟我 说过,技术是不惜钱的,只要你有能力,多少钱他都请。_
确实,来北京求职期间,牛人真的很多,而且有的面试官也非常好,给了很多忠肯的意见。并不是每个面试官都特想为难你的~最主要的还是想知道你的技术,因为他们也是吃公司饭,得为这个负责。
Basic:
1.基本的UI控件和布局文件
2.UI配套的Adapter的使用
3.Activity, Intent,Service,broadCast Receiver他们的生命周期管理熟悉一下
4.操作手机上的数据库SQLite应用
Advanced_1:
1.为什么看好 Android
2.现在在公司做哪些工作(关于 Android)
3.Android 的框架以及一些基础知识
4.Android 一些方面的领悟(如Android框架的 IoC特性,View System 的状态机机制等)
Advanced_2:
1.对多线程的运用和理解,及多线程之间handle的传值。
2.对android 虚拟机的理解,包括内存管理机制垃圾回收机制。
3.framework工作方式及原理,Activity是如何生成一个view的,机制是什么。
4.android本身的一些限制,不如apk包大小限制,读取大文件 时的时间限制。
5.Linux中跨进程通信的集中方式
Android_4:
1.dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念
2.sim卡的EF 文件有何作用
3.AT命令的User case的概念
4.嵌入式操作系统内存管理有哪几种,各有何特性
5.什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗?
6.一条最长的短信息约占多少byte?
补充:
近期很多公司招聘Android程序员,就一些常见的Android面试基础题做下总结,看看你能做出多少道?
1.Intent的几种有关Activity启动的方式有哪些,你了解每个含义吗? 这里Android123提示大家,Intent的一些标记有
FLAG_ACTIVITY_BROUGHT_TO_FRONT、FLAG_ACTIVITY_CLEAR_TOP、FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET、FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS、FLAG_ACTIVITY_MULTIPLE_TASK和 FLAG_ACTIVITY_NEW_TASK 等。每种含义大家看SDK文档和具体跑下这样你的记忆会更深刻些。
2.Activity和Task的启动模式有哪些? 每种含义是什么?
有关在AndroidManifest.xml中的android:launchMode定义,主要有standard、singleTop、singleTask和singleInstance,同时对于android:taskAffinity这些问题大家也要了解,Android开发网在 以前的文章中讲过,不过很多开发者仍然不是很清楚,这些基础问题我们以后仍然会再次总结。
3.通过Intent传递一些二进制数据的方法有哪些?
1).使用Serializable接口实现序列化,这是Java常用的方法。
2).实现Parcelable接口,这里Android的部分类比如Bitmap类就已经实现了,同时Parcelable在Android AIDL中交换数据也很常见的。
4.能说下Android应用的入口点吗?
在Google的虚拟机中Application实例中已经实现了main方法,有关具体的Application介绍可以参考 Android程序的入口点是什么,不是Main()吗
5.Java基础问题,说说HashSet和HashTable的区别?
这个相信Java程序员都知道HashSet相对于HashMap就是不能存放重复的数据,对于HashTable来说,存放的数据不能出现key或value为null这样的情况。
6.Java基础问题,用Java的集合类写下广度优先搜索.这个属于基础数据结构问题,通过队列处理一层一层,相对于深度优先的栈处理方式来说更实用一些。
7.Android都有哪些XML解析器,都熟练掌握吗?
这里XmlPull、SAX和DOM相信做过Web开发的都已经滚瓜烂熟了。
8.SQLite支持事务吗? 添加删除如何提高性能?
SQLite作为轻量级的数据库,比MySQL还小,但支持SQL语句查询,提高性能可以考虑通过原始经过优化的SQL查询语句方式处理。
9.Android Service和Binder、AIDL你都熟练吗?
作为Android重要的后台服务,这些每个Android开发者都应该掌握,这也算是和Java SE最大的不同了,具体的实例大家可以查看Android音乐播放器的源代码Music.git中的,这里不再赘述。
10.你用过哪款Android手机,有哪些优点和不足,相对于iPhone或Symbian又有哪些优缺点?
把这个作为面试题也是考察下,可以大概了解到它对Android的了解程度,多移动开发的认识。
转自: