学校安卓期末考试复习题(Android移动应用基础教程 第二版)

v1.1更新说明:

优化了部分错误格式,第5章增加代码

所有试题以本PDF为准。没有在此复习PDF上出现的内容不予考查

考场严格,请不要抱有侥幸心理🤷

目录

考试题型

选择,填空(10个全是英文),判断

主要是看英文,记关键词

界面设计(第3章 写代码),

代码填空(第11章6空 12分 )

最后一题(第5章)

第1章 Android基础入门

本章习题

一、填空题

  1. Dalvik中的Dx工具会把部分class文件转换成( )文件。

  2. 如果希望在XML布局文件中调用颜色资源,可以使用( )调用。

  3. Android程序入口的Activity是在( )文件中注册的。

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

1、dex 2、@color 3、AndroidManifest.xml 4、LogCat

二、判断题

  1. Dalvik是 Google公司设计的用于Android平台的虚拟机。

  2. Android应用程序的主要语言是Java.

  3. Android系统采用分层架构,分别是应用程序层、应用程序框架层、核心类库和Linux内核。

  4. 第三代移动通信技术(3G)包括TD-LTE和FDD-LTE两种制式。

  5. Android程序中,Log.e()用于输出警告级别的日志信息。

  6. 每个Dalvik虚拟机实例都是一个独立的进程空间,并且每个进程之间不可以通信。

1、√ 2、√ 3、√ 4、× 5、× 6、×

4.4G技术包括TD-LTE和FDD-LTE两种制式。

5.Log.e()用于输出Error(错误)级别的日志信息。

