完整word版移动应用开发复习.docx
- 文档编号:2753788
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:34
- 大小:387.08KB
完整word版移动应用开发复习.docx
《完整word版移动应用开发复习.docx》由会员分享,可在线阅读,更多相关《完整word版移动应用开发复习.docx(34页珍藏版)》请在冰点文库上搜索。
完整word版移动应用开发复习
选择题
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 )
A、11 ,-11 B、11 ,-12 C、12 ,-11 D、12 ,-12
4. android 中下列属于Intent的作用的是(c)
A、实现应用程序间的数据共享
B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失
C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带
D、处理一个应用程序整体性的工作
5.下列属于SAX解析xml文件的优点的是(b)
A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能
B、不用事先调入整个文档,占用资源少
C、整个文档调入内存,浪费时间和空间
D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会消失
6.下面的对自定style的方式正确的是(a)
A、
B、
C、
layout_width">fill_parent D、 layout_width">fill_parent 7.在android中使用Menu时可能需要重写的方法有(ac)。 (多选) A、onCreateOptionsMenu() B、onCreateMenu() C、onOptionsItemSelected() D、onItemSelected() 8. 在android中使用SQLiteOpenHelper这个辅助类时,可以生成一个数据库,并可以对数据库版本进行管理的方法可以是(ab) A、getWriteableDatabase() B、getReadableDatabase() C、getDatabase() D、getAbleDatabase() 9. android 关于service生命周期的onCreate()和onStart()说法正确的是(ad)(多选题) A、当第一次启动的时候先后调用onCreate()和onStart()方法 B、当第一次启动的时候只会调用onCreate()方法 C、如果service已经启动,将先后调用onCreate()和onStart()方法 10.下面在AndroidManifest.xml文件中注册BroadcastReceiver方式正确的(a) A、 name="NewBroad"> name="android.provider.action.NewBroad"/> B、 name="NewBroad"> android: name="android.provider.action.NewBroad"/> C、 name="NewBroad"> name="android.provider.action.NewBroad"/> D、 name="NewBroad"> name="android.provider.action.NewBroad"/> 11. 关于ContenValues类说法正确的是(a) A、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值都是基本类型 B、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是任意类型,而值都是基本类型 C、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名,可以为空,而值都是String类型 D、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值也是String类型 选择题 1、关于android进程,说法不正确的是( B ) A、组件运行所在的进程,是由androidManifest.xml决定,它可以指定该组件运行于哪个进程。 B、背景进程是不为用户所见的Activity,但是还会有可能被用户看到,所以它不能被杀死 C、当急需内存时,android会决定优先关闭那些空闲的进程 D、可视进程一般不会不被系统所杀死 2、Matrix类的作用( A ) A、可以存储缩小或放大比列 B、存储文件中的图片信息 C、存储资源中的图片信息 D、存储内存中的图片信息 3、关于主题的说法,错误的是( D ) A、它是属性集合 B、它可以在程序中来设置 C、它通常用于一个Activity或所有Activity上 D、它可以用于单个TextView上 4、setOnTouchEvent 设置返回值为true 和 false有何区别? 以下说法较准确是( C ) A、没有区别,都能对事件进行监听 B、设置为true时 只能在移动时获得一次监听事件,false则可以多次 C、设置为false是 ,在处理一次监听事件后,系统将抛弃该次事件 D、返回true表示这个消息已经被处理结束,后续的handler不再接收到这个消息 简答题 12. 页面上现有ProgressBar控件progressBar,请用书写线程以10秒的的时间完成其进度显示工作。 (10分) public class ProgressBarStu extends Activity { private ProgressBar progressBar = null; protected void onCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.progressbar); //从这到下是关键 progressBar = (ProgressBar)findViewById(R.id.progressBar); Thread thread = new Thread(newRunnable() { public void run() { int progressBarMax =progressBar.getMax(); try { while(progressBarMax! =progressBar.getProgress()) { intstepProgress = progressBarMax/10; intcurrentprogress = progressBar.getProgress(); progressBar.setProgress(currentprogress+stepProgress); Thread.sleep(1000); } } catch(InterruptedException e) { e.printStackTrace(); } } }); thread.start(); //关键结束 } } 13. 注册广播有几种方式,这些方式有何优缺点? 请谈谈Android引入广播机制的用意。 1. 静态AndroidManifest.xml注册,2.动态registerReceiver. 静态注册可以伴随着App启动而存在,动态注册只是在代码运行时注册,如果代码没有执行则该广播接收不到消息。 Android引入广播的机制用意是方便组件之前进行数据交互。 14. 什么情况会导致Force Close ? 如何避免? 能否捕获导致其的异常? 未处理的异常出现时会导致ForceClose,UI界面中Null指针导致ForceClose,当出现异常时,通过Logcat查看日志信息来判断原因。 尽量在可能出现异常的地方加入异常处理。 15. 简要解释一下activity、 intent 、intent filter、service、Broadcase、BroadcaseReceiver Activity: 表示一个用户交互界面 Intent: 消息封装对象,用来在Android组件间进行数据通信。 intentFilter: 消息过滤器,用来过滤不响应的消息,保留要处理的消息。 Service: 后台长期运行的Android组件。 Broadcast: 广播,用来发送异步广播。 BroadcaseReceiver: 广播接收器,用来接收响应的广播消息。 16. 简要解释下Handler的工作原理。 andriod提供了Handler 和 Looper 来满足线程间的通信。 Handler先进先出原则。 Looper类用来管理特定线程内对象之间的消息交换。 1)Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的MessageQueue(消息队列)。 2)Handler: 你可以构造Handler对象来与Looper沟通,以便push新消息到MessageQueue里;或者接收Looper从Message Queue取出)所送来的消息。 3) Message Queue(消息队列): 用来存放线程放入的消息。 4)线程: UIthread 通常就是main thread,而Android启动程序时会替它建立一个MessageQueue。 17.Android应用容易发生ANR错误,请简述几种避免ANR错误的办法。 不要在Service,Activity,BroadCastReceiver中进行长时间耗时、阻塞、等待、睡眠等操作,上述操作通过AsyncTask或Handler机制实现。 18. Android应用对于内存的大小是有限制的,请简述几种解决办法。 1.可以在 manifest 文件中的 3. 修改/system/build.prop配置文件,dalvik.vm.heapsize=32m 4. 在使用大量内存之前调用ActivityManager中的getMemoryClass()来获得当前应用可用内存大小进行检测。 5. 当使用Bitmap时,decode bitmap 的时候,尽量配置下Options,例如: inSameSize,Bitmap使用完以后,调用 bitmap.recycle()来释放内存。 6. 如果应用是基于图片的应用,尽量采用LazyLoad和DymanicRecycle 7. decode bitmap 的时候,将decode代码 try catch 出来,catch oom error,避免程序crash,可以在catch里面做一些释放内存操作 1、描述Android平台体系结构的层次划分,并说明各个层次的作用。 答: Android 是基于Linux内核的软件平台和操作系统,采用了软件堆层的架构, 共分为4层。 第一层是Linux 内核,提供由操作系统内核管理的底层基础功能;第二层是中间件层,由函数库和Android运行时构成;第三层是应用程序框架层,提供了Android平台基本的管理功能和组件重用机制;第四层是应用程序层,提供了一系列核心应用程序。 2、简述Android系统的四种基本组件Activity、Service、BroadcaseReceiver和ContentProvider的用途。 答: Activity是android程序的呈现层,显示可视化的用户界面,并接受与用户交互所产生的界面事件,与“窗体”的概念非常相似。 Android应用程序可以包含一个或多个Activity,一般在程序启动后会呈现一个Activity,用于提示用户程序已经正常启动。 Activity在界面上的表现形式一般是全屏窗体,也可以是非全屏悬浮窗体或对话框。 Service一般用于没有用户界面,但需要长时间在后台运行的应用。 例如在播放MP3音乐时,使用service播放MP3音乐,可以在关闭播放器界面的情况下长时间播放MP3音乐,并通过对外公开service的通信接口,控制MP3音乐播放的启动,暂停和停止。 Broadcasereceiver是用来接收并响应广播消息的组件。 大部分广播消息是由系统产生的,例如时区改变,电池电量低或语言选项改变等,但应用程序也可以产生广播消息,例如数据下载完毕等。 Broadcasereceiver不包含任何用户界面,但可以通过启动activity或者notification通知用户接收到重要信息。 Notification能够通过多种方法提示用户,包括闪动背景灯,震动设备,发出声音或者在状态栏上放置一个持久的图标等。 Contentprovider是android系统提供的一种标准的共享数据的机制,应用程序可以通过contentprovider访问其他应用程序的私有数据。 私有数据可以是存储在文件系统中的文件,也可以是SQlite中的数据库。 Android系统内部也提供一些内置的contentprovider,能够为应用程序提供重要的数据信息,例如联系人信息和通话记录等。 3、简述Activity生命周期的四种状态,以及状态之间的变换关系。 答: Activity生命周期指activity从启动到销毁的过程,在这个过程中,activity一般表现为四种状态,分别是活动状态,暂停状态,停止状态和非活动状态。 1,活动状态,当activity在用户界面中处于最上层,用户完全看不到,能够与用户进行交互,则这个activity处于活动状态。 2,暂停状态,当activity在界面上被部分遮挡,该activity处于暂停状态。 3,停止状态,当activity在界面上能完全不被用户看到,也就是说这个activity被其他activity全部遮挡,则这个activity处于停止状态。 4,非活动状态,活动状态暂停状态和停止状态是activity的主要状态,不在以上三种状态的中activity则处于非活动状态。 Activity启动后处于活动状态,此时的activity位于界面的最上层,是与用户正在进行交互的组件,因此android系统会努力保证处于活动状态activity的资源需求,资源紧张时可终止其他状态的activity;如果用户启动了新的activity,部分遮挡了当前的activity,或新的activity是半透明的,则当前的activity转换为暂停状态,android系统仅在为处于活动状态的activity释放资源时,才终止处于暂停状态的activity: 如果用户启用了新的activity完全遮挡了当前的activity,则当前的activity转变为停止状态,停止状态的activity将优先被终止;活动状态的activity被用户关闭后,或暂停状态或停止状态的activity被系统终止后,activity便进入了非活动状态。 5、简述Android系统支持的三种菜单。 答: (1)选项菜单,是一种经常被使用的Android系统菜单,用户可以通过“菜单键”(MENU key)打开选项菜单。 (2)子菜单,是能够显示更加详细信息的菜单子项。 (3)快捷菜单,同样采用了动窗体的显示方式,虽然快捷菜单的实现方式与子菜单相同,但两种菜单的启动方式却截然不同。 6、简述Intent过滤器的定义和功能。 答: Intent过滤器是一种根据intent中的动作,类别和数据等内容,对适合接受该intent的组件进行匹配和筛选的机制。 Intent过滤器还可以匹配数据类型,路径和协议,还包括可以用来确定多个匹配顺序的优先级。 应用程序的activity组件,service组件和broadcastreceiver都可以注册intent过滤器。 这样,这些组件在特定的数据格式上则可以产生相应的动作。 7、简述Service的基本原理和用途; 答: (1)基本原理: Service的生命周期从onCreate()开始到onCreate()中完成Service的初始化工作,在onDestroy()中释放所有占用的资源。 活动生命周期从onStart()开始,但没有与之对应的“停止”函数,因此可以近似认为活动生命周期也是以onDestroy()标志 结束的。 (2)用途: Service非常适用于无需用户干预,且需要长期运行的后台功能;还可以用于进程间通信(IPC),解决两个不同Android应用程序之间的调用和通信问题。 1.常见的手机操作系统 在移动开发领域,常见的手机操作系统有android、ios以及windows mobile 2.常见术语 Dalvik虚拟机: Android应用程序是在Dalvik虚拟机的实例下以进程的形式运行的,Dalvik允许一个设备有效的运行多个虚拟机,虚拟机的执行文件时.dex,被优化为最小内存存放;需要注意的是Dalvik虚拟机是基于寄存器的 ADT: Android developement Tools,目的是为用户提供一个强大的Android集成开发环境,使用户能够快速创建项目,调试程序以及导出签名的APK AVD: Android Virtual Device,每个AVD模拟了一套设备来运行Android平台,这个平台只要有自己的内核、系统图像和数据分区,还可以有自己的SD卡,用户数据以及外观现实 3.Android应用程序的四大组件以及每一个组件的作用 (1)Activities: 一个Activity(活动)表示一个用户界面,可以和用户进行交互; (2)Services: Service(服务)是运行在后台的组件,一般用于执行需要长时间运行的操作,不提供用户界面,也不直接与用户进行交互,且比Activity具有更高的优先级; (3)Content Provider: 内容提供器管理应用程序共享的数据,程序员可以将数据存储在文件系统、SQLite数据库、网络或任何其他应用程序可以访问到的位置; (4)Broadcast Receives: 广播接受者是一个负责全系统广播通知的组件。 4.Android生命周期的调用的每一个方法及及作用 onCreate( ): 在Activity第一次被创建的时候调用,可在此处做初始化设置——创建视图、绑定数据至列表等 onStart( ): 当Activity正要变得为哦难怪乎所见时被调用,若Activity转向前台接着调用onResume(),若转向后台,则调用onStop( ); onRestart( ): 在Activity停止后,再次启动前被调用 onResume( ): 在Activity与用户开始进行交互之前被调用,此时Activity处于栈顶,用户可见 onPause( ): 当系统要启动另一个Activity或弹出对话框时调用 onStop( ): 当Activity不再为用户可见时,调用 onDestroy( ): 当Activity销毁前被调用 5.Android应用程序界面之间的跳转 在一个android应用程序中有多个屏幕,即多个activity,并且在这些Activity之间进行切换是通过Intent机制来实现的。 在使用Intent进行Activity之间的跳转时,有三种方式 (1)不带参数的跳转: Intent intent = new Intent(); intent.setClass(Activity1.this,Activity2.class); startActivity(intent); (2)带参数的跳转 Intent intent = new Intent( ); Bundle bundle = new Bundle( ); bundle.putString(“name”,”kite”); intent.putExtras(bundle); intent.setClass(Activity1.this,Activity2.class); startActivity(intent); (3)带返回值的跳转 Intent intent = new Intent(); intent.setClass(Activity1.this,Activity2.class); Bundle bundle = new Bundle( ); bundle.putString(“name”,”kite”); in
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 移动 应用 开发 复习