Android 平台词汇表

请参阅下面的列表以了解 Android 开源项目 (AOSP) 的基本术语。以下是关键术语定义的其他来源:

有关为更具包容性的生态系统使用和避免使用的术语示例,请参阅编码

应用

.apk 文件
Android 应用程序包文件。每个 Android 应用程序都被编译并打包在一个文件中,该文件包括应用程序的所有代码(.dex 文件)、资源、资产和清单文件。应用程序包文件可以有任何名称,但必须使用.apk扩展名。例如: myExampleAppname.apk 。为方便起见,应用程序包文件通常称为“.apk”。

相关:应用程序

行动
Intent发送者想要完成的事情的描述。动作是分配给 Intent 的字符串值。操作字符串可以由 Android 或第三方开发人员定义。例如,web URL 的 android.intent.action.VIEW 或用于使手机振动的自定义应用程序的 com.example.rumbler.SHAKE_PHONE。

相关:意图

活动
应用程序中的单个屏幕,具有从Activity类派生的支持 Java 代码。最常见的是,一个活动由一个全屏窗口可见地表示,该窗口可以接收和处理 UI 事件并执行复杂的任务,因为它使用 Window 来呈现其窗口。虽然 Activity 通常是全屏的,但它也可以是浮动的或透明的。
应用
从组件的角度来看,Android 应用程序由一个或多个活动、服务、侦听器和意图接收器组成。从源文件的角度来看,Android 应用程序由代码、资源、资产和单个清单组成。在编译期间,这些文件被打包在一个称为应用程序包文件 (.apk) 的文件中。

相关: .apk活动

广播接收器
一个应用程序类,用于侦听广播的意图,而不是发送到单个目标应用程序/活动。系统将广播 Intent 传递给所有感兴趣的广播接收器,这些接收器按顺序处理 Intent。

相关:意图意图过滤器

内容提供商
一个数据抽象层,可用于将应用程序的数据安全地公开给其他应用程序。内容提供者建立在ContentProvider类之上,它处理特定格式的内容查询字符串以返回特定格式的数据。有关详细信息,请参阅内容提供者主题。

相关: Android 中的 URI 使用

对话
充当轻量级窗体的浮动窗口。对话框只能有按钮控件,旨在执行一个简单的操作(例如按钮选择)并可能返回一个值。对话框无意保留在历史堆栈中、包含复杂的布局或执行复杂的操作。 Android 为您提供了一个带有可选按钮的默认简单对话框,但您可以定义自己的对话框布局。对话框的基类是Dialog

相关:活动

意图
可用于异步启动或与其他应用程序/活动通信的消息对象。 Intent 对象是Intent的一个实例。它包括几个您可以提供的条件字段,以确定哪些应用程序/活动接收 Intent 以及接收方在处理 Intent 时执行的操作。可用标准包括所需的操作、类别、数据字符串、数据的 MIME 类型、处理类等。应用程序向 Android 系统发送 Intent,而不是直接将其发送到另一个应用程序/活动。应用程序可以将 Intent 发送到单个目标应用程序,也可以将其作为广播发送,而广播又可以依次由多个应用程序处理。 Android 系统负责根据 Intent 中提供的标准和其他应用程序定义的 Intent Filters 为每个 Intent 解析最佳可用接收器。有关详细信息,请参阅意向和意向过滤器

相关:意图过滤器广播接收器

意图过滤器
应用程序在其清单文件中声明的过滤器对象,用于告诉系统其每个组件愿意接受什么类型的 Intent 以及符合什么条件。通过 Intent 过滤器,应用程序可以表达对特定数据类型、Intent 操作、URI 格式等的兴趣。解析 Intent 时,系统会评估所有应用程序中所有可用的 Intent 过滤器,并将 Intent 传递给最符合 Intent 和标准的应用程序/活动。有关详细信息,请参阅意向和意向过滤器

相关:意图广播接收器

