Android程序设计练习卷答案_第1页
Android程序设计练习卷答案_第2页
Android程序设计练习卷答案_第3页
Android程序设计练习卷答案_第4页
Android程序设计练习卷答案_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程名称:An droid程序设计 第 1 页,共 9 页1. 在an droid程序中,Log.d()用于输出什么级别的日志信息?(A)A、调试 B 、信息 C、警告 D 、错误2. 以下情况不会创建 Context对象的是(C)A. 创建Application对象时B.创建Service 对象时C.创建ContentProvider对象时D.创建Activity 对象时3. 下列不属于An droid中广播中的类别的是(D)A. Normal BroadcasB.Sticky BroadcastC.Local Broadcast D.Order broadcast4. 以下哪个不是Inte

2、nt的Activity启动方式(A)A. FLAG_ACTIVITY_BROUGHT_TO_FIRSTB.FLAG_ACTIVITY_CLEAR_TOPC.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET D.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS5. 安卓AndroidManifest.xml文件的子节点不包括(C)A. applicati onB.servicesC.permissio nD.provider6. 下面那个不是Fragment的生命周期方法(D)A. on Start B. on Attach C. on DestoryV

3、iew D. on Restart7. 下面那种不是安卓原生支持的Menu(A)A.Selected MenuB.Option MenuC.Subme nuD.Co ntext Menu8. 下面不属于an droid的动画分类的有(D)A、Tween B、Frame C、Property D 、Animation9. 下列哪个不是安卓 service自带的方法(A)A. On ResumeB.on CreateC.on StartComma ndD.on Reb ind10. 下列属于SAX解析xml文件的优点的是(B)A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能B

4、、不用事先调入整个文档,占用资源少C、整个文档调入内存,浪费时间和空间D不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会消失11. 下列关于 Soundpool和MediaPlayer的说法,错误的是(A)A. MediaPlayer支持多个音乐同时播放B. MediaPlayer 资源占用率高C. MediaPlayer延迟时间较长D. new MediaPlayer()后要调用prepare()方法才能播放12. 关于res/raw目录说法正确的是(A)A、这里的文件是原封不动的存储到设备上不会转换为二进制的格式B、这里的文件是原封不动的存储到设备上会转换为二进制的格

5、式C、这里的文件最终以二进制的格式存储到指定的包中D这里的文件最终不会以二进制的格式存储到指定的包中13. 下面异常不属于 Run time Exception 的是(D)A ArithmeticExceptionB、lllegalArgumentExceptionC、NullPointerExceptionD IOException14. 以下方法那个不能实现不显示an droid标题栏(B)A. 在 Activity 的 On create 方法中写,this.requestWi ndowFeature(Wi ndow.FEATURE_NO_TITLE);B. 设置布局Layout上移一定

6、单位dpC. 在 manifest 设置 Activity 的节点 android:theme="android:style/Theme.NoTitleBar"D. 在 style 中定义 <item name="android:windowNoTitle">true</item>后在 manifest 中引用15. 下列对an droid NDK的理解正确的是(D)A、NDK是一系列工具的集合B、 NDK提供了一份稳定、功能有限的API头文件声明。C、使“ Java+C”的开发方式终于转正,成为官方支持的开发方式D ABC都是1

7、6. 以下关于安卓的国际化的说法正确的是(B)A. 安卓国际化就是将app上架到各国的安卓应用商店B. 安卓国际化就是将安卓app相关显示数据设置不同语言版本C. 安卓国际化就是将安卓操作系统进行定制D. 安卓国际化就是将安卓app适配各国际品牌手机17. Android 项目工程下面的 assets目录的作用是什么(B)A、放置应用到的图片资源。B、主要放置多媒体等数据文件C、放置字符串,颜色,数组等常量数据D放置一些与UI相应的布局文件,都是xml文件18. 下面关于An droid dvm的进程和Linux的进程,应用程序的进程说法正确的是(D)A、DVM指dalivk的虚拟机.每一个A

