首页 > 就业 > 面试

安卓开发面试问题

安卓开发面试问题



安卓开发面试问题

  Android面试题

  1. 下列哪些语句关于内存回收的说明是正确的? (b ) A、 程序员必须创建一个线程来释放内存

  B、 内存回收程序负责释放无用内存

  C、 内存回收程序允许程序员直接释放内存

  D、 内存回收程序可以在指定的时间释放内存对象

  2. 下面异常是属于Runtime Exception 的是(abcd)(多选) A、ArithmeticException

  B、IllegalArgumentException

  C、NullPointerException

  D、BufferUnderflowException

  3. Math.round(11.5)等于多少(). Math.round(-11.5)等于多少(c). c A、11 ,-11 B、11 ,-12 C、12 ,-11 D、12 ,-12

  4. 下列程序段的输出结果是:(b )

  void complicatedexpression_r(){

  int x=20, y=30;

  boolean b;

  b=x>50&&y>60||x>50&&y<-60||x<-50&&y>60||x<-50&&y<-60;

  System.out.println(b);

  }

  A、true B、false C、1 D、011.activity5. 对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行(d) A、onPause() B、onCreate() C、 onResume() D、onStart()

  6. Intent传递数据时,下列的数据类型哪些可以被传递(abcd)(多选) A、Serializable B、charsequence C、Parcelable D、Bundle

  7. android 中下列属于Intent的作用的是(c) A、实现应用程序间的数据共享

  B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失

  C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带

  D、处理一个应用程序整体性的工作

  8. 下列属于SAX解析xml文件的优点的是(b) A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能

  B、不用事先调入整个文档,占用资源少

  C、整个文档调入内存,浪费时间和空间

  D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会消失

  百度Android开发面试题

  1、 Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念

  DVM指Dalvik的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念。

  2、sim卡的EF 文件有何作用

  sim卡的文件系统有自己规范,主要是为了和手机通讯,sim本

  身可以有自己的操作系统,EF就是作存储并和手机通讯用的

  3、嵌入式操作系统内存管理有哪几种,各有何特性 ?

  页式,段式,段页,用到了MMU,虚拟空间等技术

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

  嵌入式实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的`嵌入式操作系统。主要用于工业控制、军事设备、

  航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。又可分为软实时和硬实时两种,而android是基于linux内核的,因此属于软实时。

  5、一条最长的短信息约占多少byte?

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

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

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

  7、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。

  8、说说mvc模式的原理,它在android中的运用

  MVC(Model_view_contraller)” 模型_视图_控制器”。 MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要 Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会

  从潜在的Model中获取数据来刷新自己。

  View重绘和内存泄露的好像是面试经常问的问题

  1. View的刷新:

  在需要刷新的地方,使用handle.sendmessage发送信息,然后在handle的getmessage里面执行invaliate或者postinvaliate.

  2. GC内存泄露

  出现情况:

  1.数据库的cursor没有关闭

  2.构造adapter时,没有使用缓存contentview

  衍生listview的优化问题-----减少创建view的对象,充分使用contentview,可以使用一静态类来优化处理getview的过程/

  3.Bitmap对象不使用时采用recycle()释放内存

  4.activity中的对象的生命周期大于activity

  调试方法: DDMS==> HEAPSZIE==>dataobject==>[Total Size]

    版权声明:此文自动收集于网络,若有来源错误或者侵犯您的合法权益,您可通过邮箱与我们取得联系,我们将及时进行处理。

    本文地址:https://www.gunzhua.com/jiuye/mianshi/492787.html

相关内容

热门阅读
随机推荐