资源
非编程应用程序组件,在已编译的应用程序代码之外,但可以使用众所周知的参考格式从应用程序代码中加载。 Android 支持多种资源类型,但典型的应用程序资源包括 UI 字符串、UI 布局组件、图形或其他媒体文件等。应用程序使用资源来有效地支持本地化和各种设备配置文件和状态。例如,应用程序将为每个支持的本地或设备类型包含一组单独的资源,并且它可以包含特定于当前屏幕方向(横向或纵向)的布局资源。有关资源的更多信息,请参阅资源和资产。应用程序的资源始终存储在项目的res/*子文件夹中。
服务
在后台运行(没有任何 UI 存在)以执行各种持久操作(例如播放音乐或监视网络活动)的Service类对象。

相关:活动

Android 中的 URI
Android 使用 URI(统一资源标识符)字符串作为在内容提供程序中请求数据(例如检索联系人列表)和在 Intent 中请求操作(例如在浏览器中打开网页)的基础。 URI 方案和格式根据使用类型进行专门化,应用程序可以以任何它想要的方式处理特定的 URI 方案和字符串。某些 URI 方案由系统组件保留。例如,来自内容提供者的数据请求必须使用content:// 。在 Intent 中,使用http://方案的 URI 将由浏览器处理。

建造

亚行
Android Debug Bridge,SDK 中包含的命令行调试应用程序。它提供了浏览设备的工具,设备上的复制工具,以及用于调试的转发端口。如果您在 Android Studio 中进行开发,adb 已集成到您的开发环境中。有关详细信息,请参阅Android 调试桥
安卓项目
Android Gerrit 主机上的 Git 存储库。有关详细信息,请参阅源代码管理工具 > Gerrit
建立指纹
构建指纹是一个唯一的、人类可读的字符串,其中包含发布给每个构建的制造商信息。有关详细信息,请参阅了解构建指纹
混帐
Android 使用的源代码控制工具,过去在单个 Git 存储库上运行。与Repo一起用于多个 Git 存储库。有关详细信息,请参阅源代码管理工具 > Git
Git 分支 - 规范
每个 Git 存储库的不同版本,例如android-11.0.0_r1 ,位于cs.android.com/android/platform/superproject/+/android-11.0.0_r1 。有关详细信息,请参阅Git 分支 - 简而言之分支
Git 分支 - 本地
当前 Repo 客户端中用于更改代码的临时分支,以repo start branch-name .命令。一条积极的发展路线。分支上的最新提交称为该分支的尖端。
Git 仓库
有时称为项目,这是代表特定组件或设备类型的代码库的一部分,例如frameworks/baseplatform/packages/apps/Car/Media
清单文件
一个 XML 文件,描述每个分支的一组 Git 存储库、检查这些存储库的 Git 修订版,以及它们在文件系统上的布局。此 XML 文件通常名为default.xml ,与 Repo 分支相关联,并描述了 Git 存储库和在您初始化和同步 Repo 分支时签出的 Git 分支。此文件定义了 Repo 工具应提取到 Repo 客户端结帐中以构建产品(例如 Android Automotive OS)的各种 Git 存储库。在android.googlesource.com/platform/manifest/+refs查看所有清单。请参阅AndroidManifest文件中包含的默认清单,以在android.googlesource.com/platform/manifest/+/refs/heads/master/default.xml中提取 Android 平台 (AOSP) 文件。请参阅AndroidManifest.xml 文件以获取应用程序信息和repo Manifest Format以获取平台开发信息。
无线 (OTA) 更新
现场的 Android 设备可以接收和安装系统、应用软件和时区规则的无线 (OTA) 更新。有关详细信息,请参阅OTA 更新
回购
一个围绕 Git 的包装器,可以更轻松地对多个 Git 存储库进行操作。它将许多 Git 存储库聚合和管理为单一的签出或代码库。有关详细信息,请参阅源代码管理工具 > Repo
回购分支
AndroidManifest文件中捕获的 Git 存储库集合,表示 Android 代码库的版本(构建),例如android11-gsiaosp-android-games-sdk ,通过repo initrepo sync命令下载。查看清单文件描述以获取指向所有清单文件的链接,并使用 https://cs.android.com/ 搜索它们的构建。
上一页
通常,uprev 将较大项目的组成子项目更新为较新版本。 uprev 将修订级别更改为下一个递增版本或最新可用版本。对于 HIDL 包,为了保持包级向后兼容的可扩展性,次要版本更新将新包更新为更高的次要版本,同时保持与旧包相同的名称和主要版本。在Bootloader 配置的情况下,uprev 将引导标头版本支持更新到最新版本。

图形

帆布
一个绘图表面,它处理实际位与 Bitmap 或Surface对象的合成。它具有位图、线、圆、矩形、文本等的标准计算机绘图方法,并绑定到位图或表面。 Canvas 是在屏幕上绘制 2D 对象的最简单、最简单的方法。基类是Canvas

相关:可绘制对象OpenGL ES表面

可绘制
可用作背景、标题或屏幕其他部分的已编译视觉资源。可绘制对象通常加载到另一个 UI 元素中,例如作为背景图像。可绘制对象无法接收事件,但会分配各种其他属性,例如“状态”和调度,以启用动画对象或图像库等子类。许多可绘制对象是从可绘制资源文件(描述图像的 xml 或位图文件)加载的。 Drawable 资源被编译成android.graphics.drawable的子类。有关可绘制对象和其他资源的更多信息,请参阅参考资料

相关:资源画布

布局资源
描述活动屏幕布局的 XML 文件。

相关:资源

Nine-patch / 9-patch / Ninepatch 图像
可调整大小的位图资源,可用于设备上的背景或其他图像。有关详细信息,请参阅九补丁可拉伸图像

相关:资源

OpenGL ES
Android 为硬件加速 3D 渲染提供了 OpenGL ES 库。对于 2D 渲染, Canvas是更简单的选择。” Android 本机开发工具包 (NDK)中提供了 OpenGL ES,以便于使用android.opengljavax.microedition.khronos.opengles包公开了 OpenGL ES 功能。

相关:画布表面

表面
一个Surface类型的对象,表示合成到屏幕上的一块内存。 Surface 包含用于绘图的 Canvas 对象,并提供各种辅助方法来绘制图层和调整表面大小。你不应该直接使用这个类;请改用SurfaceView

相关:画布

表面视图
一个 View 对象,它包装了一个用于绘图的 Surface,并公开了动态指定其大小和格式的方法。 SurfaceView 提供了一种独立于 UI 线程绘制资源密集型操作(例如游戏或相机预览)的方法,但它会因此使用额外的内存。 SurfaceView 同时支持 Canvas 和 OpenGL ES 图形。基类是SurfaceView

相关:表面

主题
捆绑在一起以定义各种默认显示设置的一组属性(文本大小、背景颜色等)。 Android 提供了一些标准主题,列在R.style中(以“Theme_”开头)。
看法
绘制到屏幕上的矩形区域并处理单击、击键和其他交互事件的对象。视图是 Activity 或 Dialog 屏幕(文本框、窗口等)的大多数布局组件的基类。它接收来自其父对象(请参阅ViewGroup )的调用以绘制自身,并通知其父对象它想要的位置和大小(父对象可能会或可能不会尊重)。有关详细信息,请参阅View

相关: View HierarchyViewGroupWidget

查看层次结构
View 和 ViewGroup 对象的排列,用于定义应用程序每个组件的用户界面。层次结构由包含一个或多个子视图或视图组的视图组组成。您可以使用随 Android SDK 提供的Hierarchy Viewer获取视图层次结构的可视化表示,以便进行调试和优化。

相关:视图视图组

视图组
对一组子视图进行分组的容器对象。视图组负责决定子视图的位置以及它们的大小,以及在适当的时候调用每个视图来绘制自己。一些视图组是不可见的并且仅用于布局,而其他视图组具有固有的 UI(例如,滚动列表框)。视图组都在widget包中,但扩展了ViewGroup

相关:视图视图层次结构

微件
一组完全实现的视图子类之一,可呈现表单元素和其他 UI 组件,例如文本框或弹出菜单。因为小部件是完全实现的,所以它处理测量和绘制自身以及响应屏幕事件。小部件都在android.widget包中。
窗户
在 Android 应用程序中,派生自抽象类Window的对象,它指定通用窗口的元素,例如外观(标题栏文本、菜单的位置和内容等)。 Dialog 和 Activity 使用此类的实现来呈现窗口。您不需要在您的应用程序中实现此类或使用窗口。

平台

Android 运行时 (ART) 和 Dalvik
Android 运行时 (ART) 是 Android 上应用程序和某些系统服务使用的托管运行时。 Android 运行时 (ART) 是运行 Android 5.0(API 级别 21)及更高版本的设备的默认运行时。 ART 及其前身 Dalvik 最初是专门为 Android 开源项目创建的。 ART 作为运行时执行 Dalvik 可执行格式和 Dex 字节码规范。 ART 和 Dalvik 是运行 Dex 字节码的兼容运行时,因此为 Dalvik 开发的应用程序在使用 ART 运行时应该可以正常工作。
代码线
代码线包含软件产品的发布。它由一个或多个存储库的一个或多个分支组成,所有这些分支通常同时处于活跃开发状态。代码线是发布的聚合点和目标。有关代码行的更多信息,请参阅Android 软件管理
.dex 文件
编译好的Android应用程序代码文件。

Android 程序被编译为 .dex(Dalvik 可执行文件)文件,这些文件又被压缩为设备上的单个 .apk 文件。 .dex 文件可以通过自动翻译以 Java 编程语言编写的已编译应用程序来创建。

测试

神器
工件是与构建相关的日志,支持本地故障排除。查看更改列表时,可以直接从Gerrit访问这些日志。向下滚动到Presubmit Status ,然后单击红色的Build链接以查看或下载相关的build_error.log文件。您还可以通过单击目标和构建的下载(向下箭头)图标,从位于ci.android.com/的中央 Android 持续集成服务器获取这些工件。有关如何查找工件的更多信息,请参阅Android 持续集成
客户尽职调查
Android 兼容性定义文档 (CDD) 列举了您的设备要与最新版本的 Android 兼容必须满足的要求。要被视为与 Android 兼容,设备实现必须满足此兼容性定义中提出的要求,包括通过引用并入的任何文档。有关 CDD 的更多信息,请参阅Android 兼容性定义文档
华侨城
兼容性测试套件 (CTS) 是用于确保 API 正确性和 CDD 中规定的规范的测试套件。它可以作为AOSP中的源代码提供,也可以作为二进制文件下载。有关详细信息,请参阅兼容性测试套件
CTS 验证程序
Compatibility Test Suite Verifier (CTS Verifier) 是对 CTS 的补充。 CTS Verifier 为 API 和功能提供测试,这些 API 和功能在没有手动输入的情况下无法在固定设备上进行测试(例如音频质量、加速度计等)。有关详细信息,请参阅使用 CTS 验证程序
调试
调试需要查找和修复 Android 平台代码中的错误,无论是在特性中还是在它们的测试中。有关详细信息,请参阅调试本机 Android 平台代码
谷歌测试(GTest)
GTest 是 Google 的 C++ 测试和模拟框架。 GTest 二进制文件通常访问较低级别的抽象层或针对各种系统服务执行原始 IPC。因此,Gtest 的测试方法通常与被测试的服务紧密耦合。在github.com/google/googletest找到代码,在google.github.io/googletest找到文档。
仪器测试
仪器测试提供了一个特殊的测试执行环境,由am instrument命令启动,目标应用程序进程在其中重新启动并使用基本应用程序上下文进行初始化,并在应用程序进程虚拟机内启动仪器线程。有关详细信息,请参阅仪器测试
日志猫
Logcat 是一种命令行工具,可转储系统消息日志,包括设备抛出错误时的堆栈跟踪以及您使用Log类从应用程序写入的消息。有关详细信息,请参阅Logcat 命令行工具
记录
由于在logcat中组合使用了多种标准,因此在 Android 中登录很复杂。有关所用主要标准的详细信息,请参阅了解日志记录
合并冲突
当 Android 构建服务器无法再自动合并同一文件的两个或多个版本时,就会发生合并冲突。这些通常需要手动编辑文件以解决所有冲突的更新。
提交前和提交后测试
提交前测试用于防止将故障引入公共内核。结果目前不公开。

Android 提交后测试在将新补丁提交到公共内核分支时执行。通过输入aosp_kernel作为部分分支名称,您可以看到具有可用结果的内核分支列表。例如,可以在此处找到“android-mainline”的结果。
贸易联盟
Trade Federation(Tradefed 或简称 TF)测试工具是一个持续测试框架,专为在 Android 设备上运行测试而设计。例如,Tradefed 用于运行 CTS 和 VTS。有关详细信息,请参阅Trade Federation 概述
VTS
Android 供应商测试套件 (VTS) 为 Android 测试提供了广泛的功能,促进了测试驱动的开发流程,并自动化了 HAL 和操作系统内核测试。有关详细信息,请参阅供应商测试套件 (VTS) 和基础架构