《.A.ndroid移动应用基础教程》习题及答案
第1-3章Android基础入门
一、填空题
1、Android是Google公司基于______平台开发的手机及平板电脑的操作系统 2、Android系统采用分层结构,由高到低依次为 。 3、ADB的常见指令中,用于开启ADB服务的是 。 4、在Android程序中,src目录用于放置程序的___________。
5、Android程序开发完成后,如果要发布到互联网上供别人使用,需要将程序打包成______文件。 6、Android的核心服务是基于______ 7、库主要提供Android程序运行时需要的一些类库,这些类库一般是使用______语言编写,而应用层是用______ 语言编写的运行在Android平台上的程序
8、每个资源都在gen目录中R.java文件中生成一个索引,而通过这个索引,开发人员可方便调用res目录中保持资源文件,在res目录下对应不同资源存放相应drawable子目录,layout子目录,Value子目录,menu子目录中。
二、判断题
1、Android实际上就是一个手机。
2、WCDMA是中国自己独自定制的3G标准,中国移动使用的就是这种标准。 3、android第一个版本Android 1.1是2008年9月发布的。
4、gen目录是自动生成的,主要有一个R.java文件,该文件可手动修改。 5、AndroidManifest.xml文件是整个程序的配置文件。 三、选择题
1、随着智能手机的发展,移动通信技术也在不断升级,目前应用最广泛的是( ) A、1G B、2G C、3G D、4G
2、ADT Bundle中包含了三个重要组成部分,分别是( ) A、Eclipse B、SDK C、SDK Manager,exe D、ADB
3、应用程序层是一个核心应用程序的集合,主要包括( ) A、活动管理器 B、短信程序 C、音频驱动 D、Dalivik虚拟机 4、ADB的常见指令中“列出所有设备”的指令是()
A、adb uninstall B、adb install C、adb device D、adb emulator -avd 5、创建程序时,填写的Application Name表示()
A、应用名称 B、项目名称 C、项目的包名 D、类的名字 6、Android是一个手机平台,其中不包括的是() A、操作系统B、行业应用C、中间件D、核心应用
7、在android 发布的版本中以下比5.0-Lollipop(棒棒糖)早的别名是()
A、Marshmallow(棉花糖)B、Novgat(牛扎糖)C、KitKat(奇巧巧克力)D、Oreo(奥利奥)
8、安装Android开发环境中,需JDK和SDK的支持还需合适开发工具和插件。其中Android SDK是() A、Java开发工具包 B、JRE环境
C常用的库文件D、Android开发工具包,开发相关的API 9、下列关于AndroidManifest.xml叙述不正确的是()
A、它位于res\\layout子目录 B、应用程序必须包含一个该文件
C、它是整个应用的全局描述文件 D、该文件需表明应用的名称图标、活动和服务等信息 四、简答题
1、简要说明Android体系结构中每个层的功能。
第4章 Activity
一、填空题
1、Activity生命周期的三种状态分别是________、________和________。 2、Activity的4种启动模式是________、________、________和________。 3、Android中Intent寻找目标组件的方式有两种:________和________
4、Activity生命周期中“回到前台,再次可见时执行”时调用的方法是________。 5、Android提供了一个________________________方法来实现回传数据。 二、判断题
1、Activity是Android应用程序的四大组件之一。
2、Intent一般只用于启动Activity不能开启广播和服务。
3、Intent可以用来开启Activity,同样它也可以用来在Activity之间传递数据。 4、Activity默认的启动模式是singleTop模式。
5、在数据传递时,如果需要获取返回的数据,需要使用onActivityResult()方法。 三、选择题
1、一个应用程序默认会包含()个Activity。
A、1 B、2 C、3 D、4 2、下列方法中,Activity从启动到关闭不会执行的是()。 A、onCreate() B、onStart() C、onResume() D、onRestart() 3、下列组件中,不能使用Intent启动的是()。
A、Activity B、启动服务 C、广播 D、内容提供者
4、startActivityForResult()方法接收两个参数,第一个是Intent,第二个是() A、resultCode B、requestCode C、请求码 D、data 5、下列关于Activity的描述,错误的是()
A、Activity是Android的四大组件之一 B、Activity有4种启动模式 C、Activity通常用于开启一个广播事件 D、Activity就像一个界面管理员,用户在界面上的操作是通过Activity来管理的 四、简答题
1、五种进程(P49-50)
2、Activity四种状态(p51-p52) 3、四大组件(P50-51)
4.活动七种回调方法和三种生命周期
第5章Android UI开发
一、填空题
1、Android中的布局分为6种,分别是 、 、 、 、 和 。
2、Android相对布局中,表示“是否跟父布局左对齐”的属性是 3、线性布局主要有两种形式,一种 线性布局,另一种是 线性布局。 4、创建Android程序时,默认使用的布局是 。
5、LogCat区域中有V、D、I、W和E等5个字母,其中V代表 、D代表 、I代表显示 、W代表显示 信息、E代表显示 信息。
6、在表格布局中,在定义布局时在一个表格布局
7、View在Android中可以理解为 ,它占据屏幕上的一块矩形区域,负责提供控件绘制和事件处理的方法,ViewGroup在Android中可理解为
二、判断题
1、相对布局中android:layout_alignRight属性表示“在指定控件左边”。 2、Toast的作用是显示一些提示信息。
3、Table Row必须要设置layout_width和layout_height属性。
4、帧布局中可以添加多个控件,这些控件会重叠的在屏幕左上角显示。 5、Android程序中是不支持国际化的。
6、在LinearLayout定义中,使用android:layout_gravity属性设置放入其中的组件的摆放位置不起作用,需使用android:gravity属性
7、在水平线线性布局管理器中,android:layou_height属性值通常不设置为match_parent,在垂直线性布局管理器中,android:layou_width属性值通常不设置为match_parent.
8、Padding表示是外边界,而Margins表示是内边界。 三、选择题
1、以下属性中()属性可以“在指定控件左边”。
A、android:layout_alignLeft B、android:layout_alignParentLeft C、androif:layout_left D、android:layout_toLeftOf 2、表格布局中android:layout_column属性的作用是指定()。 A、行数 B、列数 C、总行数 D、总列数 3、网格布局是Android()新增的布局。 A、3.0 B、3.1 C、3.2 D、4.0
4、相对布局中,“是否跟父布局底部对齐”是属性()
A、android:layout_alignBottom B、android:layout_alignParentBottom C、android:layout_alignBaseline D、android:layout_below 5、在布局的过程中需要依据控件的依赖关系排列的是() A、相对布局 B线性布局 C、帧布局 D、绝对布局
6、在使用下列Android控件时,()不需要添加监听器。 A、Button B、ListView C、TextView D、RadioButton
四、简答题
1、请简述一下如何在程序中使用Toast。
2、请说明布局有几种类型,以及每种类型的作用。
3、在Android,提供了两种为按钮添加单击事件监听器的方法,具体如何实现。(P86-87) 4、要获取单选按钮组中选中项的值,可根据两种情况(改变单选按钮组的值获取,单选其他按钮获取)采取对应的不同实现方法
5、Spinner和ListView可设置Adapter来指定需要需要显示的列表项,请具体说明二者的实现方法 6、通过操作栏实现层级式导航的3个关键步骤(P120-P121)
第6章组件通信与广播接收者
一、填空题
1、广播接收者可以在清单文件使用 注册。 2、终止广播需要使用 方法。
3、广播的发送有两种形式,分别为 和 。
4、代码注册广播需要使用 方法,结束广播需要使用 方法。 5、指定接收广播类型的函数是 。
6、Intent是一个对象,它是一个被动的数据结构保存一个将要执行操作的抽象描述,开发人员通常使用该对象
激活 、 、 组件。
7、Intent对象可以传递给Context.startActivity()或Activity.startActivityForResult()方法来启动Activity或者让已
经存在的Activity去做其他任务。 8、Intent对象可以传递给 方法来初始化Service或者发送新指令到正在运行的Service。类似的,Intent
对象可以传递 方法来建立调用组件和目标Service之间的链接。
9、Intent对象可以传递给 、 或Context.sendStickyBroadcast()等广播方法,使其被发送
给所有感兴趣的BroadcastReceiver
10、使用 ,可以在自己的应用程序中,启动其他程序的Activity,这使得多个应用程序之间的功能共
享成为了可能。
11、Intent过滤器中包含的域和Intent对象中 、 和 相对应, Intent过滤器是
IntentFilter类的实例。Intent过滤器通常不在Java代码中进行设置,而是使用 标签写在应用程序的配置文件(AndroidManifest.xml)中。
12、配置文件中的
13. BroadcastReceiver类是所有广播接收器的抽象基类。其实现类用来对发送出来的广播进行筛选并做出响应。广播接收器的生命周期非常简单。当消息到达时,接收器调用onReceive()方法。在该方法结束后,BroadcastReceiver实例失效。 方法是实现BroadcastReceiver类时需要重写的方法 14、在Android中广播来源有系统事件如电池电量低,还有普通应用程序如文件下载完毕 二、判断题
1、每一个广播只能有一个广播接收者接收。
2、广播接收者是四大组件之一,必须要在清单文件中注册。 3、广播接收者的注册信息必须要保持唯一性。
4、可以在BroadcastReceiver和onReceiver方法中处理耗时复杂的业务。 5、广播接收者注册后必须要手动关闭。 三、选择题
1、继承BroadcastReceiver会重写()方法。
A、onReceiver() B、onUpdate() C、onCreate() D、onStart() 2、关于广播的作用,说法正确的是()。
A、它主要用来接收系统发布的一些消息的 B、它可以进行耗时的操作 C、它可以启动一个Activity D、它可以帮助Activity修改用户界面 3、下列方法中,用于发送一条有序广播的是()。
A、startBroadcastReceiver() B、sendOrderedBroadcast() C、sendBroadcast() D、sendReceiver() 4、在清单文件中,注册广播时使用的结点是()。
A、Activity B、Service C、Receiver D、ContentProvider 5、关于BroadcastReceiver说法不正确的是()。 A、是用来接收广播Intent
B、一个广播Intent只能被一个订阅了此广播的BroadcastReceiver所接收 C、对有序广播,系统会根据接受者声明的优先级别按顺序逐个执行接收者 D、接收者生命的优先级别在android:priority属性中生命数值越大优先级别高 6、Intent组件的 Action为()表示是程序的入口
A、ACTION_VIEW B、S ACTION_CALL C、ACTION_MAIN D、ACTION_BOOT_COMPLETED
7、在使用Intent过滤器测试Intent对象时,对象与下列哪个方面没有相互关系() A、种类 B、动作 C、数据 D、额外
8、在Intent的所有属性中,指定了()属性后,Intent的其他属性都是可选的 A、组件名称 B、动作 C、数据 D、额外
四、简答题
1、 说明注册广播有几种方式,以及这些方式有何优缺点。 2、 简要说明接收系统广播时哪些功能需要使用权限。 3、 如何定义——创建并配置Activity
4、 活动组件启动两种方式及如何启动 5、 如何在Activity间交换数据
6、 若要在一个Activity中得到新打开另一个Activity关闭后返回的数据应如何操作? 7、 Android提供用于接收的广播有哪几种?
第7章服务
一、填空题
1、在创建服务时,必须要继承 类。
2、绑定服务时,必须要实现服务的 方法。
3、在清单文件中,注册服务时应该使用的结点为 。 4、服务的开启方式有两种,分别是 和 。 5、在进行远程服务通信时,需要使用 接口。
6、 是能够在后台执行长时间操作并且不提供用户界面的应用程序组件。
7、当其他组件调用 方法时,服务被创建,接着服务无限期运行,其自身必须调用 方法或者其他组件调用 方法来停止服务。当服务停止时,系统将其销毁。
8、 当其他组件调用 方法时,服务被创建。接着客户端通过 接口与服务通信。客户端通过__________方法关闭连接。多个客户端能绑定到同一个服务并且当它们都解绑定时,系统销毁服务(服务不需要被停止)。
9、Thread类提供了 方法,可以开启线程,可以使用Thread类的 方法,让线程休眠指定的时间。可以使用Thread类的 方法,可以向指定的线程发中断请求,并将该线程标记为中断状态,通过名称为 的boolean型变量来标记线程的中断
10、每个Message对象可以通过 方法或者 方法获得。
11、开发人员可以从活动或其他应用程序组件通过传递Intent对象到 方法启动服务。Android系统调用_ 方法并将Intent传递给它
12、服务必须调用 方法停止自身,或者其他组件调用 方法停止服务 二、判断题
1、以绑定方式开启服务后,服务与调用者没有关系。 2、服务的界面可以设置的很美观。
3、以绑定方式开启服务后,当界面不可见时服务就会被关闭。 4、在服务中可以处理长时间的耗时操作。
5、服务不是Android中的四大组件,因此不需要在清单文件中注册。
6、客户端调用unbindService()方法成功后,系统会调用onServiceDisconnected() 三、选择题
1、每一次启动服务都会调用()方法。
A、onCreate() B、onStart() C、onResume D、onStartCommand 2、下列选项中,不属于绑定服务特点的是()。
A、以bindService()方法开启 B、调用者关闭后服务关闭
C、必须实现ServiceConnection D、使用stopService()方法关闭服务 3、Service与Activity的共同点是()。
A、都可进行用户交互响应 B、都有onResume()方法C、都可以被远程调用D、都可以自定义美观界面 4、下列方法中,不属于Service生命周期的是()
A、onResume() B、onStartCommand() C、onCreat() D、onDestory()
5、关于Service生命周期的onCreate()和onStartCommand()方法,说法正确的是() A、如果Service已经启动,将先后调用onCreate()和onStartcommand()方法 B、当第一次启动的时候先后调用onCreate()和onStartcommand()方法 C、当第一次启动的时候只会调用onCreate()方法
D、如果Service已经启动,只会执行onStart()方法,不再执行onCreat()方法 6、 线程执行下面()方法,线程的中断状态被标记 A、sleep() B、join() C、wait() D、interrupt() 7、 在一个线程中只能有一个的是()
A、Looper和MessageQueue B、Message C、Handler D、以上都是 8、下列方法中,不属于Service的回调方法是()
A、onstart() B、onStarCommand() C、onBind() D、onDestory() 9、下列关于服务的说法中,不正确的是()
A、一个服务只会创建一次 B、一个服务只会销毁一次 C、一个服务只会运行一次 D、一个服务会运行多次 四、简答题
1、请简要说明使用AIDL访问远程服务的步骤。 2、请简要说明Service的几种启动方式及其特点。 3、创建线程有哪两种方法?
4、请简述Handler机制4个关键对象的作用。 5、如何创建并配置Service
6、进行服务绑定时进行服务定义和具体绑定时关键过程是什么?
第8.1章数据存储
一、填空题
1、序列化是将对象状态转换为 的过程。
2、Android中主要提供了3种文件存储方式 、 、 (可分为原始格式文件和格式化数据的XML文件)。
3、通常情况下,解析XML文件有三种方式,分别为 、 、 。 4、SharedPreferences是一个轻量级的存储类,主要用于存储一些应用程序的 。 5、Android中的数据存储方式有5中,分别是 、 、 、 和 。 6、SharedPreferences接口位于android.content包中,用于使用 的方式来存储数据。该类主要用于基本类型如booleans 、floats、 ints、 longs、 strings
二、判断题
1、SharedPreferences本质上是一个XML文件,以Map形式存入文件中。 2、文件存储是通过I/O流的形式把数据原封不动的存储到文档中。 3、XML文件只能用来保存本地数据,不能在网络中传输。 4、ContentProvider表示内容提供者,用于显示程序中的数据。
5、当用户将文件保存至SD卡时,需要在清单文件中添加权限android.permission.WRITE_EXTERNAL_STORAG
三、选择题
1、下列文件操作中,指定文件内容可以追加的是()
A、MODE_PRIVATE B、MODE_WORLD_READBLE C、MODE_APPEND D、MODE_WORLD_WRITEABLE
2、下列代码中,用于获取SD卡路径的是()
A、Environment.getSD( ) B、Environment.getExternalStorageState( );
C、Environment.getSDDirectory( ) D、Environment.getExternalStorageDirectory( );
3、下列选项中,关于文件存储数据的说法错误的是()
A、文件存储是以流的形式来操作数据的 B、文件存储可以将数据存储到SD卡中 C、文件存储可以将数据存储到内存中 D、Android中只能使用文件存储数据
4、下列选项中关于XML序列化和解析描述合理的是()
A、DOM解析会将XML文件的所有内容以文档树方式存放在内存中 B、在序列化时,需要使用XmlSerialize序列化器,即XmlSerializer类 C、XmlSerializer类的startDocument()方法用于写入序列号的开始节点 D、XmlSerializer类的setOutput()方法用于设置文件的编码方式
5、如果要将程序中的私有数据分享给其他应用程序,可以使用的是() A、文件存储 B、SharedPreferences C、ContentProvider D、SQLite
6、创建数据库,在DDMS视图的File Explorer面板中,该库文件的位置是()目录 A、data/data/<包名>/files B、data/data/<包名>/shared _prefs C、data/data/<包名>/databases D、res/raw或res/xml 四、简答题
1、五种存储方式各自的特点分别是:
2、如何利用Sharedpreferences对文件进行读写
3.内部存储如何实现文件读写
4、如何访问res/raw目录下的原始格式文件?
第8.2章SQLite数据库
一、填空题
1、ListView的适配器有三种,分别是 、 和 。 2、创建数据库及数据库版本更新需要继承 。
3、SQLite创建时调用 方法,升级时调用 方法。
4、要查询SQLite数据库中的信息需要使用 接口,使用完毕后条用 关闭。 5、创建ListView的布局界面必须通过i 属性才能使数据显示在界面上。
5、SQLiteDatabase还专门提供了对应于添加、删除、更新、查询的操作方法: 、 、
和 6、query()方法的返回值为Cursor对象,该对象中保存着查询结果,但是这个结果
并不是数据集合的完整复制,而是数据集的指针。 二、判断题
1、SQLite数据库使用完后不需要关闭,不影响程序性能。
2、使用ListView显示较为复杂的数据时最好用ArrayAdapter配适器。
3、SQLite既支持Android的API又支持SQL语句进行增、删、改、查操作。 4、使用BaseAdapter控制ListView显示多少条数据是通过getView()方法设置。 5、SQLite只支持NULL、INTEGER、REAL、TEXT和BLOB等5种数据类型。 三、选择题
1、使用SQLite数据库进行查询后,必须要做的操作是()
A、关闭数据库 B、直接退出 C、关闭Cursor D、使用quit函数退出 2、关于适配器的说法正确的是()
A、它主要用来存储数据 B、它主要用来把数据绑定在组件上 C、它主要用来存储XML数据 D、它主要用来解析数据
3、使用SQLiteOpenHelper类可以生成一个数据库并可以对数据库版本进行管理的方法()。
A、getDatabase() B、getWriteableDatabase() C、getWriteableDatabase() D、getAbleDatabase() 4、下列命令众,属于SQLite下命令的是() A、shell B、push C、quit D、keytool
5、下列关于ListView使用的描述中,不正确的是()
A、要使用ListView,必须为该ListView使用Adpater方式传递数据 B、要使用ListView,该布局文件对应的Activity必须继承ListActivity
C、ListView中每一项的视图布局既可以使用内置的布局,也可以使用自定义的布局方式 D、ListView中每一项被选中时,将会触发ListView对象的ItemClick事件 四、简答题
1、简要说明SQLite数据库创建的过程
2、请简要说明BaseAdapter适配器4个抽象方法以及它们的具体作用 四个抽象方法分别是:
3、说明ContentValues类在数据添加和更新中的如何使用?
4、说明利用查询方法得到查询结果对应的具体数据集
第8.3章内容提供者
一、填空题
1、ContentProvider匹配Uir需要使用的类是 。
2、使用内容观察者时,调用 方法可以得到数据变化的信息。
3、ContentProvider提供了对数据增、删、改、查的方法,分别为 、 、 和 4、ContentProvider用于 和 数据,是Android不同应用程序之间共享数据的接口。 5、在应用程序中,使用ContentProvider暴露自己的数据,通过 对暴露的数据进行操作。
6、每个Content Provider提供公共的URI(使用Uri类包装)来唯一标识其数据集。管理多个数据集(多个表
格)的Content Provider为每个都提供了单独的URI。所有为provider提供的URI都以“content://”作为前
缀。
二、判断题
1、ContentProvider所提供的Uir可以随便定义。
2、ContentResolver可以通过ContentProvider提供的Uir进行数据操作。
3、ContentObserver观察指定Uir数据发生变化时,调用ContentProvider的是OnChange方法。 4、使用ContentRsolver操作数据是,必须在清单文件进行注册。
5、ContentProvider与Activitry一样,创建时首先会调用onCreatr()方法。 三、选择题
1、下列选项中,不属于Android中四大组件的是()。
A、Activity B、ContentReceiver C、Service D、ContentObserver 2、下列关于ContentResolver的描述,错误的是()。
A、可以操作数据库数据 B、操作其他应用数据必须知道包名
C、只能操作ContentProvider暴露的数据 D、可以操作ContentProvider的任意数据 3、下列关于内容提供者的描述,不正确的是()。
A、提供的Uir必须符合规范 B、可以提供本应用所有数据供别人访问 C、必须在清单文件注册 D、authorities属性必须和包名一致 4、继承ContentProvider类不必重写它的()方法。 A、delete() B、insert() C、onStart() D、onUpdate() 5、下列关于内容观察者的说法,正确的是()。
A、可以观察任何数据 B、观察其它应用数据需要权限
C、只能观察到指定Uir的数据 D、观察其他应用数据必须在清单文件注册 四、简答题
1、请简要说明ContentProvider对外共享数据的好处。
2、请简要说明ContentProvider、ContentResolver和ContentOberver之间的联系。
3、如何创建一个数据提供者 4、如何使用数据提供者
第9章网络编程
一、填空题
1、Android系统提供了多种网络通信方式,包括 、 、 和 。 2、当客户端与服务器端建立连接后,想服务器端发送的请求,被称 。
3、Android客户端访问网络发送HTTP请求的方式一般有两种, 和 。 4、与服务器交互过程中,最常用的两种数据提交方式是 和 。 5、为了根据下载进度实时更新UI界面,需要用到Handle消息机制来实现 。
6、WebView组件是专门用来浏览网页的,它的使用方法与其他组件一样,即可以在XML布局文件中使用 标记添加,又可以在Java文件中,通过new关键字创建出来。
二、判断
1、HttpURLConnection是一个标准的Java类。
2、使用HttpClient访问网络时,不需要创建HttpClient对象。
3、GET方式是以实体的方式得到由请求URL所指向的资源信息。 4、HttpClient是对AsyncHttpClient的再次包装。
5、在多线程下载中,每个线程必须要下载对应的模块,然后将这些模块顺序序组组合。 三、选择题
1、下列选项中,不属于Handler机制中的关键对象是() A、Content B、Handler C、MessageQueue D、Looper 2、下列通信方式中,不是Android系统提供的是()
A、Socket通信 B、HTTP通信 C、URL通信D、以太网通信
3、关于HttpURLConnection访问网络的基本用法,描述错误的是()
A、HttpURLConnection对象需要设置请求网络的方式 B、HttpURLConnection对象需要设置超时时间 C、需要通过new关键字来创建HttpURLConnection对象 D、访问网络完毕需要关闭HTTP链接 4、下列选项中,不属于AsyncHttpClient特点的是()
A、发送异步HTTP请求 B、HTTP请求发生在UI线程之外 C、内部采用了线程池来处理并发请求 D、自动垃圾回收
5、下列选项中,关于GET和POST请求方式,描述错误的是()。 A、使用GET方式访问网络URL的长度是有限制的
B、HTTP协议规定GET方式请求URL的长度不超过2K C、POST方式对URL的长度是没有限制的
D、GET请求方式向服务器提交的参数跟在请求URL后面
6、在使用HttpURLConnection发送POST请求时,应该调用()类写入数据 A、DataOutputStream B、DataInputStream C、HttpResponse D、HttpClient 四、简答题
1、如何使用HttpURLConnection发送GET访问网络 2、如何使用HttpURLConnection发送POST访问网络 3、请简述使用HTTPClient访问网络的步骤。
3、通过HTTP访问网络有哪几种方法? 4、如何实现 WebView组件支持JavaScript? 5、如何使用WebView显示网页
《Android移动开发—习题2.0
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)