admin 管理员组

文章数量: 1184232


2024年3月11日发(作者:gradle下载后放到哪里)

Android移动应用开发习题答案

单元1 Android开发环境搭建与模拟器创建

1.填空题

(1)

2008

(2)

Linux、操作系统

(3)

应用程序层、应用程序框架层、核心类库、Linux内核

(4)

Java C++/C

(5)

应用框架

(6)

应用程序

(7)

模拟器、Android模拟器

(8)

IntelliJ IDEA Android

2.选择题

(1)创建程序的过程中,填写Application Name表示( )。

正确答案:A

(2)Android操作系统的手机可以有以下几个方法进行软件安装( )。(多选题)

ABCD

(3)Android操作系统主要的特点是:( )。(多选题)

正确答案:ABC

(4)以下对Android操作系统描述正确的是:( )。(多选题)

正确答案:ABCD

(5)以下哪些是Android Stuido的优势( )。(多选题)

正确答案:ABCD

(6)以下哪些是Genymotion模拟器的优势( )。(多选题)

正确答案:ABCD

3.简答题

(1)Android的四层架构分别包括哪几层?分别起到什么作用?

参考答案:

Linux内核层(Linux Kernel):基于Linux内核,内核为上层系统提供了系统服务。

核心类库层(Libraries):系统库基于C/C++语言实现,通过接口向应用程序框架层提

基于Android Studio的移动应用开发任务驱动教程

供编程接口。

应用框架层(Application Framework):为开发者提供了一系列的Java API,包括图形

用户界面组件View、SQLite数据库相关的API、Service组件等。

应用程序层(Applications):包含了Android平台中各式各样的应用程序。

(2)简述Android开发环境安装的步骤。

参考答案:

下载并安装JDK,配置JDK的环境变量;

从Anroid官网上下载Android开发组件(包含Eclipse和Android SDK、ADT);

安装Android开发环境(包括配置Android SDK的环境变量、打开Eclipse通过菜单设

定Android SDK路径)。

(3)简述Android Studio的优势。

参考答案:略。

(4)简述Genymotion模拟器的优势。

参考答案:略。

(5)简述Android应用程序创建和运行的步骤。

参考答案:

通过菜单创建Android应用程序,设置应用程序名、Android版本等基本信息。

单击菜单中的运行按钮可以直接运行Android项目(也可以通过菜单配置运行参数,

指定运行的模拟器)。

单元2 Android Studio的组成结构与基本操作

1.填空题

(1)

res/layout

(2)

Activity、Bundle

(3)

XML

(4)

java代码文件

(5)

(6)

打包成.apk文件

2.选择题

(1)如果需要创建一个字符串资源,需要将字符串放在resvalues的哪个文件中?( )

B

(2)新建的Android程序默认的布局方式是相对布局(RelativeLayout),该布局中包

含一个( )控件。

B

(3)要让布局文件或者控件能够显示在界面上,必须要设置RelativeLayout和控件的

2

单元

( )。

C

(4)配置文件中,activity和application里都可以设置android:label

标签,activity的优先级( )application。

C

(5)Android项目启动时最先加载的是文件,如果有多个Activity,

以下哪个属性决定了该Activity最先被加载?( )

A

(6)Android安装软件后缀是( )。

C

3.简答题

(1)如何区分Android Studio中的Project和Module?

参考答案:略。

(2)如何在Android Studio开发环境中打开Android项目文件所在的目录?

参考答案:略。

(3)在Android的布局文件activity_中“@+id/username”与"@id/username"

两者有何区别?

参考答案:略。

(4)Android程序如何获取界面上的控件并在窗口中显示?

参考答案:略。

(5)如何将一个Activity设置成窗口的样式。

参考答案:

在 中定义Activity的地方一句话

android:theme="@android:style/"或

android:theme="@android:style/ucent"就变成半透明的。

(6)简述Android项目中重要的文件夹和文件,它们的作用是什么?

参考答案:

src目录:该目录中存放的是我们需要编辑的Java源代码;

gen目录:目录中存放所有由Android开发工具自动生成的文件,它包含了界面、图

标、常量等各种资源的id;