8、n droid应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念B、DVM指dalivk的虚拟机.每一个An droid应用程序都在它自己的进程中运行,不一定拥有一个独 立的Dalvik虚拟机实例而每一个DVM不一定都是在Linux中的一个进程,所以说不是一个概念C、DVM旨dalivk的虚拟机.每一个An droid应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例而每一个DVM不一定都是在Linux中的一个进程,所以说不是一个概念.D DVM旨dalivk的虚拟机.每一个An

9、 droid应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念.19. 在an droid中使用Menu时可能需要重写的方法有(D)。A、onCreateOptionsMenu()B、onCreateMenu()C、onOptionsltemSelected()D、A 和 C20. 对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行(D)A、onPause() B、onCreate() C 、onResume() D、onStart()21. android中下列属于Intent的作用的是

10、(C)A、实现应用程序间的数据共享B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而 消失C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带D处理一个应用程序整体性的工作22. 下面的对自定style的方式正确的是(A)A、<resources><style n ame="myStyle"><ite mn ame="a ndroid:layout_width">fill_pare nt</item></style></resource

11、s>B、<style name="myStyle"><item n ame="a ndroid:layout_width">fill_pare nt</item></style>C、<resources><item n ame="a ndroid:layout_width">fill_pare nt</item></resources>D <resources><style n ame="a ndroid:

12、layout_width">fill_pare nt</style></resources>23. an droid关于service 生命周期的 on Create()和on Start() 说法正确的是(D)A、 当第一次启动的时候先调用on Start()方法B、 当第一次启动的时候只会调用onCreate()方法C、 如果service 已经启动,将先后调用onCreate()和onStart()方法D如果service 已经启动,只会执行 onStart() 方法,不在执行 onCreate()方法24. 下面退出Activity错误的方法是(

13、C)A finish()B、抛异常强制退出 C 、System.exit() D、onStop()25. 我们都知道Hanider是线程与Activity 通信的桥梁,如果线程处理不当,你的机器就会变得越慢, 那么线程销毁的方法是(A)A、onDestroy()B 、onClear()C 、onFinish()D、onStop()26. 下列关于An droid的Asset目录下的文件说法不正确的是(D)A. 不能通过R文件直接访问Asset目录资源B. Asset目录可以新建文件夹C. Asset目录一般存放一些二进制文件D. 通过AssetManager提供的方法可以修改里面的文件27.

14、以下对Activity的生命周期方法描述错误的是(A)A. o nResume阶段,用户不能与 Activity 交互B. Onstop阶段,原Activity 变得不可见,被下一个activity 覆盖了C. onDestory阶段,这是activity被干掉前最后一个被调用方法D. onPause阶段,到这一步是可见但不可交互的B、28. 关于ContenValues类说法正确的是(A)A、 他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String 类型,而值都是基本类型B、 他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对

15、当中的名是任意类型, 而值都是基本类型C、 他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名,可以为空, 而值都是Stri ng类型D他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值也是 Stri ng类型29. 在an droid中使用SQLiteOpe nHelper这个辅助类时,可以生成一个数据库,并可以对数据库版本进行管理的方法可以是(B)A、getWriteDatabase()B、getReadableDatabase()C、getDatabase()D getAbleDatabase()30

16、. 下面在 AndroidManifest.xml文件中注册 BroadcastReceiver 方式正确的(A)A、<receiver an droid: name="NewBroad"><i nten t-filter><act ionan droid: name="a vider.act ion. NewBroad"/>课程名称:An droid程序设计 第 5 页,共 9 页<act ion></inten t-filter></receiver>B、&l

17、t;receiver an droid: name="NewBroad"><i nten t-filter>an droid:n ame="a vider.acti on. NewBroad"/></i nten t-filter></receiver>C、<receiver an droid: name="NewBroad"><act ionan droid: name="a vider.act ion. NewBro

