| <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> |