三、选择题

  1. Dalvik虚拟机是基于( )的架构。 A.栈 B.堆 C.寄存器 D.存储器

  2. Android项目中的主题和样式资源,通常放在( ) 目录。 A. res/drawable B. res/layout C. res/values D. assets

  3. 下列关于AndroidManifest.xml文件的说法中,错误的是( )。 A.它是整个程序的配置文件 B.可以在该文件中配置程序所需的权限 C.可以在该文件中注册程序用到的组件 D.该文件可以设置UI布局

  4. Dalvik虚拟机属于Android系统架构中的( A.应用程序层 B.应用程序框架层 C.核心类库层 D. Linux内核层

  5. Android中 短信、联系人管理、浏览器等属于Android系统架构中的( A.应用程序层 B. 应用程序框架层 C.核心类库层 D. Linux内核层

 

1、C 2、C 3、D 4、C 5、A

第2章 Android常见界面布局

约束布局不考

本章习题

一、填空题

  1. Android的常见布局都直接或者间接的继承自( )类。

  2. Android中 的TableLayout继承自( )。

  3. 表格布局TableLayout通过( )布局控制表格的行数。

  4. )布局通过相对定位的方式指定子控件的位置。

  5. 在R.java文件中,android:id属性会自动生成对应的( )类型的值。

1、ViewGroup 2、LinearLayout 3、TableRow 4、RelativeLayout 5、int

二、判断题

  1. ViewGroup是盛放界面控件的容器。

  2. 如果在帧布局FrameLayout中放入三个所有属性都相同的按钮,那么能够在屏幕上显示的是第1个被添加的按钮。

  3. Android中的布局文件通常放在res/layout文件夹中。

  4. TableLayout继承自LinearLayout, 因此它完全支持LinearLayout所支持的属性。

  5. LinearLayout布局中的android:layout_weight属性用于设置布局内控件所占的权重。

1、√ 2、× 3、√ 4、√ 5 、√

三、选择题

  1. 下列属性中,用于设置线性布局方向的是( )。 A. orientation B. gravity C. layout gravity D. padding

  2. 下列选项中,不属于Android布局的是( )。

    A. FrameLayout B. LinearLayout C. Button D. RelativeLayout

  3. 帧布局FrameLayout是将其中的组件放在自己的( )。

    A.左上角 B.右上角 C.左下角 D.右下角

  4. 对于XML布局文件,android:layout_width属性的值不可以是( )。

    A. match_parent B. fill_parent C. wrap_content D. match_content

  5. 下列关于RelativeLayout的描述,正确的是( )。

    A. RelativeLayout表示绝对布局,可以自定义控件的x、y的位置 B. RelativeLayout表示帧布局,可以实现标签切换的功能 C. RelativeLayout表示相对布局,其中控件的位置都是相对位置 D. RelativeLayout表示表格布局,需要配合TableRow 一起使用

1、A 2、C 3、A 4、D 5、C

第3章 Android常见界面控件

不考RecyclerView和自定义View

大题考界面设计,写xml代码

本章习题

一、判断题

  1. Android的控件样式, 每一个XML属性都对应一个Java方法。

  2. 当指定RadioButton按钮的android:checked属性为true时,表示未选中状态。

  3. AlertDialog对话框能够直接通过new关键字创建对象。

  4. Toast是Android系统提供的轻量级信息提醒机制,用于向用户提示即时消息。

  5. ListView列表中的数据是通过Adapter加载的。

 

1、√ 2、× 3、× 4、√ 5、√

3.由于AlertDialog类的构造方法被声明成protected方法,因此,不能直接使用new关键字来创建AlertDialog类的对象实例。

二、选择题

  1. 在XML布局中定义了一个Button, 决定Button按钮上显示文字的属性是( A. android:value B. android:text C. android:id D. android:textvalue

  2. 下列选项中,( )用于设置TextView中文字显示的大小。 A. android:textSize="18" B. android:size="18" C. android:textSize="18sp" D. android:size="18sp"

  3. 使用EditText控件时, 当文本内容为空时,如果想做一些提示, 那么可以使用的属性是( )。 A. android:text B. android:background C. android:inputType D. android:hint

  4. 为了让一个imageView显示一张图片,可以通过设置的属性是( )。 A. android:src B. android:background C. android: img D. android:value

  5. 下列关于ListView的说法中, 正确的是( A. ListView的条目不能设置点击事件 B. ListView不设 置Adapter也能显示数据内容 C. 当教据超出能显示范围时,ListView自动具有可滚动的特性 D. 若ListView当前能显示10条, 一共有100条数据, 则产生了100个View

  6. CheckBox被选择的监听事件通常使用( )方法。 A. setOnClickListener B. setOnCheckedChangeListener C. setOnMenuItemSelectedListener D. setOnCheckedListener

  7. 当使用EditText控件时, 能够使文本框设置为多行显示的属性是( )。 A. android:lines B. android:layout_height C. android:textcolor D. android:textsize

  8. 下列关于AlertDialog的描述,错误的是( A.使用new关键字创建AlertDialog的实例 B.对话框的显示需要调用show()方法 C. setPositiveButton()方法是 用来设置确定按钮的 D. setNegativeButton()方法是用来设置取消按钮的

1、B 2、C 3、D 4、A 5、C 6、B 7、A 8、A

界面设计题

写xml代码

TextView常用属性

属性名功能描述
android:layout_width 设置TextView控件宽度
android:layout_height 高度
android:id 设置TextView控件的唯一标识
android:background 背景
android:layout_margin 设置当前控件与屏幕边界或周围控件,布局的距离
android:padding 设置TextView控件与该控件中内容的距离
android:text 设置文本内容
android:textColor 设置文字显示的颜色
android:textSize 设置文字大小,推荐单位为sp
android:gravity 设置文本内容的位置,如“center”
android:maxLength 设置文本最大长度,超出此长度的文本不显示
android:lines 设置文本的行数,超出此行数的文本不显示
android:maxLines 设置文本的最大行数,超出此行数的文本不显示
android:ellipsize 设置当文本超出TextView规定的范围的显示方式。“start”,“middle”,“end”,在文本的开始,中间,结尾显示省略号
android:drawableTop 在文本的顶部显示图像,该图像资源可以放在res/drawable相应分辨率的目录下,通过“@drawable/文件名”调用
android:lineSpacingExtra 设置文本的行间距
android:textStyle 设置文本样式,如bold(粗体),italic(斜体),normal(正常)

EditText常用属性

属性名功能描述
android:hint 控件中内容为空时显示的提示文本信息
android:textColorHint 控件中内容为空时显示的提示文本信息的颜色
android:password 输入文本框中的内容显示为“.”
android:phoneNumber 输入文本框中的内容只能是数字
android:minLines 设置文本的最小行数
android:scrollHorizontally 设置文本信息超出EditText的宽度情况下,是否出现横拉条
android:editable 设置是否可以编辑

ImageView常用属性

属性名功能描述
android:layout_width 设置ImageView控件宽度
android:layout_height 高度
android:id 设置ImageView控件的唯一标识
android:background 背景
android:layout_margin 设置当前控件与屏幕边界或周围控件,布局的距离
android:src 设置ImageView控件需要显示的图片资源
android:scaleType 将图片资源缩放或移动,以适应ImageView控件的宽高
android:tint 将图片渲染成指定的颜色

设置Button点击事件的3种方式

建议阅读教材p50

(1)在布局文件中指定onClick属性的方式设置点击事件。可以在布局文件中指定onClick性的值来设置Button控件的点击事件,示例代码如下:

<Button
   ...
android:onClick="click"/>

上述代码中,Button控件指定了onClick属性,我们可以在Activity中定义专门的方法来实现Button控件的点击事件。需要注意的是,在Activity中定义实现点击事件的方法名,必须与onClick属性的值保持一致。

(2)使用匿名内部类的方式设置点击事件。Activity中,可以使用匿名内部类的方式为Button控件设置点击事件,示例代码如下:

btn.setOnClickListener(new View.OnClickListener(){
   @Override
public void onClick(View view) {
//实现点击事件的代码
  }
});

上述代码中,通过为Button控件设置setOnClickListener()方法实现对Button控件点击事件的监听。setOnClickListener()方法中传递的参数是一 个匿名内部类。如果监听到按钮被点击,那么程序会调用匿名内部类中的onClick()方法实现Button控件的点击事件。

(3) Activity实现OnClickListener接口的方式设置点击事件。将当前Activity实现View.OnClickListener 接口,同样可以为Button控件设置点击事件,示例代码如下:

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
@override
protected void onCreate(Bundle savedInstanceState){
...
       btn.setOnClickListener(this); //设置Button控件的点击监听事件
  }
   @Override
public void onClick(View view) {
//实现点击事件的代码
  }
}

上述代码中,MainActivity 通过实现View.OnClickListener接口中的onClick()方法来设置点击事件。需要注意的是,在实现onClick()方法之前,必须调用Button控件的setOnClickListener()方法设置点击监听事件,否则,Button控件的点击不会生效。

值得一提的是,实现Button控件的点击事件的三种方式中,前两种方式适合界面上Button控件较少的情况,如果界面上Button控件较多时,建议使用第三种方式实现点击事件。

RadioButton事件

建议阅读教材p55

RadioButton表示单选按钮,它是Button的子类。每个单选按钮都有“选中”和“未选中”两种状态,这两种状态是通过android:checked属性指定的。当可选值为true时,表示选中状态,否则,表示未选中状态。

在Android程序中RadioButton经常与RadioGroup配合使用,实现RadioButton的单选功能。RadioGroup是单选组合框,可 容纳多个RadioButton,但是在RadioGroup中不会出现多个RadioButton同时选中的情况。在XML 布局文件中,RadioGroup 和RadioButton配合使用的语法格式如下:

<RadioGroup
android:属性名称=”属性值”
   ...>
<RadioButton
android:属性名称="属性值”
       .../>
   <RadioButton
android:属性名称="属性值”
       .../>                  
  ...
<RadioGroup/>

上述语法格式中,RadioGroup继 承自LinearLayout,可以使用android:orientation属性控制RadioButton的排列方向。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical"
   tools:context=".xwz1027MainActivity">

   <!--1、wrap是扩展空间,并且强制性占用整个空间,不给其他控件留地方。
       2、match的话是指“填充满”父容器。-->
   <RadioGroup
       android:id="@+id/rdg"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="vertical">

       <RadioButton
           android:id="@+id/b1"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:text="男"
           android:textSize="25dp" />

       <RadioButton
           android:id="@+id/b2"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:text="女"
           android:textSize="25dp" />
   </RadioGroup>

   <TextView
       android:id="@+id/tv"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:textSize="25dp"/>
</LinearLayout>
package com.example.xieweizhi1027_sx6;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.RadioGroup;
import android.widget.TextView;

import java.util.Map;
import java.util.Set;

public class xwz1027MainActivity extends AppCompatActivity {

   private RadioGroup radioGroup;
   private TextView textView;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);

       radioGroup = (RadioGroup)findViewById(R.id.rdg);
       textView = (TextView)findViewById(R.id.tv);

       // 利用setOnCheckedChangeListener()为RadioGroup设置监听事件
       radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
           @Override
           public void onCheckedChanged(RadioGroup group, int checkedId) {
               if (checkedId == R.id.b1) {
                   textView.setText("您的性别是:男");
              } else {
                   textView.setText("您的性别是:女");
              }
          }
      });
  }
}