bin目录:目录中的内容是程序运行后自动生成的,不需要我们编辑,里面包含自动

生成的可执行文件(如);

res目录:该目录中放置程序的重要资源,包括图片、布局、字符串等资源;

文件:该文件非常重要,列出了应用程序许多基本信息(如版本、

应用程序名称、启动图标等),其中还包括了程序使用到的各种服务(如电话服务、互联网

服务、短信服务、GPS服务等),该文件甚至包括了程序中所使用到的各个Activity信息。

03单元3 Android的界面设计与资源应用程序设计

1.填空题

(1)

RelativeLayout、LinearLayout、TableLayout、GirdLayout

3

基于Android Studio的移动应用开发任务驱动教程

(2)

android:layout_alignParentLeft

(3)

水平、竖直

(4)

RelativeLayout

(5)

android:layout_alignRight

(6)

左上角

(7)

findViewById

(8)

XML

(9)

TableRow

(10)

in

2.选择题

(1)Android中有许多控件,这些控件无一例外的都继承自( )类。

D

(2)Android中有许多布局,它们均是用来容纳子控件和子布局的,这些布局均继承

自( )。

B

(3)下列属性中,( )属性可以“在指定控件左边”。

D

(4)相对布局中,“是否跟父布局底部对齐”是属性( )。

C

(5)从下哪一个控件是用来显示图片?( )

A

(6)如果要实现用户单击后触发一定的处理,以下哪一个控件最合适?( )

D

(7)以下哪个控件可以用来显示进度?( )

B

(8)以下哪个方法可以用来获得进度条的当前进度值?( )

A

(9)ListView是常用的( )类型控件。

C

(10)以下哪个属性用来表示引用图片的资源id( )。

D

(11)相对布局中,如果指定一个控件位于引用控件的左侧,应该使用( )属性。

D

(12)表格布局中android:layout_column属性的作用是指定( )。

D

4

单元

3.简答题

(1)简述五种布局的特点和运用场合。

参考答案:

线性布局:控件可以按照水平或者垂直方向进行排列,控件排列方式简单。

相对布局:控件相对于其他控件或者容器决定控件的位置,能够设定控件之间的相对

关系、控件与父容器的相对关系,控件排列方式比较灵活,是常用的布局之一。

表格布局:通过配合使用TableRow可以将控件以表格形式排列。

框架布局:控件按照创建顺序在屏幕的左上角重叠显示,用于制作特别的控件。

绝对布局:通过绝对的坐标控制控件摆放的位置。虽然摆放控件很容易,但是不适合

多种分辨率和尺寸的屏幕,需要慎用。

(2)简述本单元所介绍控件的特点和作用。

参考答案:

TextView:最基础的控件,用做显示文本信息;

Button控件:通过监听器单击事件,可以实现用户单击按钮后触发相应动作;

ImageView控件:用于显示图片的控件,可以通过src属性指定显示的图片,可以通

过调用方法来动态设定图片;

EditText控件:输入文本控件,主要用于让用户输入信息,inputtype属性可以指定输

入文本时的键盘特征;

DatePicker控件和TimePicker控件:日期和时间控件,可以显示日期和时间,也可以

让用户进行日期和时间的选择。

(3)Android的属性、方法如何使用,它们分别起了什么作用?

参考答案:

Android控件的属性,可以通过xml文件设定,通过设定控件的属性能够静态的改变

控件的样式和一些特性;

控件的方法,可以通过编写代码动态调用方法,在程序中调用方法可以动态的修改控

件的样式、也可以获得控件的相关信息;

单元4 Android的事件处理与交互实现程序设计

1.填空题

(1)

activiey,service,broadcast和contentprovide

(2)

运行状态、暂停状态、停止状态

(3)

standarD.singleTop、singleTask

(4)

隐式Intent、显示Intent

(5)

onRestart()

(6)

5

基于Android Studio的移动应用开发任务驱动教程

startActivityForResult() onActivityResult()

(7)

Activity

(8)

对象

(9)

显示一些提示信息

(10)

显示全部信息、显示调试信息、显示一般信息、显示警告信息、显示错误信息

2.选择题

(1)如果需要捕捉某个控件的事件,需要为该控件创建( )。