18、ad"/><act ion></receiver>D、<intent-filter><receiver an droid: name="NewBroad"><act ion>an droid:n ame="a vider.acti on. NewBroad"/><act ion></receiver></i nten t-filter>二.简答题1. 简述apk安装卸载的原理。APK安装可以通过以下四种方式:1. 系统

19、应用安装,开机时完成系统应用的检查,没安装就安装,安装就跳过,无安装界面。2. 网络下载应用安装,通过market应用完成,无安装界面。3. ADB工具安装,无安装界面4. 通过SD卡来安装apk,有安装界面,由packageinstaller.apk应用处理安装及卸载过程的界面。应用安装涉及到如下几个目录: system/app 系统自带的应用程序,无法删除 data/app用户程序安装的目录,有删除权限data/data存放应用程序的数据Data/dalvik-cache 将 apk 中的 dex 文件安装到 dalvik-cache 目录下(dex文件是dalvik虚拟机的可执行文件,其

20、大小约为原始apk文件大小的四分之一)安装过程:复制 APK安装包到data/app目录下,解压并扫描安装包,把dex文件(Dalvik 字节码)保存到dalvik-cache目录,并data/data目录下创建对应的应用数据目录。卸载过程:删除安装过程中在上述三个目录下创建的文件及目录。2. 简述An droid应用程序结构是哪些?An droid应用程序结构是:Linux Kernel(Linux内核)、Libraries(系统运行库或者是 c/c+ 核心库)、Application课程名称:An droid程序设计 第 5页,共9 页Framework(开发框架包)、Applicatio

21、ns (核心应用程序)3. 安卓如何做屏幕适配?1) an droid 有H L、MX、XX四个不同的文件夹存放不同分辨率的图片,系统会自动加载2) 偏移量d的设置可以在 values-hpdi,values-mdpi,values-ldpi三种文件夹中的 dimens.xml文件进行设置4. 如何将一个 Activity设置成窗口的样式。在An droidMa nifest.xml中 定 义an droid:theme="a ndroid:style/Theme.Dialog" an droid:theme="a ndroid:style/Theme.Tra n

22、sluce nt"Activity的 地 方 一 句 话或 就变成半透明的课程名称:An droid程序设计 第 8 页,共 9 页课程名称:An droid程序设计 第 # 页,共 9 页5. 在多线程编程这块,我们经常要使用Handler,Thread和Runnable这三个类,请简述他们之间的关系。An droid的CPU分配的最小单元是线程,Ha ndler 般是在某个线程里创建的,因而Ha ndler和Thread就是相互绑定的,一一对应。而Runnable是一个接口, Thread是Runnable的子类。所以说,他俩都算一个进程。HandlerThread顾名思义就是可

23、以处理消息循环的线程,他是一个拥有Looper的线程,可以处理消息循环。与其说Handler和一个线程绑定,不如说 Handler是和Looper 一一对应的。最后需要说明的是,在UI线程(主线程)中:mHa ndler= new Han dler();mHan dler.post (new Runn able()void run()/执行代码.);这个线程其实是在 UI线程之内运行的,并没有新建线程。 常见的新建线程的方法是:Thread thread = new Thread();thread.start();Han dlerThread thread = n ewHa ndlerThre

24、ad("stri ng");thread.start();6. AIDL的全称是什么?如何工作?能处理哪些类型的数据?AIDL 的英文全称是 An droid In terface Define Lan guage当A进程要去调用B进程中的service时,并实现通信,我们通常都是通过AIDL来操作的A工程:首先我们在 net.blogjava.mobile.aidlservice们自定义一个接口,含有方法 get。ADT插件会在gen目录下自动生成一个 件,该类中含有一个名为 RemoteService.stub 的内部类,该内部类中含有 法。说明一:aidl文件的位置不