利用setOnCheckedChangeListener()为RadioGroup设置监听事件

通过事件返回的onCheckedChanged()方法获取被点击的控件ID

CheckBox事件

建议阅读教材p57

复选框,是Button的子类,用于实现多选功能。通过android:checked属性指定“选中(true)”和“未选中(false)”状态。

在MainActivity中实现CompoundButton.OnCheckedChangeListener接口,并重写onCheckedChanged()方法,在该方法中实现CheckBox控件的点击事件。

选择、填空题

AlertDialog对话框

普通对话框通过AlertDialog.Builder对象调用setMessage()方法设置。

单选对话框通过AlertDialog.Builder对象调用setSingleChoiceItem()方法设置。

多选对话框通过AlertDialog.Builder对象调用setMultiChoiceItems()方法设置。

界面设计布局

不写表头,只写控制布局的属性。

只考前四种布局

RelativeLayout(相对布局)中子控件的属性

考点:只需从三类属性中分别写一个

1.与父类关系

2.与其他对齐

3.控件与控件对齐

属性名称功能描述
android:layout_centerHrizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInparent 相对于父元素完全居中
android:layout_alignParentBottom 贴紧父元素的下边缘
android:layout_alignParentLeft 贴紧父元素的左边缘
android:layout_alignParentRight 贴紧父元素的右边缘
android:layout_alignParentTop 贴紧父元素的上边缘
android:layout_below 在某元素的下方
android:layout_above 在某元素的的上方
android:layout_toLeftOf 在某元素的左边
android:layout_toRightOf 在某元素的右边
android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐

