blob: cfd960ddb5c74f15aabb3a27ce6bcbd557e6ff54 [file] [log] [blame] [edit]
<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>Android 开放源代码项目提供了一个公开问题跟踪工具,您可以在其中就 Android 核心软件堆栈报告错误及请求功能。(要详细了解此问题跟踪工具,请参阅<a href="report-bugs.html">报告错误</a>页面。)我们非常欢迎您报告错误(谢谢!),但在提交错误报告后会发生什么呢?本页将说明错误的生命周期。</p>
<p>*请注意:Android 开放源代码项目 (AOSP) 问题跟踪工具仅用于与 Android 核心软件堆栈相关的错误报告和功能请求,同时也是一个供开放源代码社区使用的技术工具。</p>
<p>但它不是一个客户支持论坛。您可以在 <a href="http://support.google.com/nexus">Google 的 Nexus 支持网站</a>上找到关于 Nexus 设备的支持信息。其他设备的支持由设备制造商或销售这些设备的运营商提供。</p>
<p>通过 <a href="http://support.google.com/">Google 的支持网站</a>可以找到关于 Google 应用的支持信息。涉及第三方应用的支持由各自的应用开发者提供,例如,您可以通过 Google Play 上提供的联系信息与他们联系。</p>
<p>下面简要说明了错误的生命周期:</p>
<ol>
<li>
<p>用户提交一个错误,该错误的状态将为“New”(新)。</p>
</li>
<li>
<p>AOSP 维护人员定期审核错误并进行分类。错误将划分为 4 个类别中的一个:“新”、“Open”(待解决)、“No-Action”(无需处理)或“Resolved”(已解决)。</p>
</li>
<li>
<p>每个类别都包括多种状态,可提供有关问题处理的更多详情。</p>
</li>
<li>
<p>“已解决”类别中的错误最终会在未来版本的 Android 软件中予以修复。</p>
</li>
</ol>
<h2 id="bucket-details">类别详情</h2>
<p>以下是关于每个类别、其含义及处理方式的更多信息。</p>
<h3 id="new-issues">“新”问题</h3>
<p>“新”问题包括尚未进行任何处理的错误报告,具有以下两种状态:</p>
<ul>
<li>
<p><em></em>New(新):
错误报告尚未分类(即由 AOSP 维护人员审核。)</p>
</li>
<li>
<p><em></em>NeedsInfo(需要信息):
错误报告的信息不充分,无法予以处理。报告错误的用户需要提供更多详细信息,错误才可以进行分类。如果在规定时间内未提供新信息,该错误默认可能会被关闭,变为“无需处理”类别下的某种状态。</p>
</li>
</ul>
<h3 id="open-issues">“待解决”问题</h3>
<p>此类别包含需要处理但仍未解决的错误(正在等待我们对源代码进行更改)。</p>
<ul>
<li>
<p><em></em>Unassigned(未分配):
错误报告已被认定为细节充分、问题有效,但尚未分配给 AOSP 贡献者进行修复。</p>
</li>
<li>
<p><em></em><em></em>Assigned(已分配):
与“未分配”类似,但错误实际上已分配给特定贡献者进行修复。</p>
</li>
</ul>
<p><em></em><em></em>通常情况下,特定错误一开始会处于“未分配”状态并一直保持该状态,直到有人有意解决该错误,此时该错误会变成“已分配”状态。但请注意,我们并不保证一定会是这样,而错误从“未分配”直接变为“已解决”类别下的某种状态也是很常见的。<em></em></p>
<p>一般来说,如果一个错误处于以上“待解决”类别下的某种状态,则表明 AOSP 团队已将其认定为有效问题,该错误很可能会获得贡献者的认可,从而得到高质量的修复。不过,我们无法保证及时修复任何特定版本的错误。</p>
<h3 id="no-action-issues">“无需处理”问题</h3>
<p>此类别包含由于某种原因而被认定为不需要任何处理措施的错误。</p>
<ul>
<li>
<p><em></em>Spam(无关内容):
好心人士给我们送来一些美味的猪肉制品,但是很遗憾,我们并不需要。</p>
</li>
<li>
<p><em></em>Duplicate(重复):
问题跟踪工具中已有相同的报告。类似报告将收到有关任何实际处理措施的消息。</p>
</li>
<li>
<p><em></em>Unreproducible(不可重现):
AOSP 贡献者尝试重现所描述的行为,但无法做到。有时,这意味着错误虽然有效但不常见或者难以重现,有时也意味着错误已在更高版本中予以修复。</p>
</li>
<li>
<p><em></em><em></em>Obsolete(过时):
与“不可重现”类似,但可以合理认定错误确实存在于所报告的版本中,但已在更高版本中得以修复。</p>
</li>
<li>
<p><em></em>WorkingAsIntended(正常情况):
AOSP 维护人员已确定所描述的行为不是错误,而是正常情况。这种状态通常也称为“WAI”。</p>
</li>
<li>
<p><em></em><em></em>Declined(遭拒):
除了通常用于功能请求(而非错误)的情况之外,其他与“正常情况”类似。也就是说,AOSP 维护人员已确定相应请求不会在 Android 中予以实现。</p>
</li>
<li>
<p><em></em>NotEnoughInformation(缺少充分信息):报告没有提供充分的信息,导致维护人员无法采取任何处理措施。</p>
</li>
<li>
<p><em></em>UserError(用户错误):报告是用户在使用 Android 时犯错而造成的结果,例如输入错误的密码导致无法连接到服务器。</p>
</li>
<li>
<p><em></em>WrongForum(错误论坛):报告无法在 AOSP 中予以处理,通常是因为报告与定制设备或外部应用相关。</p>
</li>
<li>
<p><em></em>Question(问题):用户误以为问题跟踪工具是帮助论坛而提出的问题。</p>
</li>
</ul>
<h3 id="resolved-issues">“已解决”问题</h3>
<p>此类别包含已采取处理措施且现在被视为已解决的错误。</p>
<ul>
<li>
<p><em></em>Released(已发布):此错误已修复,且修复方案已纳入一个正式版本中。在设置此状态的同时,我们也会尝试设置一个属性,说明错误在哪个版本中予以修复的。</p>
</li>
<li>
<p><em></em>FutureRelease(未来版本):此错误已经在源代码树中予以修复(或功能已经实现),但修复方案尚未纳入正式版本中。</p>
</li>
</ul>
<h2 id="other-stuff">其他事项</h2>
<p>上述状态和生命周期是我们通常跟踪软件的方式。但是,Android 包含大量软件,相应地也会收到大量错误报告。因此,有时候错误并没有经过正式流程中的所有状态。虽然我们会尽量确保系统保持最新状态,但我们倾向于定期进行“错误清除”- 在此过程中,我们会检查数据库并进行更新。</p>
</body></html>