Android应用开发基础习题集.docx
《Android应用开发基础习题集.docx》由会员分享,可在线阅读,更多相关《Android应用开发基础习题集.docx(14页珍藏版)》请在冰豆网上搜索。
![Android应用开发基础习题集.docx](https://file1.bdocx.com/fileroot1/2023-3/29/bcd7676b-cf44-413a-99a6-466b95bfeba8/bcd7676b-cf44-413a-99a6-466b95bfeba81.gif)
Android应用开发基础习题集
任务一Android开发环境的搭建
第一局部知识回忆与思考
1.Android的四层架构分别包括哪几层?
分别起到什么作用?
答:
Linu*核层〔Linu*Kernel〕:
基于Linu*核,核为上层系统提供了系统效劳。
系统库层〔Libraries〕:
系统库基于C/C++语言实现,通过接口向应用程序框架层提供编程接口。
应用框架层〔ApplicationFramework〕:
为开发者提供了一系列的JavaAPI,包括图形用户界面组件View、SQLite数据库相关的API、Service组件等。
应用程序层〔Applications〕:
包含了Android平台中各式各样的应用程序。
第二局部职业能力训练
一、单项选择题〔以下答案中有一项为哪一项正确的,将正确答案填入括号〕
1.Android四层架构中,应用框架层使用的是什么语法?
〔C〕
A.CB.C++C.JavaD.Android
2.Android四层架构中,系统库层使用的是什么语法?
〔B〕
A.VBB.C/C++C.JavaD.Android
3.应用程序员编写的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应用程序创立和运行的步骤。
答:
通过菜单创立Android应用程序,设置应用程序名、Android版本等根本信息。
点击菜单中的运行按钮可以直接运行Android工程〔也可以通过菜单配置运行参数,指定运行的模拟器〕。
任务二星座查询工具的设计与实现
第一局部知识回忆与思考
1.Android的属性、方法、监听器如何使用,它们分别起了什么作用?
答:
Android控件的属性,可以通过*ml文件设定,通过设定控件的属性能够静态的改变控件的样式和一些特性;
控件的方法,可以通过编写代码动态调用方法,在程序中调用方法可以动态的修改控件的样式、也可以获得控件的相关信息;
控件的监听器,可以通过编码为控件创立、设定监听器,监听器可以监听控件发生的事件,一旦发生*个监听的事件可以触发相应的处理代码。
2.回忆一下Android工程中重要的目录和文件,它们的作用是什么?
答:
src目录:
该目录中存放的是我们需要编辑的Java源代码;
gen目录:
目录中存放所有由Android开发工具自动生成的文件,它包含了界面、图标、常量等各种资源的id;
bin目录:
目录中的容是程序运行后自动生成的,不需要我们编辑,里面包含自动生成的可执行文件〔如HelloAndroid.apk〕;
res目录:
该目录中放置程序的重要资源,包括图片、布局、字符串等资源;
AndroidManifest.*ml文件:
该文件非常重要,列出了应用程序许多根本信息〔如版本、应用程序名称、启动图标等〕,其中还包括了程序使用到的各种效劳〔如效劳、互联网效劳、短信效劳、GPS效劳等〕,该文件甚至包括了程序中所使用到的各个Activity信息。
第二局部职业能力训练
一、单项选择题〔以下答案中有一项为哪一项正确的,将正确答案填入括号〕
1.以下哪个控件用来显示图片?
〔A〕
A.ImageViewB.Te*tViewC.EditTe*tD.Button
2.如果要实现用户单击后触发一定的处理,以下哪个控件最适宜?
〔D〕
A.ImageViewB.Te*tViewC.EditTe*tD.Button
3.如果我们需要捕捉*个控件的事件,我们需要为该控件创立〔C〕。
A.属性B.方法C.监听器D.工程
4.以下的哪个属性是用来表示引用图片的资源ID?
〔D〕
A.te*tB.imgC.idD.src
5.以下的哪个属性是用来控制虚拟键盘输入类型?
〔B〕
A.keyboardB.inputTypeC.te*tD.src
6.Android工程启动是最先加载的是AndroidManifest.*ml,如果有多个Activity,以下哪个属性决定了该Activity最先被加载?
〔A〕
A.B.android.intent.action.LAUNCHER
C..ACTIVITYD.android.intent.action.ICON
7.如果我们需要导入一图片资源,我们需要将图片放在哪个工程目录中〔A〕。
A.res\drawableB.res\stringC.res\pictureD.res\icon
8.如果我们需要创立一个字符串资源,我们需要将字符串放在res\values的哪个文件中?
〔B〕
A.value.*mlB.strings.*mlC.dimens.*mlD.styles.*ml
9.以下哪个布局最不适合在多种移动终端上使用?
〔C〕
A.相对布局B.线性布局C.绝对布局D.表格布局
10.相对布局中,如果指定一个控件位于引用控件的左侧,应该使用〔D〕属性。
A.android:
layout_toParentLeftOfB.android:
layout_alignParentLeft
C.android:
layout_alignLeftD.android:
layout_toLeftOf
二、填空题〔请在括号填空〕
1.在Android控件使用过程中,经常需要根据控件的ID获取控件的对象,我们可以使用〔findViewById〕方法。
2.导入图片时,需要特别注意图片的名称不可以包含〔大写字母、特殊符号〕。
3.在创立控件的时候,可以在布局文件的界面视图中拖拉控件,但本质上还是编辑的〔*ML〕文件。
4.表格布局可以包含多行,〔TableRow〕代表是一行。
5.如果创立了一个字符串资源为hello,则它的ID应该是〔R.String.hello〕。
三、简答题
1.简述五种布局的特点和运用场合。
框架布局:
所有控件排列在左上角,用于制作特别的控件,初学者使用较少;
线性布局:
控件可以按照水平或者垂直方向进展排列,控件排列方式简单;
绝对布局:
可以指定控件摆放的位置,虽然摆放控件很容易,但是不适合多种分辨率和尺寸的屏幕,需要慎用;
相对布局:
能够设定控件之间的相对关系、控件与父容器的相对关系,控件排列方式比拟灵活,是常用的布局之一;
表格布局:
通过配合使用TableRow可以将控件以表格形式排列。
2.简述本节课程所学控件的特点和作用。
Te*tView:
最根底的控件,用做显示文本信息;
Button控件:
通过监听器单击事件,可以实现用户点击按钮后触发相应动作;
ImageView控件:
用于显示图片的控件,可以通过src属性指定显示的图片,可以通过调用方法来动态设定图片;
EditTe*t控件:
输入文本控件,主要用于让用户输入信息,inputtype属性可以指定输入文本时的键盘特征;
DatePicker控件和TimePicker控件:
日期和时间控件,可以显示日期和时间,也可以让用户进展日期和时间的选择。
任务三计算器的设计与实现
第一局部知识回忆与思考
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.makeTe*tB.showC.createD.view
2.以下哪个类对应Android中的提示对话框?
〔A〕
A.AlertDialogB.DialogC.ShowDialogD.Alert
3.对话框中有几个默认Button,〔A〕代表是确定按钮。
A.PositiveButtonB.NegativeButtonC.NeutralButtonD.OKButton
4.Android中有一个效劳用来管理通知,它是〔B〕。
A.ServiceB.NotificationManagerC.NoticeD.DialogBuilder
5.我们单击模拟器上的菜单键所产生的菜单,称为〔D〕。
A.Conte*tMenuB.KeyMenuC.PopupMenuD.OptionMenu
6.以下的哪个方法会在菜单创立时被调用?
〔A〕
A.onCreateOptionsMenuB.onCreateMenuC.onCreateConte*tMenuD.onCreate
7.以下的哪个方法会在菜单项被单击时被调用?
〔C〕
A.onConte*tItemSelectedB.onCreateOptionsMenuC.onOptionsItemSelectedD.onItemSelected
8.以下哪个类用于构造数组类型数据的适配器?
〔D〕
A.AdapterB.CursorAdapterC.SimpleAdapterD.ArrayAdapter
9.Spinner控件的子项被选中所对应的监听器为〔A〕。
A.setOnItemSelectedListenerB.OnClickListenerC.OnLongClickListenerD.setOnItemListener
10.以下哪个日志级别最高?
〔D〕
A.WARNB.INFOC.DEBUGD.ERROR
二、填空题〔请在括号填空〕
1.创立Toast使用makeTe*t方法的第一个参数代表Activity的〔对象〕。
2.用户单击移动终端的〔Menu〕按钮,会触发创立OptionMenu。
3.Spinner的父类是〔AdapterView〕,如何希望将数据显示到这样的控件上,一般都需要使用〔Adapter〕进展数据与控件的绑定。
4.调试是为了让程序执行到*行代码时停顿,我们需要在这一行设置〔端点〕。
5.在Eclipse中有一个窗口用于管理日志,该窗口是〔LogCat〕。
三、简答题
1.如果程序在运行时就发生了崩溃,你会如何进展推测和调试?
答:
程序运行发生崩溃时,我们应按如下的步骤去推测问题所在和调试程序:
〔1〕推理Bug出现时所发生的动作
〔2〕该动作所对应的程序代码
〔3〕在该行代码处设置断点
〔4〕启动程序调试,重复刚刚的操作
〔5〕程序运行至断点时停顿,然后单步执行程序
〔6〕单步执行时注意所涉及变量值的变化
〔7〕发现变量值异常或处理错误
〔8〕修改代码再次运行
2.简述两种OptionMenu创立方法的一样点和不同点。
答:
不同点:
第一种方法完全通过代码的方式来创立菜单,即通过重写Activity类的onCreateOptionsMenu方法来创立菜单;而第二种方法则是通过定义布局文件的方式来创立菜单,即通过定义res\menu\main.*ml菜单布局文件来创立菜单。
相比拟来说,第二种方法非常好地实现了逻辑代码和表现样式的别离,特别是在需要修改菜单样式时,第二种方法能够更少地修改代码而专注于*ML布局文件,是目前更为推崇的架构方式。
一样点:
对于两种方法创立的菜单,响应其事件的方法是一样的,即都是通过重写Activity类的onOptionsItemSelected方法来实现其事件响应的。
任务四“我的日记〞的设计与实现
第一局部知识回忆与思考
1.Android中的生命周期中有哪几种状态?
答:
活动状态、暂停状态、停顿状态、销毁状态。
2.Intent有哪些重要属性,Activity之间是如何进展信息的传递的?
答:
属性:
Component〔组件〕、Action〔动作〕、Data〔数据〕、Category〔分类〕、Type〔类型〕、E*tra〔扩展信息〕。
在Android中是通过intent中的属性进展信息的传递的。
第二局部职业能力训练
一、单项选择题〔以下答案中有一项为哪一项正确的,将正确答案填入括号〕
1.以下哪个控件可以用来显示进度?
〔B〕
A.EditTe*tB.ProgressBarC.Te*tViewD.Button
2.以下哪个方法可以用来获得进度条的当前进度值?
〔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/1
B.ACTION_DIALcontent:
//contacts/people/1
C.ACITON_EDITcontent:
//contacts/people/1
D.ACTION_CALLcontent:
//contacts/people/1
7.在文件存储中,假设要获得SD卡的存储路径,需要调用〔A〕。
A.Environment.getE*ternalStorageDirectory()
B.openFileOutput(Stringname,intmode)
C.File (File dir, String name)
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_HOME
B.CATEGORY_PREFERENCE
C.ACTION_MAIN
D.CATEGORY_BROWSABLE
10.activity生命周期中调用的第一个回调函数是〔A〕。
A.onCreated()
B.onStart()
C.onResume()
D.onRestart()
二、填空题〔请在括号填空〕
1.假设用DDMS查看,存储在手机SD卡上的文件的路径为〔/mnt/sdcard/〕。
2.SharedPreferences所存储的数据是以〔“键-值〞〕的格式保存在*ml文件中。
3.当android:
indeterminate取值为〔true〕时,开启了进度条的“不确定模式〞。
4.Android中提供了标准的Java文件输入输出流,分别为〔File〕InputStream、〔File〕OutputStream。
5.category类别为〔CATEGORY_LAUNCHER〕的Activity会在Android系统启动的时候最优先启动起来。
三、简答题
1.简述ProgressBar如何与Handler结合在一起使用。
答:
在布局文件写入进度条控件;
在源程序文件中申明Handler对象handler、Progressbar类对象progressbar、int型对象progress表示当前进度,以及两个常量STOP和CONTINUE分别代表停顿、继续两种消息;
实例化Handler对象handler,在handleMessage方法,更新进度条UI界面;
重写onCreate()方法,开启了一个子线程,该线程的run()方法中利用handler发送消息。
2.简述Android中如何利用文件存储来读写SD卡上的T*T文件。
答:
改写AndroidManifest.*ml文件,为SD卡设置创立与删除文件权限、写入数据的权限:
设置读写模式:
利用Environment.getE*ternalStorageState().equals(Environment.MEDIA_MOUNTED)判断SD卡是否正常安装在手机上;
在SD卡安装正常的情况下,利用Filefile=newFile(Environment.getE*ternalStorageDirectory(),filename)获得该文件对应的File对象;
利用outputStream=newFileOutputStream(file,append);获得该文件的输出流、inputStream=newFileInputStream(file);获得该文件的输入流;
利用输入流inputstream、输出流outputstream对文件进展标准的java读写。
任务五音乐播放器的设计与实现
第一局部知识回忆与思考
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.ArrayAdapterB.SimpleAdapterC.SimpleCursorAdapterD.BaseAdapter
3.ListView与List集合的多个对象进展数据绑定时使用〔B〕。
A.ArrayAdapterB.SimpleAdapterC.SimpleCursorAdapterD.BaseAdapter
4.ListView与Cursor提供的数据进展绑定时使用〔C〕。
A.ArrayAdapterB.SimpleAdapterC.SimpleCursorAdapterD.BaseAdapter
5.Android中MediaPlayer无法播放〔D〕。
A.程序资源文件B.网络上的文件C.SD卡上的文件D.其他程序资源文件
6.以下表示系统自定义的只显示一行文字的布局文件是〔B〕。
7.MediaPlayer对象执行〔D〕之后处于Idle状态。
A.start()B.stop()C.pause()D.reset()
8.以下说法错误的选项是〔D〕。
A.prepare()是同步加载B.prepare(