Android 開(kāi)源項(xiàng)目維護(hù)了一個(gè)公共的 issue 跟蹤管理,在這里你可以報(bào)告 bugs 并給核心 Android 軟件請(qǐng)求功能(可以到 Reporting Bugs 頁(yè)面查看 issure 跟蹤器的詳細(xì)信息)。提交 Bugs 是一件很棒的事情(謝謝?。?,但是當(dāng)你提交完之后會(huì)發(fā)生什么呢?這個(gè)頁(yè)面就是描述 Bug 的生命周期。
請(qǐng)注意:Android 開(kāi)源項(xiàng)目(AOSP)issue 跟蹤器僅僅是針對(duì) bugs 和與請(qǐng)求核心軟件相關(guān)的功能,同時(shí),它也是開(kāi)源社區(qū)的一個(gè)技術(shù)工具。
這不是一個(gè)客戶支持論壇。你可以在 Google 的 Nexus 幫助頁(yè)面 得到 Nexus 設(shè)備的支持信息。其他設(shè)備的話,可以找設(shè)備廠商或者設(shè)備銷(xiāo)售者。
尋找 Google 應(yīng)用的幫助可以到 Google 的支持頁(yè)面。第三方應(yīng)用的幫助可以找這個(gè)應(yīng)用的開(kāi)發(fā)者,比如,通過(guò) Google Play 提供的聯(lián)系方式。
下面是 bug 的生命周期,簡(jiǎn)短的概括:
bug 被提出后,就會(huì)在 New 狀態(tài)。
AOSP 的維護(hù)者定期檢查并且將 bug 分類(lèi)。Bugs 將被分為四個(gè)“buckets” 中的其中一個(gè):New,Open,No-Action,和 Resolved。
每一個(gè) bucket 都會(huì)包括一些狀態(tài)用來(lái)提供 issue 生命期的更多信息。
這里是每個(gè) bucket 的一些額外的信息,它意味著什么,以及它是怎么處理的。
New 狀態(tài)的 issue 包括了沒(méi)有采取行動(dòng)的 bug 的報(bào)告。這兩個(gè)狀態(tài)是:
New:這個(gè) bug 報(bào)告還沒(méi)有被分類(lèi)(就是還沒(méi)有被 AOSP 維護(hù)者檢查)。
這個(gè)狀態(tài)的 bugs 包括需要采取行動(dòng)的,但仍未解決,在等待修改的源碼。
未分配:這個(gè) bug 報(bào)告已經(jīng)被認(rèn)為是一個(gè)有充分詳情的正當(dāng)?shù)?issue 報(bào)告,但是它還沒(méi)有被分配給 AOSP 奉獻(xiàn)者解決。
通常情況下,一個(gè)給定的 bug 開(kāi)始是未分配狀態(tài)的,直到有人打算解決它,此時(shí)它就會(huì)變成分配狀態(tài)。然而,請(qǐng)注意這并不是絕對(duì)的,一個(gè) bug 從未分配狀態(tài)到解決狀態(tài)也不奇怪。
一般而言,如果這個(gè) bug 是 Open 狀態(tài)的其中一種,AOSP 團(tuán)隊(duì)已經(jīng)認(rèn)為它是一個(gè)合理的 issue,并且這個(gè) bug 將會(huì)接受到高質(zhì)量的奉獻(xiàn)修復(fù)。但是,不能保證及時(shí)修復(fù)到任何特定的發(fā)布版本中。
這個(gè)狀態(tài)下的 bugs 因?yàn)檫@樣或那樣的原因決定不在采取任何行動(dòng)。
Spam:一些好心的人提供的不錯(cuò)的建議,但是很遺憾,這個(gè)不是我們需要的。
Duplicate:issue 跟蹤器中已經(jīng)有一個(gè)相同的問(wèn)題了。任何目前的操作都會(huì)更新在那個(gè)報(bào)告中。
Unreproducible:一個(gè) AOSP 奉獻(xiàn)者試圖重現(xiàn)所描述的行為,但是沒(méi)有重現(xiàn)出來(lái)。這個(gè)有時(shí)意味著 bug 雖然合理但是不常見(jiàn)或者很難重現(xiàn),有時(shí)意味著這個(gè) bug 已經(jīng)在之后的版本中修復(fù)了。
Obsolete:和 Unreproducible 狀態(tài)相似,但是合理確定的是這個(gè) bug 在提交的那個(gè)版本中存在,但已經(jīng)在之后的版本中解決了。
WorkingAsIntended:AOSP 維護(hù)者已經(jīng)確定描述的行為不是 bug,但是是一個(gè)期望的行為。這種狀態(tài)通常也被稱(chēng)為 WAI。
Declined:這個(gè)像 WorkingAsIntended 一樣,除了 WorkingAsIntended 通常是功能請(qǐng)求,不是 bugs。這個(gè)意味著 AOSP 維護(hù)者決定這個(gè)請(qǐng)求不在 Android 中實(shí)現(xiàn)。
NotEnoughInformation:這個(gè)報(bào)告沒(méi)有足夠的信息讓維護(hù)者采取行動(dòng)。
UserError:這個(gè)報(bào)告結(jié)果是用戶使用 Android 的時(shí)候自己造成了錯(cuò)誤。例如,輸入錯(cuò)誤的密碼導(dǎo)致無(wú)法正常連接服務(wù)器。
WrongForum:AOSP 無(wú)法處理個(gè)錯(cuò)誤,通常來(lái)說(shuō)是因?yàn)檫@個(gè) bug 是定制的設(shè)備或者外部的應(yīng)用程序?qū)е碌摹?/p>
這個(gè)狀態(tài)的 bug 包括已經(jīng)采取行動(dòng)的,并且現(xiàn)在被認(rèn)為是解決了的。
Released:這個(gè) bug 已經(jīng)修復(fù)了并且發(fā)布在正式的版本中。在設(shè)置這個(gè)狀態(tài)的同時(shí),我們也會(huì)盡力發(fā)布一個(gè)適當(dāng)?shù)恼f(shuō)明表示這個(gè) bug 是在哪個(gè)版本中解決的。
上面提到的狀態(tài)和生命周期是我們通常跟蹤軟件的方式。然而,Android 包含了很多軟件,相應(yīng)的得到大量的 bugs。因此,一些 bugs 并沒(méi)有經(jīng)過(guò)正常流程中的所有的狀態(tài)。我們會(huì)盡力讓系統(tǒng)保持更新,但是我們傾向于周期性的進(jìn)行 bug 清理,同時(shí)檢查數(shù)據(jù)庫(kù)并更新。