C

(2)一个Android应用程序默认会包含( )个Activity。

A

(3)下列方法中,Activity从启动到关闭不会执行是( )。

D

(4)下列控件中,不能使用Intent启动的是( )。

D

(5)startActivityForResult方法接收两个参数,第1个是Intent,第2个是( )。

C

(6)下列判刑Activity的描述中,错误的是( )。

C

(7)Android 中下列属于Intent的作用的是( )。

C

(8)在Activity的生命周期中,当Activity处于栈顶时,此时处于哪种状态?( )

A

(9)在Activity的生命周期中,当Activity被某个AlertDialog覆盖掉一部分之后,会

处于哪种状态?( )

A

(10)Action属性ACTION_DIAL代表( )标准动作。

A

(11)如果需要显示id为1的联系人信息,Intent中的Action属性与Data属性应该设

定为什么?( )。

A

(12)Toast创建完毕后,需要显示出来此时需要调用以下哪个方法?( )

B

(13)以下哪个类对应Android中的提示对话框?( )

A

(14)Android中有一个服务用来管理通知,它是( )。

B

3.简答题

(1)简要说明Activity的4种启动模式的区别。

参考答案:

四种启动模式分别是:

6

单元

Standard:每当启动一个新的Activity,它就会进入任务栈,并处于栈顶的位置,对于

使用standard模式的Activity,系统不会判断该Activity在栈中是否存在,每次启动都会创

建一个新的实例。

SingleTop:与standard类似,不同的是,当启动的Activity已经位于栈顶时,则直接

使用它不创建新的实例。如果启动的Activity没有位于栈顶时,则创建一个新的实例位于

栈顶。

SingleTask:创建的Activity只存在一个实例。已经存在则直接使用该实例,并将当前

Activity之上的所有Activity出栈,如果没有发现则创建一个新的实例。

singleInstance:启动一个新的任务栈管理Activity

(2)简要说明Activity的3种状态以及不同状态使用的方法。

参考答案:

Activity三种状态分别是:

运行状态:该状态下可以对界面进行操作

暂停状态:界面可见但不具有焦点无法单击

停止状态:界面不可见,一般在停止状态时保存数据以防止程序被系统强制杀死。

(3)Android提供了多种提示方式,简述它们各自的优缺点?

参考答案:

Android提供的常见的提示信息的方式有Toast、Dialog以及Notification。它们各自的

特点如下:

Toast只能给用户提示信息,过一定时间后信息自动消失,用户只能阅读提示的信息,

不能做出交互性动作,也不能修改Toast的界面。

Dialog不仅能给用户提示信息,还可以让用户选择对提示信息的响应方式,更复杂的,

用户可以定制Dialog的界面。

Notification提供了更高级的提示信息的方式,手机界面上有专门用于显示Notification

的区域。用户可以向下滑动拉开通知栏,查看通知的内容,还可以进一步打开相关的Activity

来对通知信息做进一步的处理。

(4)Intent有哪些重要属性,Activity之间是如何进行信息的传递的?

参考答案:

属性:Component(组件)、Action(动作)、Data(数据)、Category(分类)、Type(类

型)、Extra(扩展信息)。

在Android中是通过intent中的属性进行信息的传递的。

(5)Android的监听器如何使用,有什么作用?

参考答案:

控件的监听器,可以通过编码为控件创建、设定监听器,监听器可以监听控件发生的

事件,一旦发生某个监听的事件可以触发相应的处理代码。

(6)简述如何在Android程序使用Toast?

参考答案:

使用Toast可以直接调用Tosast的静态方法:

xt(this, text, duration).show();

也可以创建出Toast对象,如:

Toast toast = new Toast(this);

t("提示信息");

();

7

基于Android Studio的移动应用开发任务驱动教程

单元5 Android的数据存储与数据共享程序设计

1.填空题

(1)

文件、Sharedpreferences、SQLite、ContentProvider

(2)

内存、SD卡

(3)

配置参数

(4)openOrCreateDatabase(String path, Factory factory)、

SQLiteOpenHelper

(5)

Cursor、close

(6)

insert、delete、update、query

(7)

保存、检索

(8)

ContentResolver

