blob: a1f0b726b452005251542acac00821dfb28a846b [file] [log] [blame]
<html devsite><head>
<title>供应商接口对象</title>
<meta name="project_path" value="/_project.yaml"/>
<meta name="book_path" value="/_book.yaml"/>
</head>
<body>
<!--
Copyright 2017 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<p>本文档介绍供应商接口对象(VINTF 对象)的设计,该对象用于聚合设备的相关信息并通过可查询的 API 提供该信息。<em></em><em></em></p>
<h2 id="about-objects">VINTF 对象设计</h2>
<p>VINTF 对象直接从设备中收集所需的一些信息。其他信息(如清单)以 XML 格式静态描述。</p>
<img src="../images/treble_vintf_mm.png"/>
<figcaption><strong>图 1.</strong> 清单、兼容性矩阵和运行时可收集的信息。</figcaption>
<p>VINTF 对象设计为设备和框架组件提供以下内容:</p>
<table>
<tbody><tr>
<th style="width:50%">对于设备</th>
<th>对于框架</th>
</tr>
<tr>
<td>
<ul>
<li>定义静态组件(<a href="/devices/architecture/vintf/objects.html#device-manifest-file">设备清单文件</a>)的结构。</li>
<li>添加构建时支持,以便定义给定设备的设备清单文件。</li>
<li>在运行时定义相应<a href="/devices/architecture/vintf/objects.html#queryable-api">可查询的 API</a>,以用于检索设备清单文件(以及其他可在运行时收集的信息)并将其打包到查询结果中。</li>
</ul>
</td>
<td>
<ul>
<li>定义静态组件(<a href="/devices/architecture/vintf/objects.html#framework-manifest-file">框架清单文件</a>)的结构。</li>
<li>在运行时定义相应<a href="/devices/architecture/vintf/objects.html#queryable-api">可查询的 API</a>,以用于检索框架清单文件并将其打包到查询结果中。</li>
</ul>
</td>
</tr>
</tbody></table>
<p>无论何时请求,VINTF 对象都必须稳定可靠且能提供相同的完整信息(请见<a href="/devices/architecture/vintf/resources.html#caveats">注意事项</a>)。</p>
<h2 id="manifests-matrices">清单和矩阵</h2>
<p>Android O 在运行时需要使用 API 来查询设备上的内容,并将该信息发送到<a href="/devices/tech/ota/index.html">无线下载 (OTA)</a> 更新服务器以及其他相关方(如 CTS <code>DeviceInfo</code>)。某些信息在运行时进行检索,其中有一些是静态定义的信息。</p>
<ul>
<li><strong>设备清单</strong>描述了设备可以为框架提供的静态组件。</li>
<li><strong>框架兼容性矩阵</strong>描述了 Android 框架从给定设备中期待获取的内容。矩阵是一个静态实体,其组成是在开发下一个版本的 Android 框架期间手动确定。</li>
<li><strong>框架清单</strong>描述了框架可以为设备提供的高级服务。</li>
<li><strong>设备兼容性矩阵</strong>描述了供应商映像需要框架提供的服务,其组成是在设备开发期间手动确定。</li>
</ul>
<p>这两对清单和矩阵必须在 OTA 时进行调整,以确保设备可以获取与设备功能兼容的框架更新。一般来说,清单描述了提供的内容,兼容性矩阵描述了需要的内容。<em></em><em></em></p>
<p><a href="/devices/architecture/vintf/objects.html">VINTF 对象数据</a>定义了清单的结构,<a href="/devices/architecture/vintf/comp-matrices.html">兼容性矩阵</a>定义了兼容性矩阵的结构,<a href="/devices/architecture/vintf/match-rules.html">匹配规则</a>定义了兼容性矩阵与清单之间成功匹配的规则。</p>
</body></html>