第1章  Android基础入门

填空题

1.Dalvik虚拟机中的Dx工具会把部分class文件转换成__dex____文件

2.如果希望在XML布局文件中调用颜色资源文件,可以使用_ @color___调用

3.Android程序入口的Activity是在_AndroidManifest.xml_____文件中注册的

4.Android中查看应用程序日志的工具是__LogCat_

判断题

1.Dalvik虚拟机是Google公司设计的用于Android平台的虚拟机(对)
2.Android应用程序的主要语言是Java。(对)
3.Android采用分层结构,分别是应用程序层、应用程序框架层、核心类库和Linux内核(对)
4.第三代移动通信技术(3G)包括TD-LTE和FDD-LTE两种制式(错)
5.Android程序中,Log.e()用于输出警告级别的日志信息(错)
6.每个Dalvik虚拟机实例都是一个独立的进程空间,并且每个进程之间不可以通信(错)

选择题

1.Dalvik虚拟机是基于(C)的架构
A.栈
B.堆
C.寄存器
D.存储器
2.Android程序中的主题和样式资源,通常放在哪个目录下(C)
A.res/drawable
B.res/layout
C.res/values
D.res/assets
3.下列关于AndroidManifest.xml文件的说法中,错误的是(D)
A.它是整个程序的配置文件
B.可以在该文件中配置程序所需的权限
C.可以在该文件中注册程序用到的组件
D.该文件可以设置UI布局
4.Dalvik虚拟机属于Android体系结构中的哪一层(C)
A.应用程序层
B.应用程序框架层
C.核心类库层
D.Linux内核层
5.Android中短信、联系人管理、浏览器等属于Android体系结构中的哪一层(A)
A.应用程序层
B.应用程序框架层
C.核心类库层
D.Linux内核层

简答题

简述Android源代码的编译过程

答:Java源文件经过JDK编译器编译为class文件后,Dalvik虚拟机中的Dx工具会将部分class文件转换成dex文件,dex文件还会在Dalvik虚拟机中进一步优化成odex文件。

简述Android体系结构包含的层次及各层的特点

答:Android系统架构从高到低分为四层,分别为依次是应用程序层(Applications)、应用程序框架层(Application Framework)、核心类库(Libraries)和Linux内核(Linux Kernel),各层的特点具体如下:

  1. 应用程序层:一个核心应用程序的集合,安装在手机中的应用程序都属于这一层。
  2. 应用程序架构层:主要提供了构建应用程序时用到的各种API。例如活动管理器(Activity Manager)。
  3. 核心类库:主要包含了系统库和Android运行环境。
  4. Linux内核:他为Android设备的各种硬件提供了底层的驱动,如:显示驱动。

第2章  Android常见界面布局

填空题

ViewGroup__类

_LinearLayout____

TableRow_____控制表格的行数

RelativeLayout___布局通过相对定位的方式指定子控件的位置

int___类型的值

判断题

1.ViewGroup是盛装界面控件的容器(对)
2.如果在FrameLayout中放入3个所有属性都相同的按钮,那么能够在屏幕上显示的是第1个被添加 的按钮(错)
3.Android中的布局文件通常放在res/layout文件夹中(对)
4.TableLayout继承自LinearLayout,因此它完全支持LinearLayout所支持的属性(对)
5.LinearLayout中的android:layout_weight属性用于设置布局内控件所占的权重(对)

选择题

1.下列属性中,用于设置LinearLayout方向的是(A)
   A.orientation
   B.gravity
   C.layout_gravity
   D.padding
2.下列选项中,不属于Android布局的是(C)
   A.FrameLayout
   B.LinearLayou
   C.Button
   D.RelativeLayout
3.FrameLayout是将其中的组件放在自己的哪个位置(A)
   A.左上角
   B.右上角
   C.左下角
   D.右下角
4.对于XML布局文件,android:layout_width属性的值不可以是什么(D)
   A.match_parent
   B.fill_parent
   C.wrap_content
   D.match_content
5.下列关于RelativeLayout的描述,正确的是(C)
   A.RelativeLayout表示绝对布局,可以自定义控件的x、y的位置
   B.RelativeLayout表示帧布局,可以实现标签切换的功能
   C.RelativeLayout表示相对布局,其中控件的位置都是相对位置
   D.RelativeLayout表示表格布局,需要配合TableRow布局一起使用

