vault backup: 2026-06-10 16:00:14

This commit is contained in:
2026-06-10 16:00:14 +08:00
parent b9bc08ab2f
commit 09dcdd4786
11 changed files with 1820 additions and 1244 deletions
+166 -128
View File
@@ -28,7 +28,8 @@ create time: 2026-06-10 10:41
C. 应用是软件工程单元的文件
D. Android 和 iOS 都使用 Linux 内核
**答案:<span style="color:#2196F3">B</span>**
> [!success]- 答案与解析
> **答案:B**
2. 下列不属于 ARM 体系结构支持的七种处理器模式之一的是()。
A. 用户模式
@@ -36,7 +37,8 @@ create time: 2026-06-10 10:41
C. 系统模式
D. 中断模式
**答案:<span style="color:#2196F3">C</span>**
> [!success]- 答案与解析
> **答案:C**
> [!question] 思考:ARM 支持的七种模式分别是什么?
> 用户模式(USR)、系统模式(SYS)、管理模式(SVC)、中止模式(ABT)、未定义模式(UND)、IRQ 中断模式、FIQ 快速中断模式。
@@ -47,7 +49,8 @@ create time: 2026-06-10 10:41
C. ContentProvider
D. BroadcastReceiver
**答案:<span style="color:#2196F3">D</span>**
> [!success]- 答案与解析
> **答案:D**
4. 在 Android 系统中,所有的用户界面都是在()文件中通过 XML 进行描述。
A. manifest.xml
@@ -55,7 +58,8 @@ create time: 2026-06-10 10:41
C. res.xml
D. main.xml
**答案:<span style="color:#2196F3">D</span>**
> [!success]- 答案与解析
> **答案:D**
5. 在 Android 7.0 中新增的权限类型是()。
A. normal
@@ -63,7 +67,8 @@ create time: 2026-06-10 10:41
C. signature
D. SignatureOrSystem
**答案:<span style="color:#2196F3">D</span>**
> [!success]- 答案与解析
> **答案:D**
6. 要想使布局中的 TextView 控件的内容在水平方向和垂直方向上居中,应该设置属性为()。
A. android:gravity="center"
@@ -71,7 +76,8 @@ create time: 2026-06-10 10:41
C. android:text="center"
D. android:layout_centerInParent="true"
**答案:<span style="color:#2196F3">D</span>**
> [!success]- 答案与解析
> **答案:D**
> [!note] 教学提示
> 注意区分 `gravity`(内容对齐)和 `layout_gravity`(组件在父容器中的对齐)。在 RelativeLayout 中,`layout_centerInParent` 可实现完全居中。
@@ -82,7 +88,8 @@ create time: 2026-06-10 10:41
C. equals()
D. parse()
**答案:<span style="color:#2196F3">B</span>**
> [!success]- 答案与解析
> **答案:B**
8. Android 中,使用 Intent 传递数据的主要类型有()。
A. Serializable
@@ -90,7 +97,8 @@ create time: 2026-06-10 10:41
C. 以上两者都可以
D. 都不可以
**答案:<span style="color:#2196F3">C</span>**
> [!success]- 答案与解析
> **答案:C**
9. 通过 ContentProvider 进行数据共享时,必须在 AndroidManifest.xml 文件中对()进行配置。
A. activity
@@ -98,7 +106,8 @@ create time: 2026-06-10 10:41
C. service
D. receiver
**答案:<span style="color:#2196F3">D</span>**
> [!success]- 答案与解析
> **答案:D**
10. 使用 startActivityForResult() 方法启动 Activity 后,该 Activity 被销毁后系统回调的方法是()。
A. onActivity()
@@ -106,7 +115,8 @@ create time: 2026-06-10 10:41
C. onActivityResult()
D. onStop()
**答案:<span style="color:#2196F3">D</span>**
> [!success]- 答案与解析
> **答案:D**
11. 以下哪些方式可以实现两个应用程序之间的数据共享?
A. 使用 SharedPreferences
@@ -114,7 +124,8 @@ create time: 2026-06-10 10:41
C. 使用文件存储
D. 以上都是
**答案:<span style="color:#2196F3">D</span>**
> [!success]- 答案与解析
> **答案:D**
12. SQLite 数据库存储的数据类型不包括()。
A. NULL
@@ -122,7 +133,8 @@ create time: 2026-06-10 10:41
C. VARCHAR
D. BLOB
**答案:<span style="color:#2196F3">A</span>**
> [!success]- 答案与解析
> **答案:A**
> [!note] 教学提示
> SQLite 支持五种存储类型:NULL、INTEGER、REAL、TEXT、BLOB。VARCHAR 不是 SQLite 原生支持的存储类型名称。
@@ -133,7 +145,8 @@ create time: 2026-06-10 10:41
C. RelativeLayout
D. TableLayout
**答案:<span style="color:#2196F3">B</span>**
> [!success]- 答案与解析
> **答案:B**
14. 下列选项中,用于获取数据库记录的语句是()。
A. rawQuery
@@ -141,7 +154,8 @@ create time: 2026-06-10 10:41
C. query
D. delete
**答案:<span style="color:#2196F3">B</span>**
> [!success]- 答案与解析
> **答案:B**
15. Android 中实现单例模式的正确方式是()。
A. 将构造方法设为 private
@@ -149,7 +163,8 @@ create time: 2026-06-10 10:41
C. 只能使用静态工厂方法
D. 以上都可以
**答案:<span style="color:#2196F3">D</span>**
> [!success]- 答案与解析
> **答案:D**
16. 以下关于 Activity 生命周期的描述,正确的是()。
A. Activity 处于前台时完全可见
@@ -157,14 +172,16 @@ create time: 2026-06-10 10:41
C. Activity 被系统回收前调用 onDestroy
D. Activity 不可见,用户不可交互
**答案:<span style="color:#2196F3">B</span>**
> [!success]- 答案与解析
> **答案:B**
17. 判断下面代码的输出结果是()。
> [!note] 教学提示
> 本题考查 Android Activity 启动流程的理解,需结合 Intent 和生命周期回调顺序进行分析。
**答案:<span style="color:#2196F3">B</span>**
> [!success]- 答案与解析
> **答案:B**
18. Intent 是 Android 系统提供的消息传递机制。下列哪个方法能启动其他应用的 Activity?
A. Intent.ACTION_DIAL
@@ -172,7 +189,8 @@ create time: 2026-06-10 10:41
C. Intent.ACTION_SENDTO
D. Intent.ACTION_VIEW
**答案:<span style="color:#2196F3">B</span>**
> [!success]- 答案与解析
> **答案:B**
19. putExtra() 方法用于向 Intent 中添加附加信息。下列哪个方法能够读取 Intent 中附加的字符串类型数据?
A. getExtra()
@@ -180,7 +198,8 @@ create time: 2026-06-10 10:41
C. getData()
D. getString()
**答案:<span style="color:#2196F3">C</span>**
> [!success]- 答案与解析
> **答案:C**
20. Bundle 类的()方法可以返回所有 key 的集合。
A. getKeys()
@@ -188,7 +207,8 @@ create time: 2026-06-10 10:41
C. getStringExtra()
D. toString()
**答案:<span style="color:#2196F3">A</span>**
> [!success]- 答案与解析
> **答案:A**
### 二、填空题(每题 2 分,共 20 分)
@@ -207,10 +227,9 @@ intent.putExtras(bundle);
②;
```
**答案:**
- ① <span style="color:#2196F3">Activity_B.class</span>
- ② <span style="color:#2196F3">startActivityForResult(intent)</span>
> [!success]- 答案与解析
> - ① Activity_B.class
> - ② startActivityForResult(intent)
**2. 广播接收者配置**
@@ -226,10 +245,9 @@ intent.putExtras(bundle);
</receiver>
```
**答案:**
- ③ <span style="color:#2196F3">&lt;action&gt;</span>
- ④ <span style="color:#2196F3">android:name="kp.adver.receiver"</span>
> [!success]- 答案与解析
> - ③ `<action>`
> - ④ android:name="kp.adver.receiver"
**3. 发送有序广播**
@@ -242,10 +260,9 @@ intent.putExtra("msg", "来自 kp的消息");
⑥
```
**答案:**
- ⑤ <span style="color:#2196F3">intent.setAction("kp.adver.receiver")</span>
- ⑥ <span style="color:#2196F3">sendOrderedBroadcast(intent, null)</span>
> [!success]- 答案与解析
> - ⑤ intent.setAction("kp.adver.receiver")
> - ⑥ sendOrderedBroadcast(intent, null)
**4. 联系人数据访问**
@@ -270,27 +287,43 @@ db.⑦("person", null, new Person[]{person.name, person.age});
db.close();
```
**答案:**
- ⑦ <span style="color:#2196F3">insert</span>(插入操作)
> [!success]- 答案与解析
> - ⑦ insert(插入操作)
### 三、判断题(每题 2 分,共 20 分)
> [!note] 教学提示
> 判断题覆盖 Android 应用组件、Activity 生命周期、数据存储等核心概念,正确写 T,错误写 F。
| 题号 | 答案 |
|:----:|:----:|
| 01 | <span style="color:#2196F3">F</span> |
| 02 | <span style="color:#2196F3">F</span> |
| 03 | <span style="color:#2196F3">T</span> |
| 04 | <span style="color:#2196F3">T</span> |
| 05 | <span style="color:#2196F3">F</span> |
| 06 | <span style="color:#2196F3">F</span> |
| 07 | <span style="color:#2196F3">T</span> |
| 08 | <span style="color:#2196F3">F</span> |
| 09 | <span style="color:#2196F3">T</span> |
| 10 | <span style="color:#2196F3">T</span> |
1. > [!success]- 答案与解析
> **答案:F**
2. > [!success]- 答案与解析
> **答案:F**
3. > [!success]- 答案与解析
> **答案:T**
4. > [!success]- 答案与解析
> **答案:T**
5. > [!success]- 答案与解析
> **答案:F**
6. > [!success]- 答案与解析
> **答案:F**
7. > [!success]- 答案与解析
> **答案:T**
8. > [!success]- 答案与解析
> **答案:F**
9. > [!success]- 答案与解析
> **答案:T**
10. > [!success]- 答案与解析
> **答案:T**
### 四、程序设计题(30 分)
@@ -299,37 +332,38 @@ db.close();
**使用 SimpleAdapter 为 ListView 创建适配器,绑定数据源。**
**主要步骤:**
1. 创建 `List<Map<String, Object>>` 数据结构
2. 遍历 `names` 数组,为每个 item 添加 `header`、`personName`、`desc`
3. 创建 SimpleAdapter 并设置给 ListView
```java
// 创建数据源
List<Map<String, Object>> list = new ArrayList<>();
String[] names = {"张三", "李四", "王五"};
for (String name : names) {
Map<String, Object> map = new HashMap<>();
map.put("header", R.drawable.ic_launcher); // 头像
map.put("personName", name); // 姓名
map.put("desc", "这是一段描述文本"); // 描述
list.add(map);
}
// 创建 SimpleAdapter
SimpleAdapter adapter = new SimpleAdapter(
this,
list,
R.layout.list_item, // 布局文件
new String[]{"header", "personName", "desc"},// 数据 key
new int[]{R.id.iv_header, R.id.tv_name, R.id.tv_desc} // 对应 View ID
);
// 设置适配器
listView.setAdapter(adapter);
```
> [!success]- 答案与解析
> **主要步骤:**
>
> 1. 创建 `List<Map<String, Object>>` 数据结构
> 2. 遍历 `names` 数组,为每个 item 添加 `header`、`personName`、`desc`
> 3. 创建 SimpleAdapter 并设置给 ListView
>
> ```java
> // 创建数据源
> List<Map<String, Object>> list = new ArrayList<>();
> String[] names = {"张三", "李四", "王五"};
>
> for (String name : names) {
> Map<String, Object> map = new HashMap<>();
> map.put("header", R.drawable.ic_launcher); // 头像
> map.put("personName", name); // 姓名
> map.put("desc", "这是一段描述文本"); // 描述
> list.add(map);
> }
>
> // 创建 SimpleAdapter
> SimpleAdapter adapter = new SimpleAdapter(
> this,
> list,
> R.layout.list_item, // 布局文件
> new String[]{"header", "personName", "desc"},// 数据 key
> new int[]{R.id.iv_header, R.id.tv_name, R.id.tv_desc} // 对应 View ID
> );
>
> // 设置适配器
> listView.setAdapter(adapter);
> ```
> [!tip] 解题技巧
> SimpleAdapter 的构造函数参数较多,需重点掌握:数据源、布局文件、数据 key 数组、对应 View ID 数组的对应关系。
@@ -338,50 +372,54 @@ listView.setAdapter(adapter);
**1. 简述 MV 指令与 LDR 指令的异同**
MV 指令将半字数据从一个寄存器传送到另一个寄存器;LDR 指令用于从内存中读取数据到寄存器。
| 指令 | 操作数类型 | 功能 |
|:----:|:--------:|:----:|
| MV | 寄存器 → 寄存器 | 数据传送 |
| LDR | 内存 → 寄存器 | 数据加载 |
> [!success]- 答案与解析
> MV 指令将半字数据从一个寄存器传送到另一个寄存器;LDR 指令用于从内存中读取数据到寄存器。
>
> | 指令 | 操作数类型 | 功能 |
> |:----:|:--------:|:----:|
> | MV | 寄存器 → 寄存器 | 数据传送 |
> | LDR | 内存 → 寄存器 | 数据加载 |
**2. 简述 CPSR 各状态位定义及功能**
CPSR(当前程序状态寄存器)是一个 32 位寄存器,位域定义如下:
| 位域 | 范围 | 功能 |
|:----:|:----:|:----:|
| N | [31] | 负数标志,运算结果为负时置 1 |
| Z | [30] | 零标志,运算结果为零时置 1 |
| C | [29] | 进位标志,加法产生进位/减法无借位时置 1 |
| V | [28] | 溢出标志,运算溢出时置 1 |
| I | [7] | IRQ 中断禁止位,置 1 时禁止 IRQ |
| F | [6] | FIQ 中断禁止位,置 1 时禁止 FIQ |
| T | [5] | Thumb 状态位,为 1 时处理器处于 Thumb 状态 |
| M[4:0] | [4:0] | 处理器模式位,指示当前工作模式 |
> [!success]- 答案与解析
> CPSR(当前程序状态寄存器)是一个 32 位寄存器,位域定义如下:
>
> | 位域 | 范围 | 功能 |
> |:----:|:----:|:----:|
> | N | [31] | 负数标志,运算结果为负时置 1 |
> | Z | [30] | 零标志,运算结果为零时置 1 |
> | C | [29] | 进位标志,加法产生进位/减法无借位时置 1 |
> | V | [28] | 溢出标志,运算溢出时置 1 |
> | I | [7] | IRQ 中断禁止位,置 1 时禁止 IRQ |
> | F | [6] | FIQ 中断禁止位,置 1 时禁止 FIQ |
> | T | [5] | Thumb 状态位,为 1 时处理器处于 Thumb 状态 |
> | M[4:0] | [4:0] | 处理器模式位,指示当前工作模式 |
**3. 简述嵌入式系统定义及特点**
嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
特点:
- 专用性强,针对特定任务定制
- 资源受限,CPU、内存、存储有限
- 实时性要求高,需在规定时间内响应
- 软硬件协同设计,需考虑功耗和成本
> [!success]- 答案与解析
> 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
>
> 特点:
> - 专用性强,针对特定任务定制
> - 资源受限,CPU、内存、存储有限
> - 实时性要求高,需在规定时间内响应
> - 软硬件协同设计,需考虑功耗和成本
**4. 简述 μC/OS-II 中任务调度的相关函数及作用**
| 函数 | 功能 |
|:----:|:----:|
| OSTaskCreate() | 创建新任务 |
| OSTaskDel() | 删除指定任务 |
| OSTaskSuspend() | 挂起任务 |
| OSTaskResume() | 恢复被挂起的任务 |
| OSTimeDly() | 延时指定时钟节拍数 |
| OSTimeDlyHMSM() | 按时分秒延时 |
| OSTaskChangePrio() | 改变任务优先级 |
| OSTaskSwInit() | 初始化任务切换 |
> [!success]- 答案与解析
> | 函数 | 功能 |
> |:----:|:----:|
> | OSTaskCreate() | 创建新任务 |
> | OSTaskDel() | 删除指定任务 |
> | OSTaskSuspend() | 挂起任务 |
> | OSTaskResume() | 恢复被挂起的任务 |
> | OSTimeDly() | 延时指定时钟节拍数 |
> | OSTimeDlyHMSM() | 按时分秒延时 |
> | OSTaskChangePrio() | 改变任务优先级 |
> | OSTaskSwInit() | 初始化任务切换 |
> [!note] 教学提示
> μC/OS-II 是一个抢占式实时操作系统,任务调度基于优先级。掌握这些 API 函数对于理解 RTOS 的任务管理机制至关重要。
@@ -397,27 +435,27 @@ else
y = 1;
```
**答案:**
```assembly
CMP R0, #100 ; 比较 R0 和 100
MOVGE R1, #1 ; 若 R0 >= 100,R1 = 1 (x = 1)
MOVLT R2, #1 ; 若 R0 < 100,R2 = 1 (y = 1)
```
> [!success]- 答案与解析
> ```assembly
> CMP R0, #100 ; 比较 R0 和 100
> MOVGE R1, #1 ; 若 R0 >= 100,R1 = 1 (x = 1)
> MOVLT R2, #1 ; 若 R0 < 100,R2 = 1 (y = 1)
> ```
> [!note] 教学提示
> ARM 条件执行是其指令集的重要特性。`GE` 表示大于或等于(Greater or Equal),`LT` 表示小于(Less Than)。通过条件码可以避免使用跳转指令,提高流水线效率。
**2. 从 ARM 处理器结构特点分析其对智能移动终端的支持**
ARM 处理器的设计极大地推动了智能移动终端的发展,主要体现在:
- **RISC 架构**:采用精简指令集,指令执行效率高,且功耗极低,非常适合依靠电池供电的移动设备
- **Thumb 指令集**:提供 16 位指令格式,大幅提高代码密度,减少对存储空间的需求
- **多级流水线技术**:如 ARM9 的 5 级流水线,提高指令执行效率和吞吐量
- **低功耗管理模式**:支持 Idle、Power-down 等多种低功耗模式,延长电池续航
- **丰富的片上外设集成**:ARM 核心配合 SoC 设计,集成 Wi-Fi、蓝牙、图形加速等控制器,缩小设备体积
- **开放的生态与标准**:IP 授权模式允许厂商定制芯片,促进移动终端多样化发展
> [!success]- 答案与解析
> ARM 处理器的设计极大地推动了智能移动终端的发展,主要体现在:
>
> - **RISC 架构**:采用精简指令集,指令执行效率高,且功耗极低,非常适合依靠电池供电的移动设备
> - **Thumb 指令集**:提供 16 位指令格式,大幅提高代码密度,减少对存储空间的需求
> - **多级流水线技术**:如 ARM9 的 5 级流水线,提高指令执行效率和吞吐量
> - **低功耗管理模式**:支持 Idle、Power-down 等多种低功耗模式,延长电池续航
> - **丰富的片上外设集成**:ARM 核心配合 SoC 设计,集成 Wi-Fi、蓝牙、图形加速等控制器,缩小设备体积
> - **开放的生态与标准**:IP 授权模式允许厂商定制芯片,促进移动终端多样化发展
## 关联笔记