如需了解 Android 开源项目 (AOSP) 的基本术语,请参阅以下列表。以下是关键术语定义的其他来源:
- Android 兼容性定义文档 (CDD) build 参数部分
- 音频术语
- USB 音频术语
- 汽车术语
- 汽车拨号器术语
- 汽车仪表板术语
- 应用开发者词汇
- 相机版本术语
- 设备树叠加层 (DTO) 术语
- 框架兼容性矩阵 (FCM) 生命周期术语
- 运行状况术语
- HIDL 术语
- 由硬件支持的密钥库术语
- 多屏幕术语
请参阅以尊重的态度编码,查找相关示例,了解您可以使用以及应该避免使用哪些术语,从而打造更具包容性的生态系统。
应用
- .apk 文件
- Android 应用软件包文件。每个 Android 应用都会经过编译并打包在一个文件中,其中包含该应用的所有代码(.dex 文件)、资源、资产和清单文件。应用软件包文件可以是任何名称,但必须使用
.apk
扩展名。例如:myExampleAppname.apk
。为方便起见,通常将应用软件包文件称为“.apk”。相关术语:应用
- 操作
- 对 intent 发送端希望完成的事项的说明。操作是指定给 intent 的字符串值。操作字符串可由 Android 或第三方开发者定义。例如,android.intent.action.VIEW 用于打开网址,com.example.rumbler.SHAKE_PHONE 用于让自定义应用触发手机振动。
相关术语:intent。
- activity
- 应用中的单个屏幕,包含提供支持的 Java 代码,派生自
Activity
类。activity 往往用醒目的全屏窗口表示,该窗口可接收和处理界面事件并执行复杂任务,这取决于用来呈现其窗口的“窗口”对象。虽然 activity 通常为全屏窗口,但也可以是浮动或透明窗口。 - 应用
- 从组件的角度来说,Android 应用由一个或多个 activity、服务、监听器和 intent 接收端组成。从源文件的角度来说,Android 应用由代码、资源、资产和一个清单组成。在编译过程中,这些文件会被打包到一个称为应用软件包文件 (.apk) 的文件中。
- 广播接收器
- 一个应用类,专门监听广播的 intent,而不监听发送到单个目标应用/activity 的 intent。系统会将广播 intent 发送给所有感兴趣的广播接收器,再由这些接收器依序处理该 intent。
相关术语:intent、intent 过滤器
- 内容提供器
- 一个数据抽象层,您可以用它来安全地向其他应用公开您的应用的数据。content provider 基于
ContentProvider
类构建,该类会处理特定格式的内容查询字符串,以返回特定格式的数据。如需了解详情,请参阅内容提供器主题。相关术语:URI 在 Android 中的使用
- 对话框
- 一种浮动窗口,可以起到轻型表单的作用。对话框只能包含按钮控件,旨在执行简单的操作(例如按钮选择)并且可能会返回值。对话框不应保留在历史记录堆栈中,不应包含复杂的布局,也不应执行复杂的操作。Android 为您提供了一个包含可选按钮的简单默认对话框,但您也可以定义自己的对话框布局。对话框的基类为
Dialog
。相关术语:activity
- intent
- 一种消息对象,可用于异步启动其他应用/activity 或与它们进行通信。intent 对象是
Intent
的实例。它包含几个您可提供值的条件字段,用于确定接收 intent 的应用/activity 以及接收端在处理 intent 时执行的操作。可用的条件包括所需的操作、类别、数据字符串,数据的 MIME 类型、负责处理操作的类等。应用会将 intent 发送给 Android 系统,而不是直接发送给其他应用/activity。应用可以将 intent 发送给单个目标应用,也可以将其作为广播发送,再由多个应用依序处理。Android 系统负责根据 intent 中提供的条件和其他应用定义的 intent 过滤器,为每个 intent 解析最佳的接收端。如需了解详情,请参阅 intent 和 intent 过滤器。相关术语:intent 过滤器、广播接收器
- intent 过滤器
- 应用在清单文件中声明的过滤器对象,用于告知系统它的每个组件愿意接受的 intent 类型以及相应的条件。通过 intent 过滤器,应用可以表达对特定数据类型、intent 操作、URI 格式等的兴趣。解析 intent 时,系统会评估所有应用中提供的所有 intent 过滤器,再将此 intent 传递给与该 intent 和条件最相符的应用/activity。如需了解详情,请参阅 intent 和 intent 过滤器。
- 资源
- 非编程的应用组件,位于经过编译的应用代码之外,但可以使用大家熟知的参考格式从应用代码加载。Android 支持多种资源类型,但典型应用的资源包括界面字符串、界面布局组件、图片或其他媒体文件等。应用利用资源来高效地支持本地化以及各种设备配置文件和状态。例如,应用会为所支持的每个本地化版本或设备类型包含一组独立的资源,也可以包含特定于当前屏幕方向(横屏或竖屏)的布局资源。如需详细了解资源,请参阅资源和资产。应用的资源始终存储在项目的
res/*
子文件夹中。 - 服务
Service
类的对象,在后台运行(没有任何界面存在)来执行各种持久操作,例如播放音乐或监控网络活动。相关术语:activity
- Android 中的 URI
- Android 使用 URI(统一资源标识符)字符串作为基础来请求 content provider 中的数据(例如检索通讯录)以及 intent 中的操作(例如在浏览器中打开网页)。URI 架构和格式专用于特定的使用类型,应用可以按照所需的任意方式处理特定 URI 架构和字符串。某些 URI 架构被系统组件保留。例如,从内容提供器请求数据必须使用
content://
。在 intent 中,使用http://
架构的 URI 将由浏览器处理。
build
- adb
- Android 调试桥,SDK 中包含的一个命令行调试应用。它提供了浏览设备、在设备上复制工具和转发调试端口的工具。如果您在 Android Studio 中进行开发,那么 adb 会集成到您的开发环境中。如需了解详情,请参阅 Android 调试桥。
- Android 项目
- Android Gerrit 主机上的 Git 代码库。如需了解详情,请参阅源代码控制工具 > Gerrit。
- build 指纹
- build 指纹是能让人看懂的唯一字符串,其中包含向每个 build 发出的制造商信息。如需了解详情,请参阅了解 build 指纹。
- Git
- Android 使用的源代码控制工具(过去在单个 Git 代码库中操作)。此工具可与 Repo 结合使用,用于处理多个 Git 代码库。如需了解详情,请参阅源代码控制工具 > Git。
- Git 分支 - 规范
- 每个 Git 代码库的不同版本,例如
android-11.0.0_r1
(位于 cs.android.com/android/platform/superproject/+/android-11.0.0_r1)。 如需了解详情,请参阅 Git 分支 - Nutshell 中的分支。 - Git 分支 - 本地
- 当前 Repo 客户端中用于更改代码的临时分支,此分支以
repo start branch-name .
命令开头,是一条有效的开发线路。分支上的最近一次提交称为相应分支的顶端。 - Git 代码库
- 有时称为项目,是代码库 (codebase) 的一部分,表示特定的组件或设备类型,例如
frameworks/base
或platform/packages/apps/Car/Media
。 - 清单文件
- 一个 XML 文件,用于说明每个分支的 Git 代码库分组情况、用于检出这些代码库的 Git 修订版本以及代码库在文件系统中的布局。此 XML 文件通常名为
default.xml
,与某个 Repo 分支相关联,描述了您初始化并同步该 Repo 分支时检出的 Git 代码库和 Git 分支。此文件定义了各种 Git 代码库,Repo 工具会将此类代码库提取到 Repo 客户端检出内容中,以便构建产品(例如 Android Automotive OS)。如需查看所有清单,请访问 android.googlesource.com/platform/manifest/+refs。如需查看 AndroidManifest 文件中包含的用于提取 Android 平台 (AOSP) 文件的默认清单,请访问 android.googlesource.com/platform/manifest/+/refs/heads/master/default.xml。请参阅 AndroidManifest.xml 文件了解应用信息,参阅 Repo 清单格式了解平台开发信息。 - 无线下载 (OTA) 更新
- 正常使用的 Android 设备可以接收和安装系统、应用软件和时区规则的无线下载 (OTA) 更新。如需了解详情,请参阅 OTA 更新。
- Repo
- 一种 Git 封装容器,可让系统更轻松地对多个 Git 代码库执行操作。它会将多个 Git 代码库作为单个检出或代码库进行汇总和管理。如需了解详情,请参阅源代码控制工具 > Repo。
- Repo 分支
- 在 AndroidManifest 文件中列出的一系列 Git 代码库,代表 Android 代码库的某个版本 (build),例如通过
repo init
命令和repo sync
命令下载的android11-gsi
或aosp-android-games-sdk
。如需获取所有清单文件的链接,请参阅清单文件说明;如需搜索其 build,请访问 https://cs.android.com/。 - 升级
- 一般而言,升级会将较大项目的组成子项目更新为较新版本。升级会将修订版本级别更改为下一个递增版本或最新的可用版本。对于 HIDL 软件包,为了保持软件包级的向后兼容可扩展性,次要版本升级会将新软件包更新为更高的次要版本,同时保持名称和主要版本与旧软件包相同。 如果是引导加载程序配置,则升级会将启动头文件版本支持更新到最新版本。
图形
- 画布
- 用于对照 Bitmap 或 Surface 对象来处理实际位合成的一种绘图表面。它包含关于位图、线条、圆形、矩形、文字等的标准计算机绘制方法,并与 Bitmap 或 Surface 相关联。画布是在屏幕上绘制 2D 对象的最简便方法。基类为
Canvas
。 - 可绘制对象
- 一种经过编译的视觉资源,可用作背景、标题或屏幕的其他部分。可绘制对象通常会被加载到另一个界面元素中,例如作为背景图片。可绘制对象不能接收事件,但可以指定各种其他属性(如“状态”和调度),以启用动画对象或图像库等子类。许多可绘制对象都是加载自可绘制资源文件(即描述图像的 xml 或位图文件)。可绘制资源会被编译成
android.graphics.drawable
的子类。如需详细了解可绘制对象和其他资源,请参阅资源。 - 布局资源
- 描述 activity 屏幕布局的 XML 文件。
相关术语:资源
- 九宫格图片
- 可调整大小的位图资源,可用作设备上的背景或其他图片。如需了解详情,请参阅九宫格可拉伸图片。
相关术语:资源
- OpenGL ES
- Android 提供 OpenGL ES 库,该库可用于实现硬件加速的 3D 渲染。对于 2D 渲染,画布是更简单的选项。为方便使用,Android 原生开发套件 (NDK) 中提供了 OpenGL ES。
android.opengl
和javax.microedition.khronos.opengles
软件包提供 OpenGL ES 功能。 - Surface
- 类型为
Surface
的对象,表示要合成到屏幕上的内存块。Surface 包含用于绘图的 Canvas 对象,并提供各种辅助方法来绘制图层和调整界面大小。您不应直接使用该类,而应使用SurfaceView
。相关术语:画布
- SurfaceView
- 一个 View 对象,该对象封装 Surface 用于绘制,并提供相应的方法来动态指定其大小和格式。SurfaceView 针对资源密集型操作(例如游戏或相机预览)提供了一种独立于界面线程进行绘制的方式,但也会因此占用额外的内存。SurfaceView 同时支持 Canvas 和 OpenGL ES 图形。基类为
SurfaceView
。相关术语:Surface
- 主题
- 一组绑定在一起、用于定义各种默认显示设置的属性,比如文字大小、背景颜色等。Android 提供了一些标准的主题,列于
R.style
中(以“Theme_”开头)。 - 视图
- 在屏幕上绘制为矩形区域并用于处理点击、按键和其他互动事件的对象。视图是 activity 或对话框屏幕(文本框、窗口等)的大多数布局组件的基类。它接收来自父对象(请参阅 ViewGroup)的调用来绘制自身,并通知父对象它自身的显示位置和大小(父级不一定会遵从)。如需了解详情,请参阅
View
。 - 视图层次结构
- View(视图)和 ViewGroup(视图组)对象的排列方式,定义了应用中每个组件的界面。层次结构由视图组构成,而视图组中又可包含一个或多个子视图或视图组。在进行调试和优化时,您可以通过 Android SDK 提供的 Hierarchy Viewer 获得视图层次结构的可视化表示。
- ViewGroup
- 对一组子视图进行分组的容器对象。视图组负责确定子视图的位置和大小,以及在适当的时候调用每个子视图来绘制自身。某些视图组是不可见的,仅用于布局,而有些视图组则具有固有的界面(例如,滚动列表框)。视图组均位于
widget
包中,但扩展了ViewGroup
。 - 微件
- 一组完全实现的 View 子类,这些子类用于呈现表单元素和其他界面组件,例如文本框或弹出式菜单。由于微件是完全实现的,因此它会自行处理测量和绘制,并且会响应屏幕事件。微件均在
android.widget
软件包中。 - 窗口
- 在 Android 应用中,窗口是指派生自抽象类
Window
的对象,该类指定常规窗口的元素,例如外观和风格(标题栏文本、菜单的位置和内容等等)。对话框和 activity 使用该类的实现来呈现窗口。您无需在应用中实现此类或使用窗口。
平台
- Android Runtime (ART) 和 Dalvik
- Android Runtime (ART) 是 Android 上的应用和部分系统服务使用的托管式运行时。Android Runtime (ART) 是搭载 Android 5.0(API 级别 21)及更高版本的设备的默认运行时。ART 及其前身 Dalvik 最初是专为 Android 开源项目打造的。作为运行时的 ART 会执行 Dalvik 可执行文件并遵循 Dex 字节码规范。ART 和 Dalvik 兼容运行 Dex 字节码的运行时,因此,在使用 ART 运行时,面向 Dalvik 开发的应用应能正常运行。
- 代码流水线
- 代码流水线包含软件产品的版本。它由来自一个或多个代码库的一个或多个分支组成,所有分支通常都同时处于积极开发中。代码流水线是版本的聚合点和目标。如需详细了解代码流水线,请参阅 Android 软件管理。
- .dex 文件
- 已编译的 Android 应用代码文件。
Android 程序会被编译成 .dex 文件(Dalvik 可执行文件),进而再被压缩成设备上的单个 .apk 文件。用 Java 编程语言编写且已经过编译的应用可以自动转换成 .dex 文件。
测试
- 工件
- 工件是与 build 相关的日志,用于启用本地问题排查。在查看变更列表时,您可以直接从 Gerrit 访问这些日志。向下滚动到 Presubmit Status 并点击红色的 build 链接,即可查看或下载关联的
build_error.log
文件。 您也可以通过中央 Android 持续集成服务器来获取这些工件,方法是访问 ci.android.com/,然后点击目标和 build 对应的“下载”(向下箭头)图标。如需详细了解如何查找工件,请参阅 Android 持续集成。 - CDD
- Android 兼容性定义文档 (CDD) 列举了设备必须满足哪些要求才能与最新版 Android 兼容。设备实现必须满足本兼容性定义文档(包括以参考资料的形式纳入的任何文档)中列出的要求,才会被视为与 Android 兼容。如需详细了解 CDD,请参阅 Android 兼容性定义文档。
- CTS
- 兼容性测试套件 (CTS) 是一个测试套件,用于确保 API 的正确性并遵循 CDD 中列出的规范。它在 AOSP 中作为源代码提供,并可供下载为二进制文件。如需了解详情,请参阅兼容性测试套件。
- CTS 验证程序
- 兼容性测试套件验证程序(CTS 验证程序)是对 CTS 的补充。CTS 验证程序可测试需要手动输入才能在固定设备上测试的 API 和功能(例如音频质量、加速度计等)。如需了解详情,请参阅使用 CTS 验证程序。
- 调试
- 调试需要在 Android 平台代码(功能或相应测试中)中找到错误并进行修复。如需了解详情,请参阅调试原生 Android 平台代码
- GoogleTest (GTest)
- GTest 是 Google 的 C++ 测试和模拟框架。GTest 二进制文件通常会访问较低级别的抽象层,或针对各种系统服务执行原始 IPC。因此,Gtest 的测试方法通常与接受测试的服务密切相关。如需获取相关代码,请访问 github.com/google/googletest;如需获取相关文档,请访问 google.github.io/googletest。
- 插桩测试
- 插桩测试提供了一种通过
am instrument
命令启动的特殊测试执行环境,其中目标应用进程会重启并使用基本的应用上下文进行初始化,并在应用进程虚拟机内启动插桩线程。如需了解详情,请参阅插桩测试。 - Logcat
- Logcat 是一个命令行工具,用于转储系统消息日志,包括设备抛出错误时的堆栈轨迹,以及从您的应用使用
Log
类写入的消息。如需了解详情,请参阅 Logcat 命令行工具。 - 日志记录
- 由于在
logcat
中合并使用了多个标准,Android 中的日志记录较为复杂。如需详细了解所使用的主要标准,请参阅了解日志记录。 - 合并冲突
- 如果 Android 构建服务器无法再自动合并同一文件的两个或更多版本,就会发生合并冲突。发生合并冲突时,通常需要手动修改文件以解决所有的更新冲突问题。
- 提交前和提交后测试
- 提交前测试用于防止在通用内核中引入故障。目前尚未公开结果。
Android 提交后测试在新的补丁提交到通用内核分支后执行。通过输入aosp_kernel
作为部分分支名称,您会看到具有结果的内核分支列表。例如,可以在此处找到“android-mainline”的结果。 - Tradefed
- Trade Federation(简称 Tradefed 或 TF)自动化测试框架是一种连续的测试框架,专门用于在 Android 设备上运行测试。例如,Tradefed 可用于运行 CTS 和 VTS。如需了解详情,请参阅 Trade Federation 概览。
- VTS
- Android 供应商测试套件 (VTS) 提供了大量用于进行 Android 测试的功能,能够促进由测试驱动的开发流程,并自动执行 HAL 和 OS 内核测试。如需了解详情,请参阅供应商测试套件 (VTS) 和基础架构。