1. 程式人生 > >Android 程式碼開發工作流

Android 程式碼開發工作流

一、概述

要使用Android程式碼,您需要使用Git和Repo。在大多數情況下,您可以使用Git而不是Repo,或者使用Repo和Git命令來形成複雜的命令。然而,使用Repo進行基本的跨網路操作將使您的工作更簡單。

Git是一個開源版本控制系統,旨在處理分佈在多個儲存庫中的大型專案。在Android中,我們使用Git進行本地操作,如本地分支,提交,差異和編輯。

Repo是在Git之上構建的儲存庫管理工具。 Repo在必要時統一了許多Git儲存庫,上傳到版本控制系統,並自動部署了Android開發工作流程。 Repo並不意味著取代Git,只是為了在Android的中更容易使用Git。 repo命令是可執行的Python指令碼,您可以將其放在路徑的任何位置。在使用Android原始檔時,您將使用
Repo進行跨網路操作。例如,使用單個Repo命令,您可以將檔案從多個儲存庫下載到本地工作目錄。

Gerrit是使用git的專案的基於Web的程式碼審查系統。 Gerrit鼓勵更多的集中使用Git,它允許所有授權使用者提交更改,如果通過程式碼審查,這些更改將自動合併。此外,Gerrit通過在瀏覽器中並排顯示更改並啟用內聯註釋來更輕鬆地進行審閱。

二、基本工作流

在android裡,開發與程式碼庫常用的互動模式如下:

  • 下載程式碼
  • 編輯檔案,提交修改
  • 提交修改到gerrit
  • Gerrit觸發Jenkins 任務,進行程式碼檢查
  • Reviewer 對程式碼進行Code review
  • Submit到程式碼庫

Android 程式碼開發工作流

三、下載程式碼

要同步所有可用專案的檔案:

$ repo sync

要同步所選專案的檔案:

$ repo sync PROJECT0 PROJECT1 PROJECT2 . . . 

四、編輯檔案,提交修改

按照需求修改好檔案之後,使用如下命令可以先暫存你的修改。

git add -A

然後使用git commit 將暫存的檔案提交。

五、提交修改到gerrit

在提交到gerrit之前,現將原生代碼更新到最新

repo sync

這個時候,可能會出現程式碼衝突。需要對產生衝突的檔案進行修改,然後重新git add .和git commit 最後在執行

git rebase --continue

然後執行

repo upload

這將列出您提交的更改,並提示您選擇要上傳到gerrit上的分支。如果只有一個分支,您將看到一個簡單的y / n提示符。

下圖是程式碼在本地通過git和repo的操作圖表。

Android 程式碼開發工作流

六、Gerrit觸發Jenkins 任務,進行程式碼檢查

當修改提交到gerrit上之後,會自動觸發jenkins 任務,進行程式碼檢查。這時我們進行程式碼審查的第一步。
根據我們制定的程式碼檢查規範,檢查當前的這筆提交是否滿足我們的需要。

如果沒有通過程式碼檢查,會對這筆提交進行 vertify -1;通過的話,會進行vertify +1。

程式碼檢查這一步,是後面reviewer進行程式碼審查的一個重要依據。沒有通過的話,開發一定要重新修改程式碼進行提交。

而且,程式碼檢查的通過率,也是評價這個開發程式碼質量的一個重要標準。

七、Reviewer 對程式碼進行Code review

程式碼在提交到gerrit上之後,除了進行jenkins的程式碼稽核之外,還會給各個負責人(Reviewer)傳送稽核邀請,由他們進行下一步的程式碼稽核。

Reviewer評審的依據:

  • Jenkins job進行程式碼檢查的結果;
  • 程式碼設計是否合理;
  • 是否滿足需求;
  • 是否可以解決已有的問題;
    ……

Reviewer可以在程式碼新增comments,發表自己的建議、質疑、修改意見……

開發要回復這些comment,並對程式碼進行適當的修改,重新提交,直到reviewer認為你的修改滿足要求,並給你Code Review +1或+2.

而如果一筆提交長時間沒有任何改動,會自動abandon掉,而不需要的修改,也可以手動abandon掉。

八、Submit到程式碼庫

當一筆提交已經被Code Review +2了,說明這筆提交已經滿足了需要,這時該筆提交的gerrit介面上會出現“submit”按鈕,點選這個按鈕,我們就可以將這筆提交到程式碼庫裡面