LinearLayout(线性布局)常用属性

属性名称功能描述
android:orientation 设置布局控件的排列顺序
android:layout_weight 在布局内设置控件权重,可直接写int值

android:orientation属性:vertical表示LinearLayout布局内控件从上到下排,horizontal从左到右排。

权重数值越大,占总面积也越大。

线性布局嵌套示例

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical"
   tools:context=".xwz1027MainActivity">
   
   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:background="@color/cardview_dark_background"
       android:layout_weight="1">
   </LinearLayout>
   
   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:background="@color/cardview_light_background"
       android:layout_weight="2">
   </LinearLayout>
   
   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:background="@color/teal_200"
       android:layout_weight="3"
       android:orientation="horizontal">
       <LinearLayout
           android:layout_width="wrap_content"
           android:layout_height="match_parent"
           android:layout_weight="1"
           android:background="@color/teal_700">
       </LinearLayout>
       
       <LinearLayout
           android:layout_width="wrap_content"
           android:layout_height="match_parent"
           android:layout_weight="1"
           android:background="#E91E63">
       </LinearLayout>
       
       <LinearLayout
           android:layout_width="wrap_content"
           android:layout_height="match_parent"
           android:layout_weight="1"
           android:background="#FF9800">
       </LinearLayout>
   </LinearLayout>
