Android面试题,看看你基础如何?
近期很多公司招聘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在AndroidAIDL中交换数据也很常见的。
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.AndroidService和Binder、AIDL你都熟练吗?
作为Android重要的后台服务,这些每个Android开发者都应该掌握,这也算是和JavaSE最大的不同了,具体的实例大家可以查看Android音乐播放器的源代码Music.git中的,这里不再赘述。
10.你用过哪款Android手机,有哪些优点和不足,相对于iPhone或Symbian又有哪些优缺点?
把这个作为面试题也是考察下,可以大概了解到它对Android的了解程度,多移动开发的认识。