(9)

“键-值”

(10)

“sion:WRIT_EXTERNAL_STORAGE”

(11)

Uri

(12)

onCreate()

2.选择题

(1)下列文件操作权限中,指定文件内容可以追加的是( )。

C

(2)下例代码中,用于获取SD卡路径的是( )。

D

(3)下列选项中,关于文件存储数据的说法错误的是( )。

D

(4)如果要将程序中的私有数据分享给其他应用程序,可以使用的是( )。

C

(5)下列命令中,属于SQLite下的命令是( )。

C

(6)以下哪个方法能够实现数据库的数据插入?( )

C

(7)以下哪种数据库操作不能使用execSQL方法执行?( )

C

8

单元

(8)使用SQLite数据库进行查询操作后,必须要做的操作是( )。(多选题)

AC

3.简答题

(1)简述几种Android数据存储的方法和特点。

参考答案:

文件存储:操作文件的方法与Java完全一致,可以将信息存储到应用程序的默认目录、

指定目录、SD卡目录中去,可以存储较大文件,以IO流形式传输数据。但对于结构化数

据的解析比较麻烦。

SharedPreferences:轻量级的数据存储方式,通过该类可以方便的实现数据的存入和读

取,主要用于参数的存储,以键值对的形式存于内存中。

SQLite数据库:支持SQL语句,通过配合使用SQLiteOpenHelper、SQLiteDatabase、

Cursor这几个类,能够轻松的实现结构化数据的存储和读取。占用内存小,所有文件都存

放在单一文件中。

ContentProvider:提供自身暴露的数据给第三方应用使用,统一了数据访问格式,以

数据库形式保存数据。

(2)简要说明SQLite数据库创建的过程。

参考答案:

首先创建一个类继承SQLiteOpenHelper,重写onCreate()方法并在该方法中创建表,

使用创建出的SQLiteOpenHelper的子类对象的getWritableDatabase()方法获得一个可读写

的数据库对象。

(3)简述使用Sharedpreference如何存储数据。

参考答案:

使用Sharedpreference储存数据时因为它本身没有写文件的功能,因此需要使用Editor

对象将数据存入内存,比如:

SharedPreferences sp = getSharedPreferences("config", 0);

Editor editor = ();

ing("a", "a");

();

(4)简要说明ContentProvider对外共享数据的好处。

参考答案:

通过ContentProvider共享数据统一了数据访问方式,使用起来更规范,通过数据库存

储并指定了URI,只有通过特定URI才能访问数据,使数据更安全。

(5)简要说明 ContentProvider、ContenResolver和ContentObserver之间的联系。

参考答案:

ContentProvider可以共享自己的数据给外部应用访问,要访问ContentProvider暴漏的

数据就要用到ContentResolver。而ContentObserver就相当于中间人的角色,它可以事实监

听ContentProvider的数据是否发生变化,如果发生变化就会触发onChange()方法,

Contentresolver可以在onChange()方法中查询的哪些数据发生了变化再对数据进行操作。

单元6 Android的服务(Service)与广播应用程序设计

9

基于Android Studio的移动应用开发任务驱动教程

1.填空题

(1)

Service、onBind()

(2)

startService()、bindService()

(3)

(4)

receiver abortBroadcast()

(5)

有序广播、无序广播

(6)

registerReceiver、unregisterReceiver

2.选择题

(1)每一次启动服务都会调用( )方法。

D

(2)下列方法中,不属于Service生命周期是( )。

A

(3)继承BroadcastReceiver会重写( )方法。

A

(4)关于广播的作用,说法正确的是( )。

A

(5)下列方法中,用于发送一条有序广播的方法是( )。

B

(6)在清单文件中,注册广播时使用的结点是( )。

C

(7)BroadcastReceiver说明错误的是( )。

B

(8)下列选项中,属于绑定服务特点的是( )。(多选题)

ABC

(9)Service与Activity的共同点是( )。(多选题)

AC

(10)关于Service生命周期的onCreate()和onStart()方法,正确的是( )。(多选

题)

BD

3.简答题

(1)简要说明Service的几种启动方式及其特点。

参考答案:

服务两种启动方式,分别是:

