Android应用开发基础习题_第1页
Android应用开发基础习题_第2页
Android应用开发基础习题_第3页
Android应用开发基础习题_第4页
Android应用开发基础习题_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

----任务一 Android开发环境的搭建第一部分 知识回顾与思考1.Android的四层架构分别包括哪几层?分别起到什么作用?答:Linux内核层(LinuxKernel):基于 Linux内核,内核为上层系统提供了系统服务。系统库层(Libraries):系统库基于 C/C++语言实现,通过接口向应用程序框架层提供编程接口。应用框架层(ApplicationFramework):为开发者提供了一系列的 JavaAPI,包括图形用户界面组件View、SQLite数据库相关的 API、Service组件等。应用程序层(Applications):包含了 Android平台中各式各样的应用程序。第二部分 职业能力训练一、单项选择题(下列答案中有一项是正确的,将正确答案填入括号内)1.Android四层架构中,应用框架层使用的是什么语法?( C )A.C B.C++ C.Java D.Android2.Android四层架构中,系统库层使用的是什么语法?( B )A.VB B.C/C++ C.Java D.Android3.应用程序员编写的 Android应用程序,主要是调用( B )提供的接口进行实现。A.应用程序层 B.应用框架层 C.应用视图层 D.系统库层二、填空题(请在括号内填空)1.在Android智能终端中,有很多应用如拍照软件、联系人管理软件,它们都属于 Android的(应用程序)层。2.为了让程序员更加方便的运行调试程序, Android提供了(模拟器),可以方便的将程序运行其上,而不要实际的移动终端。3.为了支持 Java程序运行,我们需要安装( JDK)。三、简答题1.简述Android开发环境安装的步骤。答:下载并安装 JDK,配置JDK的环境变量;从Anroid官网上下载 Android开发组件(包含 Eclipse和AndroidSDK、ADT);安装Android开发环境(包括配置 AndroidSDK的环境变量、打开Eclipse通过菜单设定 AndroidSDK路径)。2.简述Android应用程序创建和运行的步骤。1答:通过菜单创建 Android应用程序,设置应用程序名、 Android版本等基本信息。点击菜单中的运行按钮可以直接运行 Android项目(也可以通过菜单配置运行参数, 指定运行的模拟器)。2任务二 星座查询工具的设计与实现第一部分 知识回顾与思考1.Android的属性、方法、监听器如何使用,它们分别起了什么作用?:Android控件的属性,可以通过xml文件设定,通过设定控件的属性能够静态的改变控件的样式和一些特性;控件的方法,可以通过编写代码动态调用方法,在程序中调用方法可以动态的修改控件的样式、也可以获得控件的相关信息;控件的监听器,可以通过编码为控件创建、设定监听器,监听器可以监听控件发生的事件,一旦发生某个监听的事件可以触发相应的处理代码。2.回顾一下 Android工程中重要的目录和文件,它们的作用是什么?答: src目录:该目录中存放的是我们需要编辑的 Java源代码;gen目录:目录中存放所有由Android开发工具自动生成的文件,它包含了界面、图标、常量等各种资源的id;bin目录:目录中的内容是程序运行后自动生成的,不需要我们编辑,里面包含自动生成的可执行文件(如HelloAndroid.apk);res目录:该目录中放置程序的重要资源,包括图片、布局、字符串等资源;AndroidManifest.xml 文件:该文件非常重要,列出了应用程序许多基本信息(如版本、应用程序名称、启动图标等),其中还包括了程序使用到的各种服务(如电话服务、互联网服务、短信服务、 GPS服务等),该文件甚至包括了程序中所使用到的各个 Activity 信息。第二部分 职业能力训练一、单项选择题(下列答案中有一项是正确的,将正确答案填入括号内)1.以下哪个控件用来显示图片 ?(A)A.ImageView B.TextView C.EditText D.Button2.如果要实现用户单击后触发一定的处理,以下哪个控件最合适?( D )A.ImageView B.TextView C.EditText D.Button3.如果我们需要捕捉某个控件的事件,我们需要为该控件创建( C )。A.属性 B.方法 C.监听器 D.工程4.以下的哪个属性是用来表示引用图片的资源 ID?( D )3A.text B.img C.id D.src5.以下的哪个属性是用来控制虚拟键盘输入类型?( B )A.keyboard B.inputType C.text D.src6.Android 工程启动是最先加载的是 AndroidManifest.xml,如果有多个 Activity,以下哪个属性决定了该Activity 最先被加载?( A )A.ent.action.MAIN B.ent.action.LAUNCHERC.ent.action.ACTIVITY D.ent.action.ICON7.如果我们需要导入一张图片资源,我们需要将图片放在哪个工程目录中( A)。A.res\drawable B.res\string C.res\picture D.res\icon8.如果我们需要创建一个字符串资源,我们需要将字符串放在 res\values的哪个文件中?( B )A.value.xml B.strings.xml C.dimens.xml D.styles.xml9.以下哪个布局最不适合在多种移动终端上使用?( C )A.相对布局 B.线性布局 C.绝对布局 D.表格布局10.相对布局中,如果指定一个控件位于引用控件的左侧,应该使用( D )属性。A.android:layout_toParentLeftOf B.android:layout_alignParentLeftC.android:layout_alignLeft D.android:layout_toLeftOf二、填空题(请在括号内填空)1.在Android控件使用过程中,经常需要根据控件的 ID获取控件的对象,我们可以使用(findViewById )方法。2.导入图片时,需要特别注意图片的名称不可以包含(大写字母、特殊符号 )。3.在创建控件的时候,可以在布局文件的界面视图中拖拉控件,但本质上还是编辑的( XML )文件。4.表格布局可以包含多行,( TableRow)代表是一行。5.如果创建了一个字符串资源为 hello,那么它的 ID应该是( R.String.hello )。三、简答题1.简述五种布局的特点和运用场合。框架布局:所有控件排列在左上角,用于制作特别的控件,初学者使用较少;线性布局:控件可以按照水平或者垂直方向进行排列,控件排列方式简单;绝对布局:可以指定控件摆放的位置,虽然摆放控件很容易,但是不适合多种分辨率和尺寸的屏幕,需要慎用;相对布局:能够设定控件之间的相对关系、控件与父容器的相对关系,控件排列方式比较灵活,是常用4的布局之一;表格布局:通过配合使用 TableRow可以将控件以表格形式排列。2.简述本节课程所学控件的特点和作用。TextView:最基础的控件,用做显示文本信息;Button控件:通过监听器单击事件,可以实现用户点击按钮后触发相应动作;ImageView控件:用于显示图片的控件,可以通过 src属性指定显示的图片,可以通过调用方法来动态设定图片;EditText控件:输入文本控件,主要用于让用户输入信息, inputtype属性可以指定输入文本时的键盘特征;DatePicker控件和TimePicker控件:日期和时间控件,可以显示日期和时间,也可以让用户进行日期和时间的选择。5任务三 计算器的设计与实现第一部分 知识回顾与思考1.Android提供了多种提示方式,思考一下它们各自的优缺点?答:Android提供的常见的提示信息的方式有 Toast、Dialog以及Notification。它们各自的特点如下:1)Toast只能给用户提示信息,过一定时间后信息自动消失,用户只能阅读提示的信息,不能做出交互性动作,也不能修改Toast的界面。(2)Dialog不仅能给用户提示信息,还可以让用户选择对提示信息的响应方式, 更复杂的,用户可以定Dialog的界面。(3)Notification 提供了更高级的提示信息的方式,手机界面上有专门用于显示 Notification 的区域。用户可以向下滑动拉开通知栏,查看通知的内容,还可以进一步打开相关的 Activity 来对通知信息做进一步的处理。2.回顾一下 Android的调试流程,在你的程序遇到问题的时候,你应该如何去定位解决问题?答:当程序运行遇到问题时,我们应按如下的步骤去推测问题所在和调试程序:1)推理Bug出现时所发生的动作2)该动作所对应的程序代码3)在该行代码处设置断点4)启动程序调试,重复刚才的操作5)程序运行至断点时停止,然后单步执行程序6)单步执行时注意所涉及变量值的变化7)发现变量值异常或处理错误8)修改代码再次运行第二部分 职业能力训练一、单项选择题(下列答案中有一项是正确的,将正确答案填入括号内)1.Toast创建完毕后,需要显示出来此时需要调用以下哪个方法 ?( B )A.makeText B.show C.create D.view2.以下哪个类对应 Android中的提示对话框 ?( A )A.AlertDialog B.Dialog C.ShowDialog D.Alert3.对话框中有几个默认 Button,( A )代表是确定按钮。6A.PositiveButtonB.NegativeButtonC.NeutralButtonD.OKButton4.Android中有一个服务用来管理通知,它是(B)。A.ServiceB.NotificationManagerC.NoticeD.DialogBuilder5.我们单击模拟器上的菜单键所产生的菜单,称为(D)。A.ContextMenuB.KeyMenuC.PopupMenuD.OptionMenu6.以下的哪个方法会在菜单创建时被调用 ?( A )A.onCreateOptionsMenu B.onCreateMenu C.onCreateContextMenu D.onCreate7.以下的哪个方法会在菜单项被单击时被调用 ?( C )A.onContextItemSelected B.onCreateOptionsMenu C.onOptionsItemSelected D.onItemSelected8.以下哪个类用于构造数组类型数据的适配器 ?( D )A.Adapter B.CursorAdapter C.SimpleAdapter D.ArrayAdapter9.Spinner控件的子项被选中所对应的监听器为( A )。A.setOnItemSelectedListener B.OnClickListener C.OnLongClickListener D.setOnItemListener10.以下哪个日志级别最高 ?( D )A.WARN B.INFO C.DEBUG D.ERROR二、填空题(请在括号内填空)1.创建Toast使用makeText方法的第一个参数代表 Activity 的( 对象 )。2.用户单击移动终端的( Menu )按钮,会触发创建 OptionMenu。3.Spinner的父类是(AdapterView ),如何希望将数据显示到这样的控件上, 一般都需要使用(Adapter)进行数据与控件的绑定。4.调试是为了让程序执行到某行代码时停顿,我们需要在这一行设置( 端点 )。5.在Eclipse中有一个窗口用于管理日志,该窗口是( LogCat )。三、简答题1.如果程序在运行时就发生了崩溃,你会如何进行推测和调试 ?答:程序运行发生崩溃时,我们应按如下的步骤去推测问题所在和调试程序:1)推理Bug出现时所发生的动作2)该动作所对应的程序代码3)在该行代码处设置断点4)启动程序调试,重复刚才的操作5)程序运行至断点时停止,然后单步执行程序7(6)单步执行时注意所涉及变量值的变化(7)发现变量值异常或处理错误(8)修改代码再次运行2.简述两种 OptionMenu创建方法的相同点和不同点。答:不同点:第一种方法完全通过代码的方式来创建菜单, 即通过重写 Activity 类的onCreateOptionsMenu方法来创建菜单;而第二种方法则是通过定义布局文件的方式来创建菜单, 即通过定义 res\menu\main.xml菜单布局文件来创建菜单。相比较来说,第二种方法非常好地实现了逻辑代码和表现样式的分离,特别是在需要修改菜单样式时,第二种方法能够更少地修改代码而专注于 XML 布局文件,是目前更为推崇的架构方式。相同点:对于两种方法创建的菜单,响应其事件的方法是一样的,即都是通过重写 Activity 类的onOptionsItemSelected方法来实现其事件响应的。8任务四 “我的日记”的设计与实现第一部分 知识回顾与思考Android中的生命周期中有哪几种状态?答:活动状态、暂停状态、停止状态、销毁状态。2.Intent有哪些重要属性, Activity 之间是如何进行信息的传递的?答:属性:Component(组件)、Action(动作)、Data(数据)、Category(分类)、Type(类型)、Extra(扩展信息)。在Android中是通过 intent中的属性进行信息的传递的。第二部分 职业能力训练一、单项选择题(下列答案中有一项是正确的,将正确答案填入括号内)1.以下哪个控件可以用来显示进度 ?( B )A.EditText B.ProgressBar C.TextView D.Button2.以下哪个方法可以用来获得进度条的当前进度值 ?( A )A.publicsynchronizedintgetProgress()B.publicsynchronizedvoidsetIndeterminate(booleanindeterminate)C.publicsynchronizedvoidsetProgress(intprogress)D.PublicfinalsynchronizedvoidincrementProgressBy(intdiff)3.在Activity 的生命周期中,当 Activity 处于栈顶时,此时处于哪种状态 ?( A )A.活动 B.暂停 C.停止 D.销毁4.在Activity的生命周期中,当Activity被某个AlertDialog覆盖掉一部分之后,会处于哪种状态 (? A )A.活动 B.暂停 C.停止 D.销毁。5.Action属性ACTION_DIAL 代表( A )标准动作。A.显示电话拨号面板 B.显示直接打电话的界面C.向用户显示数据 D.提供编辑数据的途径6.如果需要显示 id为1的联系人信息,Intent中的Action属性与Data属性应该设定为什么? ( A )。A.ACTION_VIEWcontent://contacts/people/1B.ACTION_DIALcontent://contacts/people/19C.ACITON_EDITcontent://contacts/people/1D.ACTION_CALLcontent://contacts/people/17.在文件存储中,若要获得SD卡的存储路径,需要调用(A)。A.Environment.getExternalStorageDirectory()B.openFileOutput(Stringname,intmode)C.File(Filedir,Stringname)D.Environment.getDataDirectory()8.Android中Environment.MEDIA_MOUNTED代表SD的(A)状态。A.手机已插上SD卡,并且应用程序对SD卡具有读写权限。B.手机已插上SD卡,但是应用程序对SD卡只具有读权限。C.手机上没有SD卡D.SD存在但是没有被安装,可以通过USB大容量存储器共享9.category为(A)的Activity会在Android系统的主屏幕(Home)显示。。A.CATEGORY_HOMEB.CATEGORY_PREFERENCEC.ACTION_MAIND.CATEGORY_BROWSABLE10.activity生命周期中调用的第一个回调函数是(A)。A.onCreated()B.onStart()C.onResume()D.onRestart()二、填空题(请在括号内填空)1.若用DDMS查看,存储在手机SD卡上的文件的路径为(/mnt/sdcard/)。2.SharedPreferences所存储的数据是以(“键-值”)的格式保存在xml文件中。3.当android:indeterminate取值为(true)时,开启了进度条的“不确定模式”。4.Android中提供了标准的Java文件输入输出流,分别为(File)InputStream、(File)OutputStream。5.category类别为(CATEGORY_LAUNCHER)的Activity会在Android系统启动的时候最优先启动起来。三、简答题101.简述ProgressBar如何与Handler结合在一起使用。答:在布局文件写入进度条控件;在源程序文件中申明 Handler对象handler、Progressbar类对象progressbar、int型对象progress表示当前进度,以及两个常量 STOP和CONTINUE 分别代表停止、继续两种消息;实例化Handler对象handler,在handleMessage方法,更新进度条 UI界面;重写onCreate()方法,开启了一个子线程,该线程的 run()方法中利用 handler发送消息。2.简述Android中如何利用文件存储来读写 SD卡上的TXT文件。答:改写 AndroidManifest.xml 文件,为 SD卡设置创建与删除文件权限、写入数据的权限:设置读写模式:利用Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) 判断SD卡是否正常安装在手机上;SD卡安装正常的情况下,利用Filefile=newFile(Environment.getExternalStorageDirectory(),filename)获得该文件对应的 File对象;利用 outputStream=newFileOutputStream(file, append);获得该文件的输出流、 inputStream=newFileInputStream(file);获得该文件的输入流;利用输入流 inputstream、输出流 outputstream对文件进行标准的 java读写。11任务五 音乐播放器的设计与实现第一部分 知识回顾与思考1.ListView如何与数据进行绑定?答:最简单的方式,可以在布局文件中为 ListView 指定一个字符串数组。其次,可以使用 Adapter将ListView 与数组进行绑定,根据不同的数据源需要使用与其对应的 Adapter。2.ArrayAdapter、SimpleAdatper、SimpleCursorAdapter的作用分别是什么?如何使用它们?答:ArrayAdapter:可用于与数组进行数据绑定; SimpleAdapter:可用于与 List集合的多个对象进行数据绑定;SimpleCursorAdapter:用于与Cursor提供的数据进行绑定。 具体使用方式参考本任务支撑知识三、四、五小节。3.MediaPlayer对象的生命周期是怎样的?答:用new操作符创建一个新的 MediaPlayer对象或是对已有对象调用 reset()方法之后 MediaPlayer对象处于 Idle状态。调用 setDataSource()方法会使处于 Idle状态的对象转变为 Initialized状态。在开始播放之前,MediaPlayer对象必须要进入 Prepared状态,有同步和异步两种方式可以使 MediaPlayer对象进入 Prepared状态。要开始播放,必须调用 start()方法。当此方法成功返回时, MediaPlayer的对象处于 Started状态。当调用 pause()方法并返回时,会使 MediaPlayer对象进入 Paused状态。调用stop()方法会停止播放,并且还会让一个处于 Started、Paused、Prepared或PlaybackCompleted状态的MediaPlayer进入Stopped状态。具体参考本任务支撑知识第六节。4.回顾一下定时器所涉及几个类的作用以及这几个类之间的关系 (Timer、TimerTask、Handle、Message)。答:Timer启动后会周期性的触发 TimerTask类的run方法,在run方法中会向 UI线程的Handle对象发送Message,从而触发 Handle对象的handleMessage方法,在该方法中可以进行 UI线程中控件更新等操作。第二部分 职业能力训练一、单项选择题(下列答案中有一项是正确的,将正确答案填入括号内)1.ListView 是常用的( C )类型控件。A.按钮 B.图片 C.列表 D.下拉列表2.ListView 与数组或 List集合的多个值进行数据绑定时使用( A )。A.ArrayAdapter B.SimpleAdapter C.SimpleCursorAdapter D.BaseAdapter3.ListView 与List集合的多个对象进行数据绑定时使用( B )。12A.ArrayAdapterB.SimpleAdapterC.SimpleCursorAdapterD.BaseAdapter4.ListView与Cursor提供的数据进行绑定时使用(C)。A.ArrayAdapterB.SimpleAdapterC.SimpleCursorAdapterD.BaseAdapter5.Android中MediaPlayer无法播放(D)。A.程序资源文件B.网络上的文件C.SD卡上的文件D.其他程序资源文件6.以下表示系统自定义的只显示一行文字的布局文件是( B )。A.android.R.layout.simple_list_item_0 B.android.R.layout.simple_list_item_1C.android.layout.simple_list_item_0 D.android.layout.simple_list_item_17.MediaPlayer对象执行( D )之后处于 Idle状态。A.start() B.stop() C.pause() D.reset()8.下列说法错误的是( D )。A.prepare()是同步加载 B.prepare()方法返回时已加载完毕C.prepareAsync()是异步加载 D.prepareAsync()方法返回时已加载完毕9.如果希望启动定时器后 5s执行第一次执行定时器任务,然后每隔 3s执行定时器任务, schedule方法的后两个参数需要设定为( D )。A.5,2 B.5,3 C.5000,2000 D.5000,3000二、填空题(请在括号内填空)1.创建ListView有两种方式包括直接使用 ListView控件和( 让Acitivity 继承ListActivity )。2.ListView 继承自( AdapterView )。3.Adapter配置好以后,需要用( setAdapter )函数将 ListView和Adapter绑定。MediaPlayer指定加载的音频文件时可以使用MediaPlayer提供的静态方法(create())和非静态方法(setDataSource())。4.调用prepareAsync()方法会使 MediaPlayer对象进入( preparing)状态并返回。5.如果定时器子线程试图更新 TextView的文本显示,将会( 抛出异常 )。三、简答题1.简述构造 SimpleCursorAdapter时各个参数的作用。答:参数 table:数据库中表格的名称;参数 columns:需要查询的列名的数组;参数 selection:数据库查询条件,相当于 SQL语句中where后面的条件;参数 selectionArgs:selection语句中可以使用“?”来指定数值,数据库 where条件后面经常会带?号,这个参数就是?号的替代者;参数groupBy:查询数据时分组的规则;参数 having:聚合操作;参数 orderBy:查询数据时排序的规则。132.简述MediaPlayer对象的prepareAsync()方法和prepare()方法的区别及其各自使用场景。答:prepareAsync()方法和prepare()方法分别是异步加载和同步加载, prepareAsync()方法执行完毕后MediaPlayer进入preparing状态,而 prepare()方法执行完毕后 MediaPlayer进入prepared状态。prepareAsync()方法一般用于加载网络音频文件等耗时的场景, 而加载本地音频的时候一般使用 prepare()就可以了。1415任务六 贪吃蛇游戏的设计与实现第一部分 知识回顾与思考1.回顾一下操作 SQLite数据库的几个类的作用和之间的关系( SQLiteOpenHelper、SQLiteDatabase、Cursor)。答:SQLiteOpenHelper类:需要进行数据操作,需要创建一个类继承自该类,通过该类实现数据库的创建和升级;SQLiteDatabase类:通过SQLiteOpenHelper类可以获得 SQLiteDatabase对象,通过该对象可以进行数据库的增加、删除、修改、查询;Cursor类:查询数据库后返回 Cursor对象,通过操作该对象可以对返回的数据集从行的移动,并且获取当前行指定列的数据。2.回顾一下自定义控件的方法和监听器的作用。答:自定义控件的共有方法:通过编写自定义控件的方法,可以返回当前控件的状态,也可以设定控件的参数,本质上是控件外影响控件内部的途径;自定义控件的监听器:通过提供监听器,可以让控件外部监视控件内部发生的事件,通过方法的回调触发控件外部的处理,本质上是控件内部通知控件外部的途径。第二部分 职业能力训练一、单项选择题(下列答案中有一项是正确的,将正确答案填入括号内)1.Android中有许多控件,这些控件无一例外的都继承自(D)类。A.ControlB.WindowC.TextViewD.View2.Android中有许多布局,它们均是用来容纳子控件和子布局的,这些布局均继承自(B)。A.LayoutB.ViewGroupC.ContainerD.LinerLayout3.自定义控件时需要重写View类的很多方法,以下哪个方法是与焦点相关?(B)A.onTouchEventB.onFocusChangedC.onAttachedToWindowD.onDraw4.以下哪个方法是在控件尺寸发生变化时会被调用?(C)。A.onFinishInfla

温馨提示

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

评论

0/150

提交评论