1、Android应用开发基础习题Android应用开发基础习题任务一 Android开发环境的搭建第一部分 知识回顾与思考1Android的四层架构分别包括哪几层?分别起到什么作用? 答:Linux内核层(Linux Kernel):基于Linux内核,内核为上层系统提供了系统服务。 系统库层(Libraries):系统库基于C/C+语言实现,通过接口向应用程序框架层提供编程接口。 应用框架层(Application Framework):为开发者提供了一系列的Java API,包括图形用户界面组件View、SQLite数据库相关的API、Service组件等。 应用程序层(Applicatio
2、ns):包含了Android平台中各式各样的应用程序。第二部分 职业能力训练一、单项选择题(下列答案中有一项是正确的,将正确答案填入括号内)1Android四层架构中,应用框架层使用的是什么语法?( C )AC BC+ CJava DAndroid2Android四层架构中,系统库层使用的是什么语法?( B )AVB BC /C+ CJava DAndroid3应用程序员编写的Android应用程序,主要是调用( B )提供的接口进行实现。A应用程序层 B应用框架层 C应用视图层 D系统库层二、填空题(请在括号内填空)1在Android智能终端中,有很多应用如拍照软件、联系人管理软件,它们都属
3、于Android的(应用程序)层。2为了让程序员更加方便的运行调试程序,Android提供了(模拟器),可以方便的将程序运行其上,而不要实际的移动终端。3为了支持Java程序运行,我们需要安装(JDK)。三、简答题1简述Android开发环境安装的步骤。 答:下载并安装JDK,配置JDK的环境变量; 从Anroid官网上下载Android开发组件(包含Eclipse和Android SDK、ADT); 安装Android开发环境(包括配置Android SDK的环境变量、打开Eclipse通过菜单设定Android SDK路径)。2简述Android应用程序创建和运行的步骤。答:通过菜单创建A
4、ndroid应用程序,设置应用程序名、Android版本等基本信息。点击菜单中的运行按钮可以直接运行Android项目(也可以通过菜单配置运行参数,指定运行的模拟器)。任务二 星座查询工具的设计与实现第一部分 知识回顾与思考1Android的属性、方法、监听器如何使用,它们分别起了什么作用?答:Android控件的属性,可以通过xml文件设定,通过设定控件的属性能够静态的改变控件的样式和一些特性;控件的方法,可以通过编写代码动态调用方法,在程序中调用方法可以动态的修改控件的样式、也可以获得控件的相关信息;控件的监听器,可以通过编码为控件创建、设定监听器,监听器可以监听控件发生的事件,一旦发生某
5、个监听的事件可以触发相应的处理代码。2回顾一下Android工程中重要的目录和文件,它们的作用是什么?答: src目录:该目录中存放的是我们需要编辑的Java源代码; 目录:目录中存放所有由Android开发工具自动生成的文件,它包含了界面、图标、常量等各种资源的id; 目录:目录中的内容是程序运行后自动生成的, Atext Bimg Cid Dsrc5以下的哪个属性是用来控制虚拟键盘输入类型?( B )Akeyboard BinputType Ctext Dsrc6Android工程启动是最先加载的是AndroidManifest.xml,如果有多个Activity,以下哪个属性决定了该Ac
6、tivity最先被加载?( A )Aandroid.intent.action.MAIN Bandroid.intent.action.LAUNCHERCandroid.intent.action.ACTIVITY Dandroid.intent.action.ICON7如果我们需要导入一张图片资源,我们需要将图片放在哪个工程目录中(A)。Aresdrawable Bresstring Crespicture Dresicon8如果我们需要创建一个字符串资源,我们需要将字符串放在resvalues的哪个文件中?( B )Avalue.xml Bstrings.xml Cdimens.xml D
7、styles.xml9以下哪个布局最不适合在多种移动终端上使用?( C )A相对布局 B线性布局C绝对布局 D表格布局10相对布局中,如果指定一个控件位于引用控件的左侧,应该使用( D )属性。Aandroid:layout_toParentLeftOf Bandroid:layout_alignParentLeftCandroid:layout_alignLeft Dandroid:layout_toLeftOf二、填空题(请在括号内填空)1在Android控件使用过程中,经常需要根据控件的ID获取控件的对象,我们可以使用( findViewById )方法。2导入图片时,需要特别注意图片的
8、名称不可以包含(大写字母、特殊符号 )。3在创建控件的时候,可以在布局文件的界面视图中拖拉控件,但本质上还是编辑的( XML )文件。4表格布局可以包含多行,( TableRow)代表是一行。5如果创建了一个字符串资源为hello,那么它的ID应该是( R.String.hello )。三、简答题1简述五种布局的特点和运用场合。框架布局:所有控件排列在左上角,用于制作特别的控件,初学者使用较少;线性布局:控件可以按照水平或者垂直方向进行排列,控件排列方式简单;绝对布局:可以指定控件摆放的位置,虽然摆放控件很容易,但是不适合多种分辨率和尺寸的屏幕,需要慎用;相对布局:能够设定控件之间的相对关系、
9、控件与父容器的相对关系,控件排列方式比较灵活,是常用的布局之一;表格布局:通过配合使用TableRow可以将控件以表格形式排列。2简述本节课程所学控件的特点和作用。TextView:最基础的控件,用做显示文本信息;Button控件:通过监听器单击事件,可以实现用户点击按钮后触发相应动作;ImageView控件:用于显示图片的控件,可以通过src属性指定显示的图片,可以通过调用方法来动态设定图片;EditText控件:输入文本控件,主要用于让用户输入信息,inputtype属性可以指定输入文本时的键盘特征;DatePicker控件和TimePicker控件:日期和时间控件,可以显示日期和时间,也
10、可以让用户进行日期和时间的选择。任务三 计算器的设计与实现第一部分 知识回顾与思考1Android提供了多种提示方式,思考一下它们各自的优缺点?答:Android提供的常见的提示信息的方式有Toast、Dialog以及Notification。它们各自的特点如下:(1)Toast只能给用户提示信息,过一定时间后信息自动消失,用户只能阅读提示的信息,不能做出交互性动作,也不能修改Toast的界面。(2)Dialog不仅能给用户提示信息,还可以让用户选择对提示信息的响应方式,更复杂的,用户可以定制Dialog的界面。(3)Notification提供了更高级的提示信息的方式,手机界面上有专门用于显
11、示Notification的区域。用户可以向下滑动拉开通知栏,查看通知的内容,还可以进一步打开相关的Activity来对通知信息做进一步的处理。2回顾一下Android的调试流程,在你的程序遇到问题的时候,你应该如何去定位解决问题?答:当程序运行遇到问题时,我们应按如下的步骤去推测问题所在和调试程序:(1)推理Bug出现时所发生的动作(2)该动作所对应的程序代码(3)在该行代码处设置断点(4)启动程序调试,重复刚才的操作(5)程序运行至断点时停止,然后单步执行程序(6)单步执行时注意所涉及变量值的变化(7)发现变量值异常或处理错误(8)修改代码再次运行第二部分 职业能力训练一、单项选择题(下列
12、答案中有一项是正确的,将正确答案填入括号内)1Toast创建完毕后,需要显示出来此时需要调用以下哪个方法?( B )AmakeText Bshow Ccreate Dview2以下哪个类对应Android中的提示对话框?( A )AAlertDialog BDialog CShowDialog DAlert3对话框中有几个默认Button,( A )代表是确定按钮。APositiveButton BNegativeButton CNeutralButton DOKButton4Android中有一个服务用来管理通知,它是( B )。AService BNotificationManager C
13、Notice DDialogBuilder5我们单击模拟器上的菜单键所产生的菜单,称为( D )。AContextMenu BKeyMenu CPopupMenu DOptionMenu6以下的哪个方法会在菜单创建时被调用?( A )AonCreateOptionsMenu BonCreateMenu ConCreateContextMenu DonCreate7以下的哪个方法会在菜单项被单击时被调用?( C )AonContextItemSelected BonCreateOptionsMenu ConOptionsItemSelected DonItemSelected8以下哪个类用于构造
14、数组类型数据的适配器?( D )AAdapter BCursorAdapter CSimpleAdapter DArrayAdapter9Spinner控件的子项被选中所对应的监听器为( A )。AsetOnItemSelectedListener BOnClickListener COnLongClickListener DsetOnItemListener10以下哪个日志级别最高?( D )AWARN BINFO CDEBUG DERROR二、填空题(请在括号内填空)1创建Toast使用makeText方法的第一个参数代表Activity的( 对象 )。2用户单击移动终端的( Menu )
15、按钮,会触发创建Option Menu。3Spinner的父类是( AdapterView ),如何希望将数据显示到这样的控件上,一般都需要使用(Adapter)进行数据与控件的绑定。4调试是为了让程序执行到某行代码时停顿,我们需要在这一行设置( 端点 )。5在Eclipse中有一个窗口用于管理日志,该窗口是( LogCat )。三、简答题1如果程序在运行时就发生了崩溃,你会如何进行推测和调试?答:程序运行发生崩溃时,我们应按如下的步骤去推测问题所在和调试程序:(1)推理Bug出现时所发生的动作(2)该动作所对应的程序代码(3)在该行代码处设置断点(4)启动程序调试,重复刚才的操作(5)程序运
16、行至断点时停止,然后单步执行程序(6)单步执行时注意所涉及变量值的变化(7)发现变量值异常或处理错误(8)修改代码再次运行2简述两种OptionMenu创建方法的相同点和不同点。答: 不同点:第一种方法完全通过代码的方式来创建菜单,即通过重写Activity类的onCreateOptionsMenu方法来创建菜单;而第二种方法则是通过定义布局文件的方式来创建菜单,即通过定义resmenumain.xml菜单布局文件来创建菜单。相比较来说,第二种方法非常好地实现了逻辑代码和表现样式的分离,特别是在需要修改菜单样式时,第二种方法能够更少地修改代码而专注于XML布局文件,是目前更为推崇的架构方式。相
17、同点:对于两种方法创建的菜单,响应其事件的方法是一样的,即都是通过重写Activity类的onOptionsItemSelected方法来实现其事件响应的。任务四 “我的日记”的设计与实现第一部分 知识回顾与思考1.Android中的生命周期中有哪几种状态? 答:活动状态、暂停状态、停止状态、销毁状态。2Intent有哪些重要属性,Activity之间是如何进行信息的传递的? 答:属性:Component(组件)、Action(动作)、Data(数据)、Category(分类)、Type(类型)、Extra(扩展信息)。 在Android中是通过intent中的属性进行信息的传递的。第二部分
18、职业能力训练一、单项选择题(下列答案中有一项是正确的,将正确答案填入括号内)1以下哪个控件可以用来显示进度?( B )AEditText BProgressBar CTextView DButton2以下哪个方法可以用来获得进度条的当前进度值?( A )Apublic synchronized int getProgress()Bpublic synchronized void setIndeterminate (boolean indeterminate)Cpublic synchronized void setProgress(int progress)DPublic final sync
19、hronized void incrementProgressBy(int diff)3在Activity的生命周期中,当Activity处于栈顶时,此时处于哪种状态?( A )A活动 B暂停 C停止 D销毁4在Activity的生命周期中,当Activity被某个AlertDialog覆盖掉一部分之后,会处于哪种状态?( A )A活动 B暂停 C停止 D销毁。5Action属性ACTION_DIAL代表( A )标准动作。A显示电话拨号面板 B显示直接打电话的界面 C向用户显示数据 D提供编辑数据的途径6如果需要显示id为1的联系人信息,Intent中的Action属性与Data属性应该设定
20、为什么?( A )。AACTION_VIEW content:/contacts/people/1 BACTION_DIAL content:/contacts/people/1CACITON_EDIT content:/contacts/people/1DACTION_CALL content:/contacts/people/17在文件存储中,若要获得SD卡的存储路径,需要调用( A )。A Environment.getExternalStorageDirectory()B openFileOutput(String name,int mode) C File(Filedir,Strin
21、gname)D Environment.getDataDirectory()8Android中Environment.MEDIA_MOUNTED代表SD的( A )状态。A手机已插上SD卡,并且应用程序对SD卡具有读写权限。B手机已插上SD卡,但是应用程序对SD卡只具有读权限。C手机上没有SD卡DSD存在但是没有被安装,可以通过USB大容量存储器共享9category为( A )的Activity会在Android系统的主屏幕(Home)显示。ACATEGORY_HOME BCATEGORY_PREFERENCE CACTION_MAIN DCATEGORY_BROWSABLE10activi
22、ty生命周期中调用的第一个回调函数是( A )。AonCreated()BonStart()ConResume()DonRestart()二、填空题(请在括号内填空)1若用DDMS查看,存储在手机SD卡上的文件的路径为( /mnt/sdcard/ )。2SharedPreferences所存储的数据是以( “键-值” )的格式保存在xml文件中。3当android: indeterminate取值为( true )时,开启了进度条的“不确定模式”。4Android中提供了标准的Java文件输入输出流,分别为( File )InputStream、(File)OutputStream。5cate
23、gory类别为( CATEGORY_LAUNCHER)的Activity会在Android系统启动的时候最优先启动起来。三、简答题1简述ProgressBar如何与Handler结合在一起使用。 答:在布局文件写入进度条控件; 在源程序文件中申明Handler对象handler、Progressbar类对象progressbar、int型对象progress表示当前进度,以及两个常量STOP和CONTINUE分别代表停止、继续两种消息; 实例化Handler对象handler,在handleMessage方法,更新进度条UI界面; 重写onCreate()方法,开启了一个子线程,该线程的run
24、()方法中利用handler发送消息。2简述Android中如何利用文件存储来读写SD卡上的TXT文件。 答:改写AndroidManifest.xml文件,为SD卡设置创建与删除文件权限、写入数据的权限:设置读写模式: 利用Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)判断SD卡是否正常安装在手机上; 在SD卡安装正常的情况下,利用File file = new File(Environment.getExternalStorageDirectory(), filename)获得该文件对应的Fil
25、e对象; 利用outputStream = new FileOutputStream(file, append);获得该文件的输出流、inputStream = new FileInputStream(file);获得该文件的输入流; 利用输入流inputstream、输出流outputstream对文件进行标准的java读写。任务五 音乐播放器的设计与实现第一部分 知识回顾与思考1ListView如何与数据进行绑定?答:最简单的方式,可以在布局文件中为ListView指定一个字符串数组。其次,可以使用Adapter将ListView与数组进行绑定,根据不同的数据源需要使用与其对应的Adapt
26、er。2ArrayAdapter、SimpleAdatper、SimpleCursorAdapter的作用分别是什么?如何使用它们?答:ArrayAdapter:可用于与数组进行数据绑定;SimpleAdapter:可用于与List集合的多个对象进行数据绑定;SimpleCursorAdapter:用于与Cursor提供的数据进行绑定。 具体使用方式参考本任务支撑知识三、四、五小节。3MediaPlayer对象的生命周期是怎样的?答:用new操作符创建一个新的MediaPlayer对象或是对已有对象调用reset()方法之后MediaPlayer对象处于Idle状态。调用setDataSour
27、ce()方法会使处于Idle状态的对象转变为Initialized状态。在开始播放之前,MediaPlayer对象必须要进入Prepared状态,有同步和异步两种方式可以使MediaPlayer对象进入Prepared状态。要开始播放,必须调用start()方法。当此方法成功返回时,MediaPlayer的对象处于Started状态。当调用pause()方法并返回时,会使MediaPlayer对象进入Paused状态。调用stop()方法会停止播放,并且还会让一个处于Started、Paused、Prepared或PlaybackCompleted状态的MediaPlayer进入Stopped
28、状态。具体参考本任务支撑知识第六节。4回顾一下定时器所涉及几个类的作用以及这几个类之间的关系(Timer、TimerTask、Handle、Message)。答:Timer启动后会周期性的触发TimerTask类的run方法,在run方法中会向UI线程的Handle对象发送Message,从而触发Handle对象的handleMessage方法,在该方法中可以进行UI线程中控件更新等操作。第二部分 职业能力训练一、单项选择题(下列答案中有一项是正确的,将正确答案填入括号内)1ListView是常用的( C )类型控件。A按钮 B图片 C列表 D下拉列表2ListView与数组或List集合的多
29、个值进行数据绑定时使用( A )。AArrayAdapter BSimpleAdapter CSimpleCursorAdapter DBaseAdapter3ListView与List集合的多个对象进行数据绑定时使用( B )。AArrayAdapter BSimpleAdapter CSimpleCursorAdapter DBaseAdapter4ListView与Cursor提供的数据进行绑定时使用( C )。AArrayAdapter BSimpleAdapter CSimpleCursorAdapter DBaseAdapter5Android中MediaPlayer无法播放( D
30、 )。A程序资源文件 B网络上的文件 CSD卡上的文件 D其他程序资源文件6以下表示系统自定义的只显示一行文字的布局文件是( B )。Aandroid.R.layout.simple_list_item_0 Bandroid.R.layout.simple_list_item_1Candroid.layout.simple_list_item_0 Dandroid.layout.simple_list_item_17MediaPlayer对象执行( D )之后处于Idle状态。Astart() Bstop() Cpause() Dreset()8下列说法错误的是( D )。Aprepare()是同步加载 Bprepare()方法返回时已加载完毕CprepareAsync()是异步加载 DprepareAsync()方法返回时已加载完毕9如果希望启动定时器后5s执行第一次执行定时器任务,然后每隔3s执行定时器任务,schedule方法的后两个参数需要设定为( D )。A5,2 B5,3 C5000,2000 D5000,3000二、填空题(请在括号内填空)1创建ListView有两种方式包括直接使用ListView控件和( 让Acitivity继承ListActivity )。2Li
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1