Start方式启动:服务与调用者没有绝对关联,当调用者关闭后服务还会一直在后台运

行。

Bind方式启动:服务与调用者的生命周期所关联,当调用者关闭时,服务也会关闭。

(2)简要说明Service常用的生命周期回调方法。

10

单元

参考答案:

onCreate()该方法在服务被创建时调用,该方法只会被调用一次,无论调用多少次

startService()或bindService()方法,服务也只被创建一次。 onDestroy()该方法在服务被终止

时调用。

ervice()启动Service有关的生命周期方法

onStart() 只有采用ervice()方法启动服务时才会回调该方法。该方法在服

务开始运行时被调用。多次调用startService()方法尽管不会多次创建服务,但onStart()方法

会被多次调用。

rvice()启动Service有关的生命周期方法

onBind()只有采用rvice()方法启动服务时才会回调该方法。该方法在调

用者与服务绑定时被调用,当调用者与服务已经绑定,多次调用rvice()方法

并不会导致该方法被多次调用。

onUnbind()只有采用rvice()方法启动服务时才会回调该方法。该方法在

调用者与服务解除绑定时被调用。

(3)简要说明注册广播有几种方式,这些方式各有何优缺点。

参考答案:

注册广播有两种方式。

非常驻型广播:这种广播依赖于注册广播的控件的生命周期,例如,在Activity中注

册广播接收者,当Activity销毁后广播也随之被移除。

常驻型广播:当应用程序关闭后,如果接收到其他应用程序发出的广播,那么该程序

会自动重新启动。但是4.0以上的系统中如果安装了应用但是没有打开过,当有广播发出

时应用也接收不到广播信息。

(4)简要说明接收系统广播时哪些功能需要使用权限。

参考答案:

拨打电话:

发送短信:

设备开机:

电池电量低:

单元7 Android的网络与通信应用程序设计

1.填空题

(1)

Socket通信、HTTP通信、URL通信、WebView。

(2)

HTTP请求

(3)

HttpURLConnection、HttpClient

(4)

GET、POST

(5)

11

基于Android Studio的移动应用开发任务驱动教程

线程间通信

(6)

Java

2.选择题

(1)下列通信方式中,不是Android系统提供的是( )。

D

(2)关于HttpURLConnection访问网络的基本用法,描述错误的是( )。

C

(3)下列选项中,不属于AsyncHttpClient特点的是( )。

D

(4)下列选项中,关于GET和POST请求方式,描述错误的是( )。

B

(5)Hanlder是线程与Activity通信的桥梁,如果线程处理不当,机器就会变得越慢,

线程销毁的方法是( ) 。

A

(6)下列选项中,不属于Handler机制中的关键对象是( )。

A

3.简答题

(1)简述使用HttpURLConnection访问网络的基本步骤。

参考答案:略。

(2)简述使用HttpClient访问网络的基本步骤。

参考答案:

使用HttpClient访问网络的步骤如下:

创建HttpClient对象;

指定访问网络的方式,创建一个HttpPost对象或者HttpGet对象;

如果需要发送请求参数,可调用HttpGet、HttpPost都具有的setParams()方法。对于

HttpPost对象而言,也可调用setEntity()方法来设置请求参数;

调用HttpClient对象的execute()方法访问网络,并获取HttpResponse对象;

调用ity()方法获取HttpEntity对象,该对象包装了服务器的响应内

容。也就是我们所请求的数据。

(3)简述Handler机制四个关键对象的作用。

参考答案:

Handler机制四个关键对象的作用如下:

Message

Message是在线程之间传递的消息,它可以在内部携带少量的信息,用于在不同线程

之间交换数据。Message的what字段可以用来携带一些整型数据,obj字段可以用来携带

一个Object对象。

Handler

Handler顾名思义就是处理者的意思,它主要用于发送消息和处理消息。一般使用

Handelr对象的sendMessage()方法发送消息,发出的消息经过一系列的辗转处理后,最终

会传递到Handler对象的handlerMessage()方法中。

MessageQueue

MessageQueue是消息队列的意思,它主要用来存放通过Handler发送的消息。通过

Handler发送的消息会存在MessageQueue中等待处理。每个线程中只会有一个