简答题

列举Android中的常用布局,并简述它们各自的特点

Android中有五种常用布局,分别为RelativeLayout(相对布局)、LinearLayout(线性布局)、FrameLayout(帧布局)、TableLayout(表格布局)、ConstraintLayout(约束布局),他们的特点具体如下:

  1. RelativeLayout(相对布局):该布局是通过相对位置的方式指定该布局内子控件的位置。
  2. LinearLayout(线性布局):该布局可通过android:orientation属性指定该布局内的子控件水平和竖直排列。
  3. TableLayout(表格布局):采用行、列的形式来管理控件。他通常搭配TableRow布局使用,一个TableRow代表一行,在TableRow中添加的控件代表一列。
  4. FrameLayout(帧布局):该布局会在屏幕上创建一块空白区域,添加到该区域中的每个子控件占一帧,这些帧会一个一个叠加在一起,后加入的控件会叠加在上一个控件上层。默认情况下,帧布局中的所有控件会与左上角对齐。
  5. ConstraintLayout(约束布局):该布局是Android2.2新添加的布局,他适用于可视化的方式编写界面布局,他有相对定位、居中定位和倾向、Chain等性质。

第3章  Android常见界面控件

一、判断题
1.Android的控件样式,其每一个XML属性都对应一个Java方法。(对 )
2.当指定RadioButton控件的android:checked属性为true时,表示该控件为未选中状态。(错 )
3.AlertDialog对话框能够直接通过new关键字创建对象。(错 )
4.Toast是Android提供的轻量级信息提醒机制,用于向用户提示即时消息。(对 )
5.ListView控件中的数据是通过数据适配器加载的。(对  )
二、选择题
1.在XML布局文件中定义了一个Button控件,决定Button控件上显示的文字的属性是(B )。
A.android:value
B.android:text
C.android:id
D.android:textvalue
2.下列选项中,哪个用于设置TextView控件中文字的大小?(C )
A.android:textSize="18"
B.android:size="18"
C.android:textSize='18sp'    
D.android:size="18sp"
3.使用EditText控件时,当文本内容为空时,如果想做一些提示,那么可以使用的属性是(D )。
A.android:text
B.android:background
C.android:inputType
D.android:hint
4.为了让一个ImageView控件显示一张图片,可以设置的属性是(A )。
A.android:src
B.android:background
C.android:img
D.android:value
5.下列关于ListView控件的说法中,正确的是(C )。
A.ListView 控件的条目不能设置点击事件
B.ListView控件不设置数据适配器也能显示数据内容
C.当数据超出能显示的范围时,ListView 自动具有可滚动的特性
D.一共有100条数据,若ListView控件当前能显示10条,则产生了100个View控件
6.CheckBox控件被选中的监听事件通常使用以下哪个方法?(B)
A.setOnClickListener
B.setOnCheckedChangeListener
C.setOnMenuItemSelectedListener
D.setOnCheckedListener
7.当使用EditText控件时,能够将文本框设置为多行显示的属性是(A)
A.android:lines 
C.android:textcolor
B.android:layout_height
D.android:textsize
8.下列关于AlertDialog对话框的描述,错误的是(A )。
A.使用new关键字创建 AlertDialog 对话框的实例
B.对话框的显示需要调用show0方法
C.setPositiveButton()方法是用来设置确定按钮的
D.setNegativeButton()方法是用来设置取消按钮的

第4章  程序活动单元Activity

一、填空题

1.Activity的启动模式包括 standard、singleTop、singleTask和___singleInstance___
2.启动一个新的Activity并且获取这个Activity的返回数据,需要重写 startActivityForResult() 方法。
3.发送隐式Intent后,Android会使用 IntentFilter 匹配相应的组件。
4.在清单文件中Activity添加<intent-filter>标签时,必须添加的属性名为<category android:name="android.intent.category.DEFAULT"/>_____,否则隐式Intent无法开启该Activity。
5.Activity的    finish() 方法用于关闭当前的 Activity。Activity的    finish() 方法用于关闭当前的 Activity。