</LinearLayout>

样式如下

image-20210604215047867

TableLayout(表格布局)常用属性

属性名称功能描述
android:stretchColumns 设置可被拉伸的列,android:stretchColumns=“0”表示第1列可被拉伸
android:shrinkColumns 设置可被收缩的列,android:shrinkColumns=“1,2”表示第2,3列可被收缩
android:collapseColumns 设置可被隐藏的列,android:collapseColumns=“0”表示第1列可被隐藏

第4章 程序活动单元Activity

不考使用Fragment

本章习题

一、填空题

  1. Activity的启动模式包括standard, singleTop,singleTask和( )。

  2. 启动一个新的Activity并且获取这个Activity的返回教据, 需要重写( )方法。

  3. 发送隐式Intent后,Android系统会使用( )匹配相应的组件。

  4. 在清单文件中为Activity添加< intent-filter>标签时, 必须添加的属性名为( )否则隐式Intent无法开启该Activity.

  5. Activity的( )方法用于关闭当前的Activity。

1.singleInstance

2.startActivityForResult()

3.IntentFilter

4.action

5.finish()

二、判断题

  1. 如果Activity不设置启动模式,则默认为standard.

  2. Fragment与Activity的生命周期方法是一致的。

  3. 如果想要关闭当前的Activity, 可以调用Activity提供的finish()方法。

  4. < intent-filter>标签中间只能包含一个action属性。

  5. 默认情况下,Activity的启动方式是standard.

     

1、√ 2、× 3、√ 4、× 5、√

2、

CSDN图标

4、Intent主要有以下四个重要属性,它们分别为:    Action:Action属性的值为一个字符串,它代表了系统中已经定义了一系列常用的动作。通过setAction()方法或在清单文件AndroidManifest.xml中设置。默认为:DEFAULT。    Data:Data通常是URI格式定义的操作数据。例如:tel:// 。通过setData()方法设置。    Category:Category属性用于指定当前动作(Action)被执行的环境。通过addCategory()方法或在清单文件AndroidManifest.xml中设置。默认为:CATEGORY_DEFAULT。    Extras:Extras属性主要用于传递目标组件所需要的额外的数据。通过putExtras()方法设置。

