android笔试题及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单选题

中可以用来处理js中警示,确认等对话框的是(C)

2.假设assets目录下有文件结构html/,用loadUrl()方法将该网页加载至 webView 时,需传入的参数是(B)

A.

B.

C.

D.

3.下列不属于补间动画相关类的是(B)

中网络互连中需要获取状态码,根据状态码来判断请求是否已经完成,下列状

态码表示请求完成的是(D)

5.关于ImageSwitcher 说法错误的是:( B )

里可以通过Alpha设定转换时候的透明位

B.在使用一个ImageSwitcher之前,不一定要调用setFactory方法

是设置资源被读入到这个ImageSwitcher的时候动画效果

是资源文件从这个ImageSwitcher里消失的时候要实现的动画效果

6.建立蓝牙连接时通过_D_方法来获取BluetoothAdapter对象

D. ()

7.关于Handler的说法不正确的是( A )

A.它实现不同进程间通信的一种机制

B.它避免了在新线程中刷新UI的操作

C.它采用队列的方式来存储Message

D.它实现不同线程间通信的一种机制

8.Vector和ArrayList的主要区别是(B):

A. ArrayList内部基于链表,而Vector是基于数组的

B. Vector的大部分方法做了同步,而ArrayList没有同步

C. Vector是可串行化的,而ArrayList不是

D. Vector实现了RandomAccess,而ArrayList没有

9.下列属于SAX解析xml文件的优点的是(B )

A.将整个文档输在内存中,便于操作,支持删除,修改,重新排列等多种功能

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

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

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

a1="abc"; String a2="abc"; String a3="abcd"; 总共创建( A )个String对象。

多选题

1.在添加第一个appwidget窗口小部件时,会执行的方法是(ABD)

2.下列属于SOAP优点的是(ABCD)

A,SOAP 与编程语言无关。SOAP 可以使用任何语言来完成 B,SOAP 是完全和厂商无关。 C,SOAP 与平台无关D,SOAP 是简单的,可扩展的

3.下列属于SAX解析XML需要用到的类和接口是(BCD)

A.DocumentBuilder

4.在使用蓝牙必须获取的权限是(AD)

5.Chronometer类的重要方法(ABC)

简答题

1.oom是什么如何避免

当程序需要申请一段“大”内存,但是虚拟机没有办法及时的给到,即使做了GC操作以后这就会抛出OutOfMemoryException 也就是OOM

避免:

1)减少内存对象的占用

SparseArray代替hashmap

II.避免在android里面使用Enum

III.减少bitmap的内存占用

IV.减少资源图片的大小,过大的图片可以考虑分段加载

内存对象的重复利用

2)大多数对象的复用,都是利用对象池的技术。

gridview/recycleview contentview的复用

属性对于内存对象的复用ARGB_8888/RBG_565/ARGB_4444/ALPHA_8

这个方法在某些条件下非常有用,比如要加载上千张图片的时候。

III.避免在ondraw方法里面 new对象

代替 +

& View 的区别

view的更新必须在UI thread中进行

surfaceview会单独有一个线程做ui的更新。

surfaceview 支持open GL绘制。

3.什么时候会发生内存泄露内存泄露的根本原因

长生命周期的对象持有短生命周期的对象。短周期对象就无法及时释放。

I. 静态集合类引起内存泄露

方法无法删除set集(firstName, lastName);

III. observer 我们在使用监听器的时候,往往是addxxxlistener,但是当我们不需要的时候,忘记removexxxlistener,就容易内存leak。

IV.各种数据链接没有关闭,数据库contentprovider,io,sokect等。cursor

V.内部类:

java中的内部类(匿名内部类),会持有宿主类的强引用this。

所以如果是new Thread这种,后台线程的操作,当线程没有执行结束时,activity不会被回收。

Context的引用,当TextView 等等都会持有上下文的引用。如果有static drawable,就会导致该内存无法释放。

VI.单例

单例是一个全局的静态对象,当持有某个复制的类A是,A无法被释放,内存leak。

4.横竖屏切换时Activity的生命周期

切换时的生命周期跟清单文件里的配置有关系。

不设置Activity的android:configChanges时,切屏会重新调用各个生命周期默认首先销毁当前activity,然后重新加载。

设置Activity android:configChanges="orientation|keyboardHidden|screenSize"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法。

通常在游戏开发, 屏幕的朝向都是写死的。

机制的原理

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。

相关文档
最新文档