12

单元

MessageQueue对象。

Looper

Looper是每个线程中的MessageQueue的管家。调用Looper的loop()方法后,就会进

入到一个无线循环中。然后每等发现MessageQueue中存在一条消息,就会将它取出,并

传递到Handler的HandlerMessage()方法中。此外每个线程也只会有一个Looper对象。在

主线程中创建Handler对象时,系统已经为我们创建了Looper对象,所以不用手动创建

Looper对象,而在子线程中Handler对象,我们需要调用()方法开启消息循环。

(4)简要说明GET请求与POST请求的主要区别。

参考答案:略。

单元8 Android的图像操作与图形绘制程序设计

1.填空题

(1)

Bitmap、BitmapFactory、Paint、Canvas、cs

(2)

getDrawable(int id)

(3)

getBitmap()

(4)

View

(5)

Paint

(6)

Matrix

2.选择题

(1)Canvas类可以用来实现各种图形的绘制工作,其中可以绘制矩形的方法是( )。

D

(2)进行图形绘制时需要调用Canvas类的方法,以下哪个方法可以用来绘制三角形

的三条边?( )。

B

(3)Paint类用来描述画笔,以下哪个属性Paint不能设定?( )。

B

(4)可以以下哪些方法获取资源中的位图?( )。(多选题)

AB

(5)Bitmap提供了一些静态方法来创建新的Bitmap对象,下列哪些属于其常用静态

方法( )。(多选题)

ABCD

3.简答题

(1)简述Bitmap类常用的方法及其主要功能。

13

基于Android Studio的移动应用开发任务驱动教程

参考答案:略。

(2)简述位图缩放的主要实现方法。

参考答案:略。

(3)简述Canvas类用来实现各种图形绘制工作的方法。

参考答案:略。

(4)简述Pain类的常用属性设置方法。

参考答案:略。

单元9 Android的音频与视频应用程序设计

1.填空题

(1)

MediaPlayer、SoundPool类

(2)

VideoView、SurfaceView、VideoView

(3)

View 双缓冲

(4)

create() setDataSource()

(5)preparing

2.选择题

(1)MediaPlayer播放资源时,需要调用( )方法完成准备工作。

B

(2)Android中MediaPlayer无法播放( )。

D

(3)MediaPlayer对象执行( )之后处于Started状态。

A

(4)调用stop()方法会停止MediaPlayer对象播放,并且还会让一个处于Started,Paused,

Prepared或PlaybackCompleted状态的MediaPlayer进入( )状态。

B

(5)使用MediaPlayer播放保存在SD卡中的mp3文件时( )。(多选题)

BC

3.简答题

(1)说明MediaPlayer要播放的文件的主要来源。

参考答案:略。

(2)简要说明MediaPlayer对象的生命周期。

参考答案:

用new操作符创建一个新的MediaPlayer对象或是对已有对象调用reset()方法之后

MediaPlayer对象处于Idle状态。调用setDataSource()方法会使处于Idle状态的对象转变为

Initialized状态。在开始播放之前,MediaPlayer对象必须要进入Prepared状态,有同步和

异步两种方式可以使MediaPlayer对象进入Prepared状态。要开始播放,必须调用start()

方法。当此方法成功返回时,MediaPlayer的对象处于Started状态。当调用pause()方法并

14

单元

返回时,会使MediaPlayer对象进入Paused状态。调用stop()方法会停止播放,并且还会

让一个处于StarteD.PauseD.Prepared或PlaybackCompleted状态的MediaPlayer进入Stopped

状态。

(3)简述MediaPlayer对象的prepareAsync()方法和prepare()方法的区别及其各自使用

场合。

参考答案:

prepareAsync()方法和prepare()方法分别是异步加载和同步加载,prepareAsync()方法执

行完毕后MediaPlayer进入preparing状态,而prepare()方法执行完毕后MediaPlayer进入

prepared状态。prepareAsync()方法一般用于加载网络音频文件等耗时的场景,而加载本地

音频的时候一般使用prepare()就可以了。

(4)简要说明通过VideoView类播放视频的主要步骤。

参考答案:略。

15


本文标签: 方法 控件 数据