三、选择题

  1. 下列选项中,不属于Android四大组件的是( A. Service B. Activity C. Handler D. ContentProvider

  2. 下列关于Android中Activity管理方式的描述中,正确的是( A. Android以堆的形式管理Activity B. Android以栈的形式管理Activity C. Android以树的形式管理Activity D. Android以链表的形式管理Activity

  3. 下列选项中,( )不是Activity生命周期方法。 A. onCreate() B. startActivity() C. onStart() D. onResume()

  4. 下列方法中,( )是启动Activity的方法。 A. startActivity() B. goToActivity() C. startActivityResult() D.以上都是

  5. 下列关于Intent的描述中,正确的是( A. Intent不能够实现应用程序间的数据共享 B. Intent可以实现界面的切换, 还可以在不同组件间直接进行数据传递 C. 使用显式Intent可以不指定要跳转的目标组件 D. 隐式Intent不会明确指出需要激活的目标组件,所以无法实现组件之间的数据跳转

1、C 2、B 3、B 4、A 5、B

3、4、见上方判断题的生命周期图

第5章 数据存储

最后一题

本章习题

一、判断题

  1. SQLite是Android自带的一个轻量级的数据库,支持基本SQL语法。

  2. Android中的文件存储方式, 分为内部存储方式和外部存储方式。

  3. 使用openFileOutput()方式打开应用程序的输出流时,只需指定文件名。

  4. 当Android SDK版本低于23时,应用程序想要操作SD卡数据,必须在清单文件中添加权限。

  5. SQLiteDatabase类的update()方法用于删除数据库表中的数据。

  6. SQLite数据库的事 务操作满足原子性、一致性、 隔离性和持续性。

1、√ 2、√ 3、× 4、√ 5、× 6、√

3、

// name-文件名,mode-文件读写方式
FileOutPutStream fos = openFileOutPut(String name, int mode);

二、选择题

  1. 下列关于SharedPreferences存取文件的描述中,错误的是( )。 A. 属于移动存储解决方式 B. SharedPreferences处理的就是key-value对 C. 读取xml的路径是/sdcard/shared_prefs D.文本的保存格式是xml

  2. 下列选项中,不属于getSharedPreferences方法的文件操作模式参数是( )。 A. Context.MODE_PRIVATE B. Context.MODE_PUBLIC C. Context.MODE_WORLD_ READABLE D. Context.MODE_WORLD_WRITEABLE

  3. 下列方法中,( )方法是shardPreferences获取其编辑器的方法。 A. getEdit() B. edit() C. setEdit() D. getAll()

  4. Android对教据库的表进行查询操作时,会使用SQLietDatabase中的( ) 方法。 A. insert() B. execSQL() C. query() D. updata()

  5. 下列关于SQLite数据库的描述中, 错误的是( A. SqliteOpenHelper有创建数据库和更新数据库版本的的功能 B. SqliteDatabase类是用来操作数据库的 C. 每次调用SqliteDatabase的getWritableDatabase方法时,都会执行SqliteOpenHelper的onCreate()方法 D. 当数据库版本发生变化时,会调用SqliteOpenHelper的onUpgrade()方法更新数据库

  6. 下列初始化SharedPreferences的内代码中, 正确的是( A. SharedPreferences sp = new SharedPreferences(); B. SharedPrefe / rences sp = SharedPreferences.getDefault(); C. SharedPreferences sp = SharedPreferences.Factory(); D. SharedPreferences sp = getSharedPreferences();

1、C 2、B 3、B 4、C 5、C 6、D

3、数据以key/value保存在data/data/< packagename>/shared_prefs文件夹下的XML文件中

最后一道大题

教材p115-118

涉及存储方式,内部,外部,写入读出的关键代码

1.内部存储

// ********存数据***********
String fileName = "data.txt";
String content = "helloWorld";
FileOutputStream fos = null;
try {
// 可能就考下面两句
fos = openFileOutput(fileName, MODE_PRIVATE);
fos.write(content.getBytes());
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (fos != null) {
fos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}

// ********取数据***********
String content = "";
FileInputStream fis = null;
try {
fis = openFileInput("data.txt");
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
content = new String(buffer);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (fis != null) {
fis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}

2.外部存储

// ********存数据***********
// 获取外部设备的状态
String state = Environment.getExternalStorageState();
// 根据状态判断外部设备是否可用
if (state.equals(Environment.MEDIA_MOUNTED)) {
// 获取SD卡目录
File SDPath = Environment.getExternalStorageDirectory();
File file = new File(SDPath, "data.txt");
String data = "helloWorld";
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
fos.write(data.getBytes());
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (fos != null) {
fos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
// ********取数据***********
String state = Environment.getExternalStorageState();
if (state.equals(Environment.MEDIA_MOUNTED)) {
File SDPath = Environment.getExternalStorageDirectory();
File file = new File(SDPath, "data.txt");
FileInputStream fis = null;
BufferedReader br = null;
try {
fis = new FileInputStream(file);
br = new BufferedReader(new InputStreamReader(fis));
String data = br.readLine();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (fis != null) {
fis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

第6章 阶段案例——记事本

重点

无习题

第7章 使用内容提供者共享数据

7.4内容观察者不考

本章习题

一、判断题

  1. Uri主要由三部分组成,分别是scheme,authority和path。

  2. 内容观察ContentObserver用于观察指定URI代表的数据的变化。

  3. 内容提供者主要功能是实现跨程序共享数据的功能,

  4. Android中通过内容解析者查询短信数据库的内容时不需要加入读短信的权限。

  5. Android系统的UriMatcher类用于匹配Uri.

1、√ 2、√ 3、√ 4、× 5、√

二、选择题

  1. 如果一个应用程序想要访问另外一个应用程序的数据库,那么需要通过( )实现, A. BroadcastReceiver B. Activity C. ContentProvider D. AIDL

  2. 下列方法中,( )能够得到ContentResolver的实例对象。 A. new ContentResolver() B. getContentResolver() C. newInstance() D. ContentUris.newInstance()

  3. 自定义内容观察者时,需要继承的类是( A. BaseObserver B. ContentObserver C. BasicObserver D. DefalutObserver

  4. 对查询系统信息时,内容提供者对应的Uri为( ).

    这里指的是系统短信

    A. Contacts.Photos.CONTENT_URI ​ B. Contacts.People.CONTENT_URI ​ C. content://sms/ ​ D. Media.EXTERNAL_CONTENT_URI

  5. 下列关于ContentProvider的描述, 错误的是( A. ContentProvider是一个抽象类,只有继承后才能使用 B. ContentProvider只有在AndroidManifest.xml文件中注册后才能运行 C. ContentProvider为其他应用程序提供了统一的访问数据库的方式 D.以上说法都不对

1、C 2、B 3、B 4、C 5、D

第8章 广播机制

不考有序广播

本章习题

一、填空题

  1. )用来监听来自系统或者应用程序的广播。

  2. 广播接收者的注册方式有两种,分别是( )和( )。

1.BroadcastReceiver

2.动态注册和静态注册

二、判断题

  1. Broadcast表示广播,它是一种运用在应用程序之间传递消息的机制。

  2. 在清单文件注册广播接收者时,可在< intent-filer>标签中使用priority属性设置优先级别, 属性值越大优先级越高。

  3. 有序广播的广播效率比无序广播更高。

  4. 动态注册的广播接收者的生命周期依赖于注册广播的组件。

  5. Android中广播接收者必须在清单文件里面注册。

1、√ 2、√ 3、× 4、√ 5、×

三、选择题

  1. 关于广播类型的说法,错误的是( )。 (多选) A. Android中的广播类型分有序广 播和无序广播 B.无序广播是按照一定的优先级进行接收 C.无序广播可以被拦截,可以被修改数据 D.有序广播按照一定的优先级进行发送

  2. 广播作为Android组件间的通信方式,使用的场景有( )。(多选) A.在同一个APP内部的同一组件内进行消息通信 B.不同APP的组件之间进行消息通信 C.在同一个APP内部的不同组件之间进行消息通信(单个进程) D. 在同一个APP具有多个进程的不同组件之间进行消息通信

1.BC

2.ABCD

第9章 服务

重点

本章习题

一、填空题

  1. 如果想要停止bindService()方法启动的服务,需要调用( )方法。

  2. Android系统的服务的通信方式分为( )和( )。

  3. 远程服务通过( )实现服务的通信。

1.onUnbind() 2.本地服务 远程服务 3.AIDL

二、判断题

  1. Service服务是运行在子线程中的。

  2. 不管使用哪种方式启动Service, 它的生命周期都是一样的。

  3. 使用服务的通信方式进行通信时,必须保证服务是以绑定的方式开启的,否则无法通信。

  4. 一个组件只能绑定一个服务。

  5. 远程服务和本地服务都运行在同一个进程中。

1、× 2、× 3、√ 4、× 5、×

1、运行在主线程

2、startService()和bindService()

img

三、选择题

  1. 如果通过bindService方式开启服务, 那么服务的生命周期是( ). A. onCreate() →onstart()→onBind()→onDestroy() B. onCreate()→onBind()→onDestroy() C. onCreate()→onBind()→onUnBind()→onDestroy() D. onCreate() →onStart()→onBind ()→onUnBind()→onDestroy()

  2. 下列关于Service服务的描述中,错误的是( A. Service是没有用户可见的界面,不能与用户交互 B. Service可以通过Context.startService()来启动 C. Service可以通过Context.bindService()来启动 D. Service无须在清单文件中进行配置

  3. 下列关于Service的方法描述,错误的是( )。 A. onCreate()表示第一次创建服务时执行的方法 B. 调用startService()方法启动服务时执行的方法是onStartCommand() C. 调用bindService()方法启动服务时执行的方法是onBind() D. 调用startService()方法断开服务绑定时执行的方法是onUnbind()

1、C 2、D 3、D

第11章 网络编程

重点

本章习题

一、填空题

  1. HttpURLConnection继承自( )类。

  2. Android系统默认提供的内置浏览器使用的是( )引擎。

  3. Android中解析JSON数据的org.json包中,最重要的两个类是( )和JSONArray.

 

1.URLConnection

2.WebKit

3.JSONObject

二、判断题

  1. HttpURLConnection用于发送HTTP请求和获取HTTP响应。

  2. Android中 的WebView控件专门用于浏览网页,其使用方法与其他控件一样。

  3. Android中要访问网络,必须在AndroidManifest.xml中注册网络访问权限。

  4. HttpURLConnection是抽象类, 不能直接实例化对象,需要使用URL的openConnection()方法获得。

  5. 使用HttpURLConnection进行HTTP网络通信时,GET方式发送的请求只能发送大小在1024个字节内的数据.

  6. Android内置的浏览器使用的是WebView引擎。

 

1、√ 2、√ 3、√ 4、√ 5、√ 6、×

三、选择题

  1. Android针对HTTP实现网络通信的方式主要包括( )。(多选) A. 使用HttpURLConnection实现 B. 使用ServiceConnection实现 C. 使用HttpClient实现 D. 使用HttpConnection实现

  2. Android中的HttpURLConnection中的输入/输出流操作,在HttpClient中被统一封装成了( )。(多选) A. HttpGet B. HttpPost C. HttpRequest D. HtpResponse

1.ABCD 2、ABD

代码填空题

6空12分

教材p243-248

第14章 多媒体应用开发

重点MediaPlayer、VideoView

本章习题

一、判断题

  1. SurfaceView继承自View, 它是显示图像的控件。

  2. SurfaceView具有双缓冲技术。

  3. MediaPlayer播放视频,SurfaceView 显示视频时必须在子线程中更新。

  4. Android中可以使用SoundPool同时播放多个音频文件。

  5. 使用VideoView播放视频时, 需要使用setVideoPath( )设置播放视频路径,

1、√ 2、√ 3、× 4、√ 5、√

二、选择题

  1. 下列关于多媒体应用开发的描述中,正确的是( ) (多选) A. 可以使用mediaPlayer或SoundPool播放音频 B. 使用MediaPlayer每次只能播放一个音频,适用于播放长音乐或背景音乐 C. 使用SoundPool可以同时播放多个短小音频,适用于播放按键音或消息提示音 D. SoundPool和SurfaceView一起使用,还可以播放视频

  2. MediaPlayer 中的setAudio StreamType()方法支持的音频类型包括( ).(多 选) A.音乐 B.响铃 C.闹钟 D.提示音

  3. 下列关于MediaPlayer的描述, 错误的是( A. MediaPlayer是用于播放音频和视频的 B. MediaPlayer对音频文件提供了非常全面的控制方法 C. MediaPlayer会调用底层的音频驱动播放音频 D. MediaPlayer只可以播放音频,不能播放视频

1、ABC 2、ABC 3、D



posted @ 2021-06-20 14:30  sanling  阅读(7705)  评论(1编辑  收藏  举报