《【精编】Android应用开发基础习题集.pdf》由会员分享,可在线阅读,更多相关《【精编】Android应用开发基础习题集.pdf(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 任务一 Android开发环境的搭建第一部分知识回顾与思考1 Android 的四层架构分别包括哪几层分别起到什么作用答:Linux 内核层(Linux Kernel):基于Linux 内核,内核为上层系统提供了系统服务。系统库层(Libraries):系统库基于C/C+语言实现,通过接口向应用程序框架层提供编程接口。应用框架层(Application Framework):为开发者提供了一系列的Java API,包括图形用户界面组件View、SQLite 数据库相关的API、Service组件等。应用程序层(Applications):包含了Android 平台中各式各样的应用程序。第二
2、部分职业能力训练一、单项选择题(下列答案中有一项是正确的,将正确答案填入括号内)1 Android 四层架构中,应用框架层使用的是什么语法(C )A C BC+CJava DAndroid2 Android 四层架构中,系统库层使用的是什么语法(B )A VB BC/C+CJava DAndroid3应用程序员编写的Android 应用程序,主要是调用(B )提供的接口进行实现。A 应用程序层 B应用框架层 C应用视图层 D系统库层二、填空题(请在括号内填空)1在 Android 智能终端中,有很多应用如拍照软件、联系人管理软件,它们都属于Android 的(应用程序)层。2为了让程序员更加方
3、便的运行调试程序,Android 提供了(模拟器),可以方便的将程序运行其上,而不要实际的移动终端。3为了支持Java 程序运行,我们需要安装(JDK)。三、简答题1简述 Android 开发环境安装的步骤。答:下载并安装JDK,配置 JDK的环境变量;从 Anroid 官网上下载Android开发组件(包含Eclipse和 Android SDK、ADT);安装 Android 开发环境(包括配置Android SDK的环境变量、打开 Eclipse通过菜单设定Android SDK路径)。2简述 Android 应用程序创建和运行的步骤。2 答:通过菜单创建Android应用程序,设置应用
4、程序名、Android版本等基本信息。点击菜单中的运行按钮可以直接运行Android 项目(也可以通过菜单配置运行参数,指定运行的模拟器)。3 任务二星座查询工具的设计与实现第一部分知识回顾与思考1 Android 的属性、方法、监听器如何使用,它们分别起了什么作用答:Android控件的属性,可以通过xml 文件设定,通过设定控件的属性能够静态的改变控件的样式和一些特性;控件的方法,可以通过编写代码动态调用方法,在程序中调用方法可以动态的修改控件的样式、也可以获得控件的相关信息;控件的监听器,可以通过编码为控件创建、设定监听器,监听器可以监听控件发生的事件,一旦发生某个监听的事件可以触发相应
5、的处理代码。2回顾一下Android工程中重要的目录和文件,它们的作用是什么答:src目录:该目录中存放的是我们需要编辑的Java 源代码;gen 目录:目录中存放所有由Android开发工具自动生成的文件,它包含了界面、图标、常量等各种资源的id;bin目录:目录中的内容是程序运行后自动生成的,不需要我们编辑,里面包含自动生成的可执行文件(如);res 目录:该目录中放置程序的重要资源,包括图片、布局、字符串等资源;文件:该文件非常重要,列出了应用程序许多基本信息(如版本、应用程序名称、启动图标等),其中还包括了程序使用到的各种服务(如电话服务、互联网服务、短信服务、GPS服务等),该文件甚
6、至包括了程序中所使用到的各个Activity信息。第二部分职业能力训练一、单项选择题(下列答案中有一项是正确的,将正确答案填入括号内)1以下哪个控件用来显示图片(A)A ImageView BTextView CEditText DButton2如果要实现用户单击后触发一定的处理,以下哪个控件最合适(D )A ImageView BTextView CEditText DButton3如果我们需要捕捉某个控件的事件,我们需要为该控件创建(C )。A 属性 B方法 C监听器 D工程4以下的哪个属性是用来表示引用图片的资源ID(D )A text Bimg Cid Dsrc4 5以下的哪个属性是用
7、来控制虚拟键盘输入类型(B )A keyboard BinputType Ctext Dsrc6 Android工程启动是最先加载的是,如果有多个Activity,以下哪个属性决定了该Activity最先被加载(A )A B D 如果我们需要导入一张图片资源,我们需要将图片放在哪个工程目录中(A)。A resdrawable B resstring Crespicture Dresicon8如果我们需要创建一个字符串资源,我们需要将字符串放在resvalues的哪个文件中(B )A B C D9以下哪个布局最不适合在多种移动终端上使用(C )A 相对布局 B线性布局C绝对布局 D表格布局10相
8、对布局中,如果指定一个控件位于引用控件的左侧,应该使用(D )属性。A android:layout_toParentLeftOf Bandroid:layout_alignParentLeftC android:layout_alignLeft Dandroid:layout_toLeftOf二、填空题(请在括号内填空)1在Android控件使用过程中,经常需要根据控件的ID获取控件的对象,我们可以使用(findViewById)方法。2导入图片时,需要特别注意图片的名称不可以包含(大写字母、特殊符号)。3在创建控件的时候,可以在布局文件的界面视图中拖拉控件,但本质上还是编辑的(XML)文件
9、。4表格布局可以包含多行,(TableRow)代表是一行。5如果创建了一个字符串资源为hello,那么它的ID 应该是()。三、简答题1简述五种布局的特点和运用场合。框架布局:所有控件排列在左上角,用于制作特别的控件,初学者使用较少;线性布局:控件可以按照水平或者垂直方向进行排列,控件排列方式简单;绝对布局:可以指定控件摆放的位置,虽然摆放控件很容易,但是不适合多种分辨率和尺寸的屏幕,需要慎用;相对布局:能够设定控件之间的相对关系、控件与父容器的相对关系,控件排列方式比较灵活,是常用的布局之一;表格布局:通过配合使用TableRow 可以将控件以表格形式排列。2简述本节课程所学控件的特点和作用
10、。5 TextView:最基础的控件,用做显示文本信息;Button 控件:通过监听器单击事件,可以实现用户点击按钮后触发相应动作;ImageView 控件:用于显示图片的控件,可以通过src 属性指定显示的图片,可以通过调用方法来动态设定图片;EditText控件:输入文本控件,主要用于让用户输入信息,inputtype属性可以指定输入文本时的键盘特征;DatePicker控件和TimePicker控件:日期和时间控件,可以显示日期和时间,也可以让用户进行日期和时间的选择。6 任务三计算器的设计与实现第一部分知识回顾与思考1 Android 提供了多种提示方式,思考一下它们各自的优缺点答:A
11、ndroid提供的常见的提示信息的方式有Toast、Dialog以及 Notification。它们各自的特点如下:(1)Toast 只能给用户提示信息,过一定时间后信息自动消失,用户只能阅读提示的信息,不能做出交互性动作,也不能修改Toast 的界面。(2)Dialog不仅能给用户提示信息,还可以让用户选择对提示信息的响应方式,更复杂的,用户可以定制Dialog 的界面。(3)Notification提供了更高级的提示信息的方式,手机界面上有专门用于显示Notification的区域。用户可以向下滑动拉开通知栏,查看通知的内容,还可以进一步打开相关的Activity来对通知信息做进一步的处理
12、。2回顾一下Android的调试流程,在你的程序遇到问题的时候,你应该如何去定位解决问题答:当程序运行遇到问题时,我们应按如下的步骤去推测问题所在和调试程序:(1)推理 Bug 出现时所发生的动作(2)该动作所对应的程序代码(3)在该行代码处设置断点(4)启动程序调试,重复刚才的操作(5)程序运行至断点时停止,然后单步执行程序(6)单步执行时注意所涉及变量值的变化(7)发现变量值异常或处理错误(8)修改代码再次运行第二部分职业能力训练一、单项选择题(下列答案中有一项是正确的,将正确答案填入括号内)1 Toast 创建完毕后,需要显示出来此时需要调用以下哪个方法(B )A makeText Bs
13、how C create D view2以下哪个类对应Android中的提示对话框(A )A AlertDialog BDialog CShowDialog DAlert3对话框中有几个默认Button,(A )代表是确定按钮。7 A PositiveButton BNegativeButton CNeutralButton DOKButton4 Android 中有一个服务用来管理通知,它是(B )。A Service B NotificationManager CNotice DDialogBuilder5我们单击模拟器上的菜单键所产生的菜单,称为(D )。A ContextMenu BK
14、eyMenu C PopupMenu D OptionMenu6以下的哪个方法会在菜单创建时被调用(A )A onCreateOptionsMenu BonCreateMenu ConCreateContextMenu DonCreate7以下的哪个方法会在菜单项被单击时被调用(C )A onContextItemSelected B onCreateOptionsMenu C onOptionsItemSelected DonItemSelected8以下哪个类用于构造数组类型数据的适配器(D )A Adapter BCursorAdapter CSimpleAdapter DArrayAd
15、apter9 Spinner 控件的子项被选中所对应的监听器为(A )。A setOnItemSelectedListener B OnClickListener C OnLongClickListener DsetOnItemListener10以下哪个日志级别最高(D )A WARN BINFO CDEBUG D ERROR二、填空题(请在括号内填空)1创建 Toast 使用 makeText 方法的第一个参数代表Activity的(对象)。2用户单击移动终端的(Menu )按钮,会触发创建Option Menu。3 Spinner的父类是(AdapterView),如何希望将数据显示到这
16、样的控件上,一般都需要使用(Adapter)进行数据与控件的绑定。4调试是为了让程序执行到某行代码时停顿,我们需要在这一行设置(端点)。5在 Eclipse中有一个窗口用于管理日志,该窗口是(LogCat )。三、简答题1如果程序在运行时就发生了崩溃,你会如何进行推测和调试答:程序运行发生崩溃时,我们应按如下的步骤去推测问题所在和调试程序:(1)推理 Bug 出现时所发生的动作(2)该动作所对应的程序代码(3)在该行代码处设置断点(4)启动程序调试,重复刚才的操作8(5)程序运行至断点时停止,然后单步执行程序(6)单步执行时注意所涉及变量值的变化(7)发现变量值异常或处理错误(8)修改代码再次
17、运行2简述两种OptionMenu 创建方法的相同点和不同点。答:不 同 点:第 一 种 方 法 完 全 通 过 代 码 的 方 式 来 创 建 菜 单,即 通 过 重 写Activity类 的onCreateOptionsMenu方法来创建菜单;而第二种方法则是通过定义布局文件的方式来创建菜单,即通过定义菜单布局文件来创建菜单。相比较来说,第二种方法非常好地实现了逻辑代码和表现样式的分离,特别是在需要修改菜单样式时,第二种方法能够更少地修改代码而专注于XML布局文件,是目前更为推崇的架构方式。相同点:对于两种方法创建的菜单,响应其事件的方法是一样的,即都是通过重写Activity类的onOp
18、tionsItemSelected方法来实现其事件响应的。9 任务四“我的日记”的设计与实现第一部分知识回顾与思考1.Android中的生命周期中有哪几种状态答:活动状态、暂停状态、停止状态、销毁状态。2 Intent有哪些重要属性,Activity之间是如何进行信息的传递的答:属性:Component(组件)、Action(动作)、Data(数据)、Category(分类)、Type(类型)、Extra(扩展信息)。在Android 中是通过 intent中的属性进行信息的传递的。第二部分职业能力训练一、单项选择题(下列答案中有一项是正确的,将正确答案填入括号内)1以下哪个控件可以用来显示进
19、度(B )A EditText BProgressBar C TextView DButton2以下哪个方法可以用来获得进度条的当前进度值(A )A public synchronized int getProgress()B public synchronized void setIndeterminate(boolean indeterminate)C public synchronized void setProgress(int progress)D Public final synchronized void incrementProgressBy(int diff)3在 Activ
20、ity的生命周期中,当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_VIEW 10 B ACTION_DIAL ,若要获得
21、SD卡的存储路径,需要调用(A )。A Environment.getExternalStorageDirectory()B openFileOutput(String name,int mode)C File(File dir,String name)D ()8 Android 中 Environment.MEDIA_MOUNTED 代表 SD的(A )状态。A 手机已插上SD卡,并且应用程序对SD卡具有读写权限。B 手机已插上SD卡,但是应用程序对SD卡只具有读权限。C 手机上没有SD卡D SD存在但是没有被安装,可以通过USB大容量存储器共享9 category为(A )的 Activi
22、ty会在 Android 系统的主屏幕(Home)显示。A CATEGORY_HOME B CATEGORY_PREFERENCE C ACTION_MAIN D CATEGORY_BROWSABLE10activity生命周期中调用的第一个回调函数是(A )。A onCreated()B onStart()C onResume()D onRestart()二、填空题(请在括号内填空)1若用 DDMS 查看,存储在手机SD卡上的文件的路径为(/mnt/sdcard/)。2 SharedPreferences所存储的数据是以(“键-值”)的格式保存在xml 文件中。3当 android:inde
23、terminate取值为(true )时,开启了进度条的“不确定模式”。4 Android中提供了标准的Java 文件输入输出流,分别为(File)InputStream、(File)OutputStream。5 category类别为(CATEGORY_LAUNCHER)的 Activity会在 Android 系统启动的时候最优先启动起来。三、简答题1简述 ProgressBar如何与 Handler结合在一起使用。11 答:在布局文件写入进度条控件;在源程序文件中申明Handler对象handler、Progressbar类对象progressbar、int型对象progress表示当前
24、进度,以及两个常量STOP和 CONTINUE 分别代表停止、继续两种消息;实例化 Handler 对象 handler,在 handleMessage 方法,更新进度条UI 界面;重写 onCreate()方法,开启了一个子线程,该线程的run()方法中利用handler发送消息。2简述 Android 中如何利用文件存储来读写SD卡上的 TXT文件。答:改写文件,为SD卡设置创建与删除文件权限、写入数据的权限:设置读写模式:利用().equals判断 SD卡是否正常安装在手机上;在SD 卡安装正常的情况下,利用File file=new File(),filename)获得该文件对应的Fi
25、le对象;利用 outputStream=new FileOutputStream(file,append);获得该文件的输出流、inputStream=new FileInputStream(file);获得该文件的输入流;利用输入流 inputstream、输出流 outputstream对文件进行标准的java 读写。12 任务五音乐播放器的设计与实现第一部分知识回顾与思考1ListView如何与数据进行绑定答:最简单的方式,可以在布局文件中为ListView指定一个字符串数组。其次,可以使用Adapter将 ListView与数组进行绑定,根据不同的数据源需要使用与其对应的Adapte
26、r。2ArrayAdapter、SimpleAdatper、SimpleCursorAdapter的作用分别是什么如何使用它们答:ArrayAdapter:可用于与数组进行数据绑定;SimpleAdapter:可用于与List集合的多个对象进行数据绑定;SimpleCursorAdapter:用于与 Cursor 提供的数据进行绑定。具体使用方式参考本任务支撑知识三、四、五小节。3MediaPlayer对象的生命周期是怎样的答:用new 操作符创建一个新的MediaPlayer对象或是对已有对象调用reset()方法之后MediaPlayer对象处于Idle状态。调用setDataSource
27、()方法会使处于Idle状态的对象转变为Initialized状态。在开始播放之前,MediaPlayer对象必须要进入Prepared 状态,有同步和异步两种方式可以使MediaPlayer对象进入 Prepared 状态。要开始播放,必须调用start()方法。当此方法成功返回时,MediaPlayer的对象处于Started状态。当调用pause()方法并返回时,会使MediaPlayer对象进入Paused 状态。调用stop()方法会停止播放,并且还会让一个处于Started、Paused、Prepared 或 PlaybackCompleted状态的 MediaPlayer进入 S
28、topped 状态。具体参考本任务支撑知识第六节。4回顾一下定时器所涉及几个类的作用以及这几个类之间的关系(Timer、TimerTask、Handle、Message)。答:Timer 启动后会周期性的触发TimerTask 类的 run 方法,在 run 方法中会向UI 线程的 Handle对象发送Message,从而触发Handle 对象的 handleMessage 方法,在该方法中可以进行UI 线程中控件更新等操作。第二部分职业能力训练一、单项选择题(下列答案中有一项是正确的,将正确答案填入括号内)1 ListView是常用的(C )类型控件。A 按钮 B图片 C列表 D下拉列表2
29、ListView与数组或List集合的多个值进行数据绑定时使用(A )。13 A ArrayAdapter B SimpleAdapter CSimpleCursorAdapter DBaseAdapter3 ListView与 List集合的多个对象进行数据绑定时使用(B )。A ArrayAdapter B SimpleAdapter CSimpleCursorAdapter DBaseAdapter4 ListView与 Cursor 提供的数据进行绑定时使用(C )。A ArrayAdapter B SimpleAdapter CSimpleCursorAdapter DBaseAda
30、pter5 Android 中 MediaPlayer无法播放(D )。A 程序资源文件 B网络上的文件 C SD卡上的文件 D其他程序资源文件6以下表示系统自定义的只显示一行文字的布局文件是(B )。A B D对象执行(D )之后处于Idle状态。A start()Bstop()Cpause()Dreset()8下列说法错误的是(D )。A prepare()是同步加载 B prepare()方法返回时已加载完毕C prepareAsync()是异步加载 D prepareAsync()方法返回时已加载完毕9如果希望启动定时器后5s 执行第一次执行定时器任务,然后每隔3s 执行定时器任务,s
31、chedule方法的后两个参数需要设定为(D )。A 5,2 B5,3 C 5000,2000 D 5000,3000二、填空题(请在括号内填空)1 创建 ListView有两种方式包括直接使用ListView控件和(让 Acitivity继承 ListActivity )。2 ListView继承自(AdapterView )。3 Adapter 配置好以后,需要用(setAdapter )函数将 ListView和 Adapter 绑定。为 MediaPlayer指定加载的音频文件时可以使用MediaPlayer提供的静态方法(create())和非静态方法(setDataSource()
32、)。4调用 prepareAsync()方法会使MediaPlayer对象进入(preparing)状态并返回。5如果定时器子线程试图更新TextView 的文本显示,将会(抛出异常)。三、简答题1简述构造SimpleCursorAdapter时各个参数的作用。答:参数 table:数据库中表格的名称;参数 columns:需要查询的列名的数组;参数 selection:数据库查询条件,相当于 SQL语句中 where 后面的条件;参数 selectionArgs:selection语句中可以使用“”来指定数值,数据库 where 条件后面经常会带号,这个参数就是号的替代者;参数 groupB
33、y:查询数据时分组的规则;参数having:聚合操作;参数orderBy:查询数据时排序的规则。14 2简述 MediaPlayer对象的 prepareAsync()方法和 prepare()方法的区别及其各自使用场景。答:prepareAsync()方法和 prepare()方法分别是异步加载和同步加载,prepareAsync()方法执行完毕后 MediaPlayer进入 preparing状态,而 prepare()方法执行完毕后MediaPlayer进入 prepared 状态。prepareAsync()方法一般用于加载网络音频文件等耗时的场景,而加载本地音频的时候一般使用prep
34、are()就可以了。15 16 任务六贪吃蛇游戏的设计与实现第一部分知识回顾与思考1 回顾一下操作SQLite 数据库的几个类的作用和之间的关系(SQLiteOpenHelper、SQLiteDatabase、Cursor)。答:SQLiteOpenHelper类:需要进行数据操作,需要创建一个类继承自该类,通过该类实现数据库的创建和升级;SQLiteDatabase 类:通过 SQLiteOpenHelper类可以获得SQLiteDatabase对象,通过该对象可以进行数据库的增加、删除、修改、查询;Cursor类:查询数据库后返回Cursor 对象,通过操作该对象可以对返回的数据集从行的移
35、动,并且获取当前行指定列的数据。2回顾一下自定义控件的方法和监听器的作用。答:自定义控件的共有方法:通过编写自定义控件的方法,可以返回当前控件的状态,也可以设定控件的参数,本质上是控件外影响控件内部的途径;自定义控件的监听器:通过提供监听器,可以让控件外部监视控件内部发生的事件,通过方法的回调触发控件外部的处理,本质上是控件内部通知控件外部的途径。第二部分职业能力训练一、单项选择题(下列答案中有一项是正确的,将正确答案填入括号内)1 Android 中有许多控件,这些控件无一例外的都继承自(D )类。A Control BWindowC TextView D View2 Android 中有许
36、多布局,它们均是用来容纳子控件和子布局的,这些布局均继承自(B )。A Layout B ViewGroup CContainer DLinerLayout3自定义控件时需要重写View 类的很多方法,以下哪个方法是与焦点相关(B )A onTouchEvent B onFocusChanged C onAttachedToWindow D onDraw4以下哪个方法是在控件尺寸发生变化时会被调用(C )。A onFinishInflate BonMeasure C onSizeChanged D onLayout5进行图形绘制时需要调用Canvas 类的方法,以下哪个方法可以用来绘制三角形的
37、三条边(B )A drawPoint BdrawLine CdrawCircle D drawRect6 Paint类用来描述画笔,以下哪个属性Paint 不能设定(B )17 A 文字大小B坐标位置C抗锯齿效果D文字对齐方式7通过命令的方式进入Android 内核的数据库后,哪个命令可以查看数据表创建语句(D )A .databases B.tables C.create D.schema8以下哪个方法能够实现数据库的数据插入(C )A onCreate BonUpgrade CexecSQL D rawQuery9 Cursor 类的哪个方法能够将游标指向数据集的第一行(B )A move
38、ToLast B moveToPosition CgetCount DmoveToNext10以下哪种数据库操作不能使用execSQL方法执行(C )A插入记录 B删除记录 C查询记录 D创建数据表二、填空题(请在括号内填空)1通过调用View 类的(Invalidate())方法可以手动触发控件的重绘。2颜色是通过哪四项元素决定的(R )、(G )、(B )、(A )3如果通过adb shell登录进入Android内核后,通过(sqlite3 testdb )命令可以进入数据库testdb。4通过调用(SQLiteDatabase )类的(rawQuery/Query )方法可以实现对数据
39、库表格的查询。三、简答题1简述几种Android数据存储的方法和特点。答:文件存储:操作文件的方法与Java 完全一致,可以将信息存储到应用程序的默认目录、指定目录、SD卡目录中去,但对于结构化数据的解析比较麻烦;SharedPreferences:轻量级的数据存储方式,通过该类可以方便的实现数据的存入和读取,主要用于参数的存储;SQLite 数据库:支持SQL语句,通过配合使用SQLiteOpenHelper、SQLiteDatabase、Cursor 这几个类,能够轻松的实现结构化数据的存储和读取。2如果让你自定义一个温度曲线控件,能够根据几个时间点的温度绘制出温度变化折线图,你会如何去实现呢答:自定义一个控件继承自View 类。提供公用的方法,能够将时间和温度信息配对的传入到控件内部。重写 onDraw 方法,当数据信息发生变化时,根据所有的时间和温度信息进行图形绘制,绘制流程为:重绘控件的背景色;利用 drawLine 方法,绘制控件的X轴和 Y轴,并计算时间和温度区间,进行X和 Y轴的刻度标识;18 计算各时间点的温度坐标,调用 drawPoint方法绘制相应的点,再调用 drawLine 方法将这些点用连线连接在一起形成折线。如果要标识每个点的信息,可以利用drawText 方法绘制点的时间和温度数值。
限制150内