android笔试题及答案.docx
- 文档编号:229507
- 上传时间:2022-10-07
- 格式:DOCX
- 页数:5
- 大小:18.82KB
android笔试题及答案.docx
《android笔试题及答案.docx》由会员分享,可在线阅读,更多相关《android笔试题及答案.docx(5页珍藏版)》请在冰豆网上搜索。
单选题
1.WebView中可以用来处理js中警示,确认等对话框的是(C)
A.WebSettingsB.WebViewClientC.WebChromeClientD.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/html/hello.html
3.下列不属于补间动画相关类的是(B)
A.TranslateAnimation
B.FrameAnimation
C.RotateAnimation
D.AlphaAnimation
4.Android中网络互连中需要获取状态码,根据状态码来判断请求是否已经完成,下列状
态码表示请求完成的是(D)
A.100B.202C.404D.200
5.关于ImageSwitcher说法错误的是:
(B)
A.ImageSwitcher里可以通过Alpha设定转换时候的透明位
B.在使用一个ImageSwitcher之前,不一定要调用setFactory方法
C.setInAnimation是设置资源被读入到这个ImageSwitcher的时候动画效果
D.setOutAnimation是资源文件从这个ImageSwitcher里消失的时候要实现的动画效果
6.建立蓝牙连接时通过_D_方法来获取BluetoothAdapter对象
A.BluetoothAdapter.getBluetoothAdapterAdapter()
B.BluetoothAdapteradapter=newBluetoothAdapter();C.BluetoothAdapter.BluetoothAdapterAdapter();
D.BluetoothAdapter.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实现了RandomAccess,而ArrayList没有
9.下列属于SAX解析xml文件的优点的是(B)
A.将整个文档输在内存中,便于操作,支持删除,修改,重新排列等多种功能
B.不用事先调入整个文档,占用资源少
C.整个文档调入内存,浪费时间和空间
D.不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会消失
10.Stringa1="abc";Stringa2="abc";Stringa3="abcd";总共创建(A)个String对象。
A.2B.3C.5D.6
多选题
1.在添加第一个appwidget窗口小部件时,会执行的方法是(ABD)
A.onReceiveB.onEnabledC.onDisabledD.onUpdate
2.下列属于SOAP优点的是(ABCD)
A,SOAP与编程语言无关。
SOAP可以使用任何语言来完成B,SOAP是完全和厂商无关。
C,SOAP与平台无关
D,SOAP是简单的,可扩展的
3.下列属于SAX解析XML需要用到的类和接口是(BCD)
A.DocumentBuilderB.SAXParserC.DefaultHandlerD.SAXParserFactory
4.在使用蓝牙必须获取的权限是(AD)
A. name="android.permission.BLUETOOTH"/> B. name="android.permission.INTERNET"/> C. name="android.permission.BIND_BLUETOOTH"/>D. name="android.permission.BLUETOOTH_ADMIN"/> 5.Chronometer类的重要方法(ABC) A.startB.stopC.setBaseD.destory 简答题 1.oom是什么? 如何避免? 当程序需要申请一段“大”内存,但是虚拟机没有办法及时的给到,即使做了GC操作以后这就会抛出OutOfMemoryException也就是OOM 避免: 1)减少内存对象的占用 I.ArrayMap/SparseArray代替hashmap II.避免在android里面使用Enum III.减少bitmap的内存占用 IV.减少资源图片的大小,过大的图片可以考虑分段加载 内存对象的重复利用 2)大多数对象的复用,都是利用对象池的技术。 I.listview/gridview/recycleviewcontentview的复用 II.inBitmap属性对于内存对象的复用ARGB_8888/RBG_565/ARGB_4444/ALPHA_8 这个方法在某些条件下非常有用,比如要加载上千张图片的时候。 III.避免在ondraw方法里面new对象 IV.StringBuilder代替+ 2.SurfaceView&View的区别 view的更新必须在UIthread中进行 surfaceview会单独有一个线程做ui的更新。 surfaceview支持openGL绘制。 3.什么时候会发生内存泄露? 内存泄露的根本原因? 长生命周期的对象持有短生命周期的对象。 短周期对象就无法及时释放。 I. 静态集合类引起内存泄露 II.remove方法无法删除set集 Objects.hash(firstName,lastName); III.observer我们在使用监听器的时候,往往是addxxxlistener,但是当我们不需要的时候,忘记removexxxlistener,就容易内存leak。 IV.各种数据链接没有关闭,数据库contentprovider,io,sokect等。 cursor V.内部类: java中的内部类(匿名内部类),会持有宿主类的强引用this。 所以如果是newThread这种,后台线程的操作,当线程没有执行结束时,activity不会被回收。 Context的引用,当TextView等等都会持有上下文的引用。 如果有staticdrawable,就会导致该内存无法释放。 VI.单例 单例是一个全局的静态对象,当持有某个复制的类A是,A无法被释放,内存leak。 4.横竖屏切换时Activity的生命周期 切换时的生命周期跟清单文件里的配置有关系。 不设置Activity的android: configChanges时,切屏会重新调用各个生命周期默认首先销毁当前activity,然后重新加载。 设置Activity android: configChanges="orientation|keyboardHidden|screenSize"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法。 通常在游戏开发, 屏幕的朝向都是写死的。 5.handler机制的原理 andriod提供了Handler和Looper来满足线程间的通信。 Handler先进先出原则。 Looper类用来管理特定线程内对象之间的消息交换(MessageExchange)。 1)Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的MessageQueue(消息队列)。 2)Handler: 你可以构造Handler对象来与Looper沟通,以便push新消息到MessageQueue里;或者接收Looper从MessageQueue取出)所送来的消息。 3)MessageQueue(消息队列): 用来存放线程放入的消息。 4)线程: UIthread通常就是mainthread,而Android启动程序时会替它建立一个MessageQueue。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- android 笔试 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)