25、固定,可以任意然后定义自己的 MyService类,在MyService类中自定义一个内部类去继承包中创建一个RemoteService.aidl 文件,在里面我文 方RemoteService.java aidl文件接口的 getRemoteService.stub个内部类,实现get方法。在on Bi nd方法中返回这个内部类的对象,系统会自动将这个对象封装成 IBin der对象,传递给他的调用者。其次需要在 AndroidManifest.xml 文件中配置 MyService类,代码如下:<!-注册服务->vservice an droid: name=".My

26、Service"><i nten t-filter><!- 指定调用AIDL服务的ID -><act ionan droid: name="n et.blogjava.mobile.aidlservice.RemoteService" /></i nten t-filter></service>为什么要指定调用 AIDL服务的ID,就是要告诉外界 MyService这个类能够被别的进程访问,只要别 的进程知道这个ID,正是有了这个ID,B工程才能找到 A工程实现通信。说明:AIDL并不需要权限B工程

27、:首先我们要将 A工程中生成的 RemoteService.java 文件拷贝到B工程中,在bindService 方 法中绑定aidl服务绑定AIDL服务就是将 RemoteService的ID作为intent 的action 参数。说明:如果我们单独将 RemoteService.aidl文件放在一个包里,那个在我们将 gen目录下的该包拷贝到B工程中。如果我们将RemoteService.aidl文件和我们的其他类存放在一起,那么我们在B工程中就要建立相应的包,以保证RmoteService.java文件的报名正确,我们不能修改RemoteService.java 文件bi ndServ

28、ice( newI nte n(" net.blogjava.mobile.aidlservice.RemoteService"),serviceC onn ection, Con text.BIND_AUTO_CREATE);ServiceC onnection的 on ServiceC onn ected(Comp onen tName n ame, IB in derservice)方法中的service 参数就是 A工程中MyService类中继承了 RemoteService.stub 类的内部类的对象。三.程序分析题1. 现在已经在 Activity 的布局文件

29、ma in .xml中创建了 id为Progressbar1的进度条,和id为butt on1的按钮,请写出实现以下功能的代码:1) 在Activity页面显示这个按钮和进度条;2) 点击按钮后,使用AsyncTask更新进度条的进度。import an droid.app.Activity;import an droid.os.As yn cTask;import an droid.os.B un dle;import an droid.util.Log;import an droid.view.View;import an droid.view.View. On ClickListe ne

30、r;import an droid.widget.Butt on;import an droid.widget.ProgressBar;public class MyActivity exte nds Activity private ProgressBar mProgressBar = n ull;private Butt on myButt on = n ull;/* Called when the activity is first created. */Overridepublic void on Create(B un dle savedl nsta nceState) super.

31、。nCreate(savedl nsta nceState);setC onten tView(R .1 ayout.ma in);mProgressBar = (ProgressBar)fi ndViewByld(R.id.Progressbarl);myButton = (Butto n)fin dViewById(R.id.butto n1);myButto n. setO nClickListe ner(new Btn ClickListe ner();private class Btn ClickListe ner impleme nts On ClickListe nerpubli

32、c void on Click(View arg0) / TODO Auto-ge nerated method stubnew myAs yn c().execute();private class myAs ync exte nds Asyn cTask<Void, In teger, Void>int durati on = 0;int curre nt = 0;Overrideprotected Void doln Backgro un d(Void. params) do Log.d("ha ndleMessage","id:"+T

33、hread.curre ntThread().getld()+"n ame:"+Thread.curre ntThread().getName();curre nt+=10;try publishProgress(current);/ 这里的参数类型是 AsyncTask<Void,Integer, Void> 中的Integer 决定的,在 onProgressUpdate 中可以得到这个值去更新 UI主线程, 这里是异步线程Thread.sleep(1000);if(mProgressBar.getProgress() >= 100)break; catch (Exceptio n e) 二 while (mProgressBar.getProgress() <= 100);return nu II;Overrideprotected void on ProgressUpdate(I nteger. values) super.o nProgressUpdate(values);System.out.pri ntln

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论