蜜蜂职场文库 > 面试技巧 >

android面试题及答案

时间: 小龙 面试技巧

  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面试题及答案篇二

  1、 Android的四大组件是哪些,它们的作用?

  答:Activity:Activity是Android程序与用户交互的窗口,是Android构造块中最基本的一种,它需要为保持各界面的状态,做很多持久化的事情,妥善管理生命周期以及一些跳转逻辑

  service:后台服务于Activity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的食物,定义好需要接受的Intent提供同步和异步的接口

  Content Provider:是Android提供的第三方应用数据的访问方案,可以派生Content

  Provider类,对外提供数据,可以像数据库一样进行选择排序,屏蔽内部数据的存储细节,向外提供统一的借口模型,大大简化上层应用,对数据的整合提供了更方便的途径

  BroadCast Receiver:接受一种或者多种Intent作触发事件,接受相关消息,做一些简单处理,转换成一条Notification,统一了Android的事件广播模型

  2、 请介绍下Android中常用的五种布局。

  常用五种布局方式,分别是:FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)。

  一、FrameLayout:所有东西依次都放在左上角,会重叠,这个布局比较简单,也只能放一点比较简单的东西。

  二、LinearLayout:线性布局,每一个LinearLayout里面又可分为垂直布局(android:orientation=”vertical”)和水平布局(android:orientation=”horizontal” )。当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。

  三、AbsoluteLayout:绝对布局用X,Y坐标来指定元素的位置,这种布局方式也比较简单,但是在屏幕旋转时,往往会出问题,而且多个元素的时候,计算比较麻烦。

  四、RelativeLayout:相对布局可以理解为某一个元素为参照物,来定位的布局方式。主要属性有:相对于某一个元素android:layout_below、 android:layout_toLeftOf相对于父元素的地方android:layout_alignParentLeft、android:layout_alignParentRigh;

  五、TableLayout:表格布局,每一个TableLayout里面有表格行TableRow,TableRow里面可以具体定义每一个元素。每一个布局都有自己适合的方式,这五个布局元素可以相互嵌套应用,做出美观的界面。

  3、 android中的动画有哪几类,它们的特点和区别是什么

  答:两种,一种是Tween动画、还有一种是Frame动画。

  Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化; 另一种Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。

  4、 android 中有哪几种解析xml的类?官方推荐哪种?以及它们的原理和区别。

  答:XML解析主要有三种方式,SAX、DOM、PULL。常规在PC上开发我们使用Dom相对轻松些,但一些性能敏感的数据库或手机上还是主要采用SAX方式,SAX读取是单向的,优点:不占内存空间、解析属性方便,但缺点就是对于套嵌多个分支来说处理不是很方便。而DOM方式会把整个XML文件加载到内存中去,这里Android开发网提醒大家该方法在查找方面可以和XPath很好的结合如果数据量不是很大推荐使用,而PULL常常用在J2ME对于节点处理比较好,类似SAX方式,同样很节省内存,在J2ME中我们经常使用的KXML库来解析。

  5、 ListView的优化方案

  答:1、如果自定义适配器,那么在getView方法中要考虑方法传进来的参数contentView是否为null,如果为null就创建contentView并返回,如果不为null则直接使用。在这个方法中尽可能少创建view。

  2、给contentView设置tag(setTag()),传入一个viewHolder对象,用于缓存要显示的数据,可以达到图像数据异步加载的效果。

  3、如果listview需要显示的item很多,就要考虑分页加载。比如一共要显示100条或者更多的时候,我们可以考虑先加载20条,等用户拉到列表底部的时候再去加载接下来的20条。

  android面试题及答案篇三

  1. 横竖屏切换时候 activity 的生命周期

  1). 不设置 Activity 的 android:configChanges 时 , 切屏会重新调用各个生命周期 , 切横屏时会执行一次 , 切竖屏时会执行两次 .

  2). 设置 Activity 的 Android:configChanges=‖orientation‖ 时 , 切屏还是会重新调用各个生命周期 , 切横、竖屏时只会执行一次 .

  3). 设置 Activity 的 Android:configChanges=‖orientation|keyboardHidden‖ 时 , 切屏不会重新调用各个生命周期 , 只会执行 onConfigurationChanged 方法 .

  2.android 中的动画有哪几类,它们的特点和区别是什么 ?

  两种,一种是 Tween 动画、还有一种是 Frame 动画。 Tween 动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化 ; 另一种 Frame 动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。

  3. 一条最长的短信息约占多少 byte?

  中文70( 包括标点) ,英文160 ,160 个字节。

  4.handler 机制的原理

  andriod 提供了 Handler 和 Looper 来满足线程间的通信。 Handler 先进先出原则。 Looper 类用来管理特定线程内对象之间的消息交换 (Message Exchange) 。

  1)Looper: 一个线程可以产生一个 Looper 对象,由它来管理此线程里的 Message Queue( 消息队列 ) 。

  2)Handler: 你可以构造 Handler 对象来与 Looper 沟通,以便 push 新消息到 Message Queue 里; 或者接收 Looper 从 Message Queue 取出 ) 所送来的消息。

  3) Message Queue( 消息队列 ): 用来存放线程放入的消息。

  4) 线程: UI thread 通常就是 main thread ,而 Android 启动程序时会替它建立一个 Message Queue 。

  5. 什么是嵌入式实时操作系统 , Android 操作系统属于实时操作系统吗 ?

  嵌入式实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。主要用于工业控制、军事设备、航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。又可分为软实时和硬实时两种,而 android 是基于linux 内核的,因此属于软实时。

  
看了“android面试题及答案”的人还看过:

1.

2.

3.

4.

5.

50345