Android面试题

Java代码 
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在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的了解程度,多移动开发的认识。

你可能感兴趣的:(android)