二、判断题
1.如果Activity不设置启动模式,则默认为standard。(对    )
2.Fragment与Activity的生命周期方法是一致的。(错    )
3.如果想要关闭当前的Activity,可以调用Activity提供的finish()方法。(对    )
4. <intent-filter>标签中间只能包含一个action属性。(错 )
5.默认情况下,Activity的启动模式是standard。(对

三、选择题
1.下列选项中,不属于Android四大组件的是(C)。
A. Service                
B. Activity            
C. Handler                
D. ContentProvider
2.下列关于Android中 Activity管理方式的描述中,正确的是(B    )。
A.Android以堆的形式管理 Activity        
B.Android以栈的形式管理 Activity
C.Android 以树的形式管理 Activity        
D.Android以链表的形式管理 Activity
3.下列选项中,哪个不是Activity生命周期方法?(B    )
A.onCreate()    
B.startActivity()    
C.onStart()            
D.onResume()
4.下列方法中,哪个是启动Activity的方法?(A)
A.startActivity0()    
B.goToActivity()    
C.startActivityResult()
D.以上都是
5.下列关于Intent的描述中,正确的是(B    )。
A.Intent不能够实现应用程序间的数据共享
B.Intent可以实现界面的切换,还可以在不同组件间直接进行数据传递
C.使用显式Intent可以不指定要跳转的目标组件
D.隐式Intent不会明确指出需要激活的目标组件,所以无法实现组件之间的数据跳转

  1. 四、简答题
    1.简述Activity的生命周期方法及什么时候被调用。
    答:Activity一共有7个方法,这些方法和调用的时机具体如下:
    1、onCreate():Activity创建时调用,通常做一些初始化设置。
    2、onStart():Activity即将可见时调用。
    3、onResume():Activity获取焦点时调用。
    4、onPause():当前Activity被其他Activity覆盖或屏幕锁屏时调用。
    5、onStop():Activity对用户不可见时调用。
    6、onDestroy():Activity销毁时调用。
    7、onRestart():Activity从停止状态到再次启动时调用。
    2.简述Activity的四种启动模式及其特点。
      答:Activity的四种启动模式分别为standard、singleTop、singleTask和singleInstance,这些模式的特点具体如下:
    1、standard:每启动一个Activity就会在栈顶创建一个新的实例。
    2、singleTop:当被启动的Activity位于栈顶时,复用该Activity实例。
    3、singleTask:当被启动的Activity在栈中存在实例时,会直接复用此Activity实例,并把当前Activity上面的所有实例弹出栈。
    4、singleInstance:会启动一个新的任务栈来管理该Activity。
    3.简述Activity、Intent、IntentFilter的作用。
    答:Activity表示活动,他是Android的四大组件之一,Intent表示意图,IntentFilter表示过滤器,他们的作用具体如下:
    (1) Activity是一个负责与用户交互的组件,每个Android应用中都会用Activity来显示界面以及处理界面上一些控件的事件。
    (2) Intent被称为意图,是程序中各组件间进行交互的一种重要方式,它不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递。
    (3) IntentFilter为过滤器,当发送一个隐式Intent后,Android系统会将它与程序中的每一个组件的过滤器进行匹配,匹配属性有 action、data、category,需要这三个属性都匹配成功才能唤起相应的组件。

第5章  数据存储

  1. 一、判断题
    1.SQLite是Android 自带的一个轻量级的数据库,支持基本SQL语法。(对)
    2.Android中的文件存储方式,分为内部存储方式和外部存储方式。(对)
    3.使用openFileOutput(方法打开应用程序的输出流时,只需要指定文件名。(错)
    4.当AndroidSDK版本低于2.3时,应用程序想要操作SD卡数据,必须在清单文件中添加权限。(对)
    5.SQLiteDatabase类的 update(方法用于删除数据库表中的数据。(错)
    6.SQLite数据库的事务操作满足原子性、一致性、隔离性和持续性。(对)
    二、选择题
    1.下列关于SharedPreferences存取文件的描述中,错误的是(C)
    A.属于移动存储解决方式
    B.SharedPreferences处理的就是键值对
    C.读取xml的路径是/sdcard/shared_prefs
    D.文本的保存格式是xml
    2.下列选项中,不属于getSharedPreferences方法的文件操作模式参数是(B)。
    A.Context.MODE_PRIVATE                        
    B. Context.MODE_PUBLIC
    C. Context.MODE_WORLD_READABLE            
    D.Context.MODE_WORLD_WRITEABLE
    3.下列方法中,(B    )是SharedPreferences 获取其编辑器的方法。                
    A. getEdit()            
    B. edit()            
    C. setEdit()
    D. getAll
    4.Android对数据库的表进行查询操作时,会使用SQLiteDatabase类中的(C    )方法。
    A.insert()            
    B.execSQL()        
    C.query()                
    D.update()
    5.下列关于SQLite数据库的描述中,错误的是(C    )。
    A.SqliteOpenHelper类有创建数据库和更新数据库版本的功能
    B.SqliteDatabase类是用来操作数据库的
    C.每次调用SqliteDatabase类的 getWritableDatabase(方法时,都会执行SqliteOpenHelper类的onCreate()方法
    D.当数据库版本发生变化时,会调用SqliteOpenHelper类的onUpgrade()方法更新数据库
    6.下列初始化SharedPreferences的代码中,正确的是(D)。
    A. SharedPreferences sp=new SharedPreferences();
    B. SharedPreferences sp=SharedPreferences.getDefault();
    C. SharedPreferences sp= SharedPreferences.Factory();
    D. SharedPreferences sp=getSharedPreferences();
  2. 三、简答题
  3. 1.简述数据库事务的4个基本要素。
    答:事务的操作比较严格,他必须满足ACID,ACID是指数据库事务正确执行的四个基本要素的缩写,这些要素包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),接下来针对这四个基本要素进行详细解释。
    原子性:表示事务是一个不可再分割的工作单位,事务中的操作要么全部成功,要么全部失败回滚。
    一致性:表示事务开始之前和结束之后,数据库的完整性没有被破坏。也就是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。
    隔离性:表示并发的事务是相互隔离的,也就是一个事务内部的操作都必须封锁起来,不会被其他事务影响到。
    持久性:表示事务一旦提交后,该事务对数据做的更改便持久保存在数据库中,并不会被回滚,即使出现了断电等事故,也不会影响数据库中的数据。
    2.简述Android数据存储的方式。
    答:Android平台提供的五种数据存储方式,分别为文件存储、SharedPreferences、SQLite数据库、ContentProvider和网络存储,这些存储方式的特点如下。
    文件存储:Android提供了openFileInput()和openFileOutput()方法来读取设备上的文件,其读取方式与Java中I/O程序是完全一样的。
    SharedPreferences:这是Android提供的用来存储一些简单的配置信息的一种机制,他采用了XML格式将数据存储到设备中。通常情况下,我们使用SharedPreferences存储一些应用程序的各种配置信息,如用户名、密码等。
    SQLite数据库:SQLite是Android自带的一个轻量级的数据库,他运算速度快,占用资源少,还支持基本SQL语法,一般使用他作为复杂数据的存储引擎,可以存储用户信息等。
    ContentProvider:Android四大组件之一,主要用于应用程序之间的数据交换,他可以将自己的数据共享给其他应用程序使用。
    网络存储:需要与Android网络数据包打交道,将数据存储到服务器上,通过网络提供的存储空间来存储/获取数据信息。

第6章  内容提供者和内容观察者

  1. 一、判断题
    1.Uri主要由3部分组成,分别是scheme、authority和path。(对)
    2.内容观察者用于观察指定Uri代表的数据的变化。(对)
    3.内容提供者的主要功能是实现跨程序共享数据的功能。(对)
    4.在Android中,当通过内容解析者读取手机通讯录数据库的内容时,不需要加入读取手机通讯录的权限。(错)
    5.Android的UriMatcher类用于匹配Uri。(对)
    二、选择题
    1.如果一个应用程序想要访问另外一个应用程序的数据库,那么需要通过(C    )实现。
    A. BroadcastReceiver        B.Activity            C.ContentProvider                D.AIDL
    2.下列方法中,哪个方法能够得到ContentProvider的实例对象?(B)
    A. newContentResolver()                    
    B. getContentResolver()
    C. newInstance()                        
    D.ContentUris.newInstance()
    3.自定义内容观察者时,需要继承的类是(B)。
    A.BaseObserver            
    B. ContentObserver
    C. BasicObserver                
    D. DefalutObserver
    4.查询手机系统短信时,内容提供者对应的Uri为(C)。
    A.Contacts.Photos.CONTENT_URI                
    B.Contacts.People.CONTENT_URI
    C.“content://sms/”                                    
    D. Media.EXTERNAL_CONTENT_URI
    5.下列关于ContentProvider的描述,错误的是(D)。
    A.ContentProvider 是一个抽象类,只有继承后才能使用
    B.ContentProvider 只有在AndroidManifest.xml 文件中注册后才能运行
    C.ContentProvider为其他应用程序提供了统一的访问数据库的方式
    D.以上说法都不对
    三、简答题
    1.简述内容提供者的工作原理。
    答:假设B程序需要操作A程序数据库中的数据,一般需要A程序使用ContentProvider
    暴露数据,才能被其他程序操作。B程序通过ContentResolver操作A程序暴露出来的数据,而A程序会将操作结果返回给ContentResolver,然后ContentResolver再将操作结果返回给B程序。
    2.简述内容观察者的工作原理。
    使用ContentObserver观察A程序的数据时,首先要在A程序的ContentProvider中调用ContentResolver的notifyChange()方法。调用此方法后,当B程序操作A程序中的数据时,A程序会向“消息中心”发送数据变化的消息,此时C程序会观察到“消息中心”的数据有变化,会触发ContentObserver的onChange()方法。

第7章  广播机制

  1. 一、填空题
    1.    BroadcastReceiver  用来监听来自系统或者应用程序的广播。
    2.广播接收者的注册方式有两种,分别是    动态注册    和    静态注册    。
    二、判断题
    1.Broadcast表示广播,它是一种运用在应用程序之间传递消息的机制。(对)
    2.在清单文件注册广播接收者时,可在<intent-filter>标签中使用priority 属性设置优先级别,属性值越大,优先级越高。(对)
    3.有序广播的广播效率比无序广播更高。(错)
    4.动态注册的广播接收者的生命周期依赖于注册广播的组件。(对)
    5.Android 中广播接收者必须在清单文件里面注册。(错)
    三、选择题
    1.下列选项中关于广播类型的说法,错误的是(BC)。(多选)
    A.Android中的广播类型分为有序广播和无序广播
    B.无序广播按照一定的优先级进行接收
    C.无序广播可以被拦截,可以被修改数据          
     
    D.有序广播按照一定的优先级进行发送
    2.广播机制作为Android组件间的通信方式,使用的场景有哪些?(ABCD)(多选)
    A.在同一个App内部的同一组件内进行消息通信
    B.在不同App的组件之间进行消息通信
    C.在同一个App内部的不同组件之间进行消息通信(单个进程)
    D.在同一个App具有多个进程的不同组件之间进行消息通信

    四、简答题
    1.简述广播机制的实现过程。
    答:Android中的广播使用了观察者模式,即基于消息的发布/订阅事件的模式。广播发送者和接收者分别处于观察者模式中的消息发布和订阅两端。广播机制的实现过程具体如下:
    1.    广播接收者通过Binder机制在AMS(Activity Manager Service)中进行注册。
    2.    广播发送者通过Binder机制向AMS发送广播。
    3.    AMS查找符合相应条件(IntentFilter/Permission)的广播接收者,将广播发送到相应的消息循环队列中。
    4.    执行消息循环时获取到发送的广播,然后回调广播接收者中的onReceive()方法并在该方法中进行相关处理。
    2.简述有序广播和无序广播的区别。
    答:广播分为有序广播和无序广播,他们有以下几点的区别。
    (1)发送广播时,使用的方法不同。有序广播使用sendOrderedBroadcast()发送广播,而无序广播使用sendBroadcast()方法发送广播。
    (2) 广播接收者执行的顺序
            a)有序广播的接收者是顺序执行的。
    有序广播按照广播接收者声明的优先级别被依次接收。当在高级别的广播接收者逻辑执行完毕之后,广播才会继续传递。当优先级相同时,先注册的广播接受者优先执行。
            b)无序广播是完全异步执行的。
    当发送无序广播时,所有监听这个广播的广播接收者都会接收到此广播消息,但接收和执行的顺序不确定。
    (3)拦截广播
    有序广播的接收者可拦截广播。如果优先级较高的广播接收者将广播终止,那么广播将不再向后传递。而无序广播则不能被拦截。
    (4)效率
    有序广播的效率比无序广播低。

第8章  服务

  1. 一、填空题
    1.如果想要停止 bindService(方法启动的服务,需要调用    unBindService()        方法。
    2.Android服务的通信方式分为    本地服务        和     远程服务        
    3.远程服务通过     AIDL        实现服务的通信。
    二、判断题
    1.服务运行在子线程中。(错)
    2.不管使用哪种方式启动服务,它的生命周期都是一样的。(错)
    3.使用服务的通信方式进行通信时,必须保证服务是以绑定的方式开启的,否则无法通信。(错)
    4.一个组件只能绑定一个服务。(错)
    5.远程服务和本地服务都运行在同一个进程中。(错)
    三、选择题
    1.如果通过 bindService方式开启服务,那么服务的生命周期是(C)
    A. onCreate()→onStart()→onBind()→onDestroy()
    B. onCreate()→onBind()→onDestroy()
    C. onCreate()→onBind()→onUnBind()→onDestroy()
    D. onCreate()→onStart()→onBind()→onUnBind()→onDestroy()
    2.下列关于服务的描述中,错误的是(D)
    A.服务没有用户可见的界面,不能与用户交互
    B.服务可以通过 Context.startService()来启动
    C.服务可以通过Context.bindService()来启动
    D.服务无须在清单文件中进行配置
    3.下列关于服务的方法描述,错误的是(D)
    A.onCreate()表示第一次创建服务时执行的方法
    B.调用startService()方法启动服务时执行的方法是 onStartCommand()
    C.调用bindService()方法启动服务时执行的方法是onBind()
    D.调用startService()方法断开服务绑定时执行的方法是 onUnbind()
    四、简答题
    1.简述服务的两种启动方式的区别。
    答:Service的启动方式分别可以调用startService()、bindService()方法,这两个启动方式的区别如下所示:
    (1)生命周期不同
            startService():使用该方法开启Service时,执行的生命周期方法依次为onCreate()、onStartCommand()、onDestroy()。
            bindService():使用该方法开启Service时,执行的生命周期方法依次为:onCreate()、onBind()、onUnbind()、onDestroy()。
    (2)停止服务的方法不同
            startService():调用stopSelf()、stopService()方法停止服务。
            bindService():调用unbindService()方法停止服务。
    (3)组件的关联不同
            startService():当一个组件通过此方法开启服务时,服务与开启该组件没有关联,即使开启服务的组件被销毁,服务依旧运行。
            bindService():当一个组件通过此方法开启服务时,服务会与该组件绑定,组件一旦被销毁,该服务也会被销毁。
    2.简述服务的生命周期。
    答:使用不同的方式启动服务,其生命周期会不同。开启服务的方法分别为startService()、bindService(),当通过startService()方法启动服务时,执行的生命周期方法依次为onCreate()、onStartCommand()、onDestroy()。当通过bindService()方法启动服务时,执行的生命周期方法依次为onCreate()、onBind()、onUnbind()、onDestroy()。其生命周期方法的具体含义如下:
            onCreate ():第一次创建服务时执行的方法。
            onStartCommand():调用startService()方法启动服务时执行的方法。
            onBind():调用bindService()方法启动服务时执行的方法。
            onUnbind():调用unBindService()方法断开服务绑定时执行的方法。
            onDestory():服务被销毁时执行的方法。

第9章  网络编程

  1. 一、填空题
    1.HttpURLConnection 继承自     URLConnection 类。
    2. Android默认提供的内置浏览器使用的是    WebKit       引擎。
    3.在Android的解析JSON数据的org.json包中,最重要的两个类是    JSONObject        和JSONArray。
    二、判断题
    1.HttpURLConnection用于发送HTTP请求和获取HTTP响应。(对)
    2.Android中的WebView控件是专门用于浏览网页的,其使用方法与其他控件一样。(对 )
    3.在Android中要访问网络,必须在AndroidManifest.xml中注册网络访问权限。(对)
    4.HttpURLConnection是抽象类,不能直接实例化对象,需要使用URL的openConnection0方法获得。(对)
    5.使用HttpURLConnection进行HTTP网络通信时,GET请求方式只能发送大小在1024字节内的数据(对)
    三、选择题
    1.Android针对HTTP实现网络通信的方式主要包括(ABCD  )。(多选)
    A.使用HttpURLConnection 实现                
    B.使用ServiceConnection 实现
    C.使用HttpClient实现                        
    D.使用HttpConnection 实现

    2.Android中 HttpURLConnection的输入/输出流操作被统一封装成了(  ABD  )。(多选)
    A. HttpGet                    
    B.HttpPost        
        
    C.HttpRequest            
    D. HttpResponse
    四、简答题
    简述使用HttpURLConnection 访问网络的步骤。
  2. 答:使用HttpURLConnection访问网络的步骤如下:
    (1)创建URL对象。
    (2)调用URL对象的openConnection()方法获取HttpURLConnection对象。
    (3)调用setRequestMethod()方法设置http请求的方式。
    (4)通过setConnectTimeout()方法设置连接的超时时间。
    (5)调用getInputStream()方法获取服务器返回的输入流。
    (6)最后调用disconnect()方法关闭http连接。

第10章  图形图像处理

  1. 一、判断题
    1.Paint类表示画笔,主要用于描述图形的颜色和风格。(对)
    2.Android提供的Matrix类能够结合其他API对图形进行变换,例如旋转、缩放、倾斜。(对)
    3.Bitmap类的decodeFile(方法用于从文件中解析Bitmap对象。(对)
    二、选择题
    1.下列关于Android动画的描述中,正确的是(ABC    )。(多选)
    A.Android中的动画通常分为逐帧动画和补间动画两种
    B.逐帧动画就是顺序播放一组预定义的静态图像而形成的动画效果
    C.补间动画就是通过对场景中的对象不断进行图像变化来产生动画效果

    D.实现补间动画时,只需要定义动画开始和结束的关键帧,其他过渡由系统自动计算补齐
    2.Android提供了哪些补间动画?(ABCD    )
    A.透明度渐变动画(AlphaAnimation)        
    B.旋转动画(RotateAnimation)
    C.缩放动画(ScaleAnimation)                
    D.平移动画(TranslateAnimation)

    3.Android绘制图像时最常用的类包括(ABCD    )。
    A. Bitmap类        
    B. BitmapFactory类        
    C.Paint类                
    D.Canvas类

    4.在Android中,使用Canvas类中的(B    )方法可以绘制椭圆。
    A. drawRect()        
    B. drawOval()        
    C. drawCircle()            
    D. drawLine()
    5.下列关于Canvas类的描述,错误的是(C)。
    A. Canvas 类表示画布
    B.Canvas类可以绘制各种各样的图形
    C.Canvas类和Paint类的作用一样
    D.Canvas类的drawRect()方法用于绘制矩形

第11章  多媒体应用开发

  1. 一、判断题
    1.SurfaceView 控件继承自 View,它是显示图像的控件。(对    )
    2.SurfaceView控件具有双缓冲技术。(对    )
    3.使用MediaPlayer类播放视频时,SurfaceView控件显示视频的时候必须要在子线程中更新。(错    )
    4.Android中可以使用SoundPool类同时播放多个音频文件。(对    )
    5.使用VideoView控件播放视频时,需要使用setVideoPalh()方法设置播放视频路径。(对    )
    二、选择题
    1.下列关于多媒体应用开发的描述中,正确的是(ABC    )。(多选)
    A.可以使用MediaPlayer类或SoundPool类播放音频
    B.使用MediaPlayer类每次只能播放一个音频,适用于播放长音乐或背景音乐
    C.使用SoundPool类可以同时播放多个短小音频,适用于播放按键音或消息提示音

    D.SoundPool类和SurfaceView控件一起使用,还可以播放视频
    2.MediaPlayer类中的setAudioStreamType(方法支持的音频类型包括(    ABC)。(多选)
    A.音乐                    
    B.响铃                    
    C.闹钟     
               
    D.提示音
    3.下列关于MeidiaPlayer类的描述,错误的是(D    )。
    A. MediaPlayer类是用于播放音频和视频的
    B.MadiaPlayer类对音频文件提供了非常全面的控制方法
    C.MadiaPlayer类会调用底层的音频驱动播放音频
    D.MadiaPlayer类只可以播放音频而不能播放视频