1、单选题1.WebView 中可以用来处理 js 中警示,确认等对话框的是( C)A.WebSettings B.WebViewClient C.WebChromeClient D.WebViewChrome 2.假设 assets 目录下有文件结构 html/hello.html,用 loadUrl()方法将该网页加载至 webView时,需传入的参数是 (B)A. file:/asset/html/hello.html B.file:/android_asset/html/hello.html C.file:/androidasset/hello.html D.file:/assets/ht
2、ml/hello.html 3.下列不属于补间动画相关类的是(B)A.TranslateAnimation B.FrameAnimation C.RotateAnimation D.AlphaAnimation 4.Android 中网络互连中需要获取状态码,根据状态码来判断请求是否已经完成,下列状态码表示请求完成的是(D) A.100 B.202 C.404 D.200 5.关于 ImageSwitcher 说法错误的是: ( B ) A.ImageSwitcher 里可以通过 Alpha 设定转换时候的透明位B.在使用一个 ImageSwitcher 之前,不一定要调用 setFactor
3、y 方法 C.setInAnimation 是设置资源被读入到这个 ImageSwitcher 的时候动画效果 D.setOutAnimation 是资源文件从这个 ImageSwitcher 里消失的时候要实现的动画效果 6.建立蓝牙连接时通过_D_方法来获取 BluetoothAdapter 对象 A.BluetoothAdapter.getBluetoothAdapterAdapter() B.BluetoothAdapter adapter=new BluetoothAdapter(); C.BluetoothAdapter.BluetoothAdapterAdapter();D. B
4、luetoothAdapter.getDefaultAdapter() 7.关于 Handler 的说法不正确的是( A ) A.它实现不同进程间通信的一种机制 B.它避免了在新线程中刷新 UI 的操作C.它采用队列的方式来存储 Message D.它实现不同线程间通信的一种机制 8.Vector 和 ArrayList 的主要区别是(B): A. ArrayList 内部基于链表,而 Vector 是基于数组的 B. Vector 的大部分方法做了同步,而 ArrayList 没有同步C. Vector 是可串行化的,而 ArrayList 不是 D. Vector 实现了 RandomAc
5、cess,而 ArrayList 没有9.下列属于 SAX 解析 xml 文件的优点的是( B ) A.将整个文档输在内存中,便于操作,支持删除,修改,重新排列等多种功能 B.不用事先调入整个文档,占用资源少 C.整个文档调入内存,浪费时间和空间 D.不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会消失10.String a1=“abc“; String a2=“abc“; String a3=“abcd“; 总共创建 ( A )个 String 对象。 A.2 B.3 C.5 D.6多选题1.在添加第一个 appwidget 窗口小部件时,会执行的方法是(ABD)A.o
6、nReceive B.onEnabled C.onDisabled D.onUpdate 2.下列属于 SOAP 优点的是(ABCD) A,SOAP 与编程语言无关。SOAP 可以使用任何语言来完成 B,SOAP 是完全和厂商无关。 C,SOAP 与平台无关 D,SOAP 是简单的,可扩展的3.下列属于 SAX 解析 XML 需要用到的类和接口是(BCD) A.DocumentBuilder B.SAXParser C.DefaultHandler D.SAXParserFactory 4.在使用蓝牙必须获取的权限是(AD) A. B. C. D. 5.Chronometer 类的重要方法(A
7、BC )A.start B.stop C.setBase D.destory 简答题1.oom 是什么? 如何避免?当程序需要申请一段“大”内存,但是虚拟机没有办法及时的给到,即使做了 GC 操作以后这就会抛出 OutOfMemoryException 也就是 OOM避免:1)减少内存对象的占用I.ArrayMap/SparseArray 代替 hashmapII.避免在 android 里面使用 EnumIII.减少 bitmap 的内存占用IV.减少资源图片的大小,过大的图片可以考虑分段加载内存对象的重复利用2)大多数对象的复用,都是利用对象池的技术。I.listview/gridview
8、/recycleview contentview 的复用II.inBitmap 属性对于内存对象的复用 ARGB_8888/RBG_565/ARGB_4444/ALPHA_8这个方法在某些条件下非常有用,比如要加载上千张图片的时候。III.避免在 ondraw 方法里面 new 对象IV.StringBuilder 代替 +2.SurfaceView III. observer 我们在使用监听器的时候,往往是 addxxxlistener,但是当我们不需要的时候,忘记 removexxxlistener,就容易内存 leak。IV.各种数据链接没有关闭,数据库 contentprovider,
9、io,sokect 等。cursorV.内部类:java 中的内部类(匿名内部类),会持有宿主类的强引用 this。所以如果是 new Thread 这种,后台线程的操作,当线程没有执行结束时,activity 不会被回收。Context 的引用,当 TextView 等等都会持有上下文的引用。如果有 static drawable,就会导致该内存无法释放。VI.单例单例 是一个全局的静态对象,当持有某个复制的类 A 是,A 无法被释放,内存 leak。4.横竖屏切换时 Activity 的生命周期切换时的生命周期跟清单文件里的配置有关系。不设置 Activity 的 android:conf
10、igChanges 时,切屏会重新调用各个生命周期默认首先销毁当前 activity,然后重新加载。设置 Activity android:configChanges=“orientation|keyboardHidden|screenSize“时,切屏不会重新调用各个生命周期,只会执行 onConfigurationChanged 方法。通常在游戏开发, 屏幕的朝向都是写死的。5.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。