android應用開發-從設計到實現 4-4版本管理

版本管理

前面已經提到了,非常有必要對開發的代碼進行管理。那麼進行版本管理到底什麼時候使用呢?

我總結了使用版本管理的主要場景,有以下3種:

  1. 對於個人開發者,版本管理能記錄開發的變遷。它記錄了所有文檔的修改記錄,就好比玩遊戲時,我們都會時刻存檔,就怕哪一次不小心,控制的角色掛了;假如不存檔,出了問題,必須得從新開始。

    如果使用了版本管理,就可以隨時保存文檔修改的進度。一旦文檔任何時候出現了問題,或者希望快速還原到之前某個特定的狀態,都可以很容易的切換過去。省去了程序員不少麻煩,畢竟誰也記不清哪年哪月哪日我添加了一段什麼代碼,目的是什麼,而正是這段代碼引起了bug,搞得我現在大腦崩潰。

     version_rollback
  2. 當多個程序員開發同一個項目的時候,版本管理工具能很好的協調彼此的工作,讓大家開發的代碼不會衝突、互相干擾,即使出現了問題,也能很快找到原因。

    比如程序員A在他的開發代碼中修改了work.java中第15行的內容,同時程序員B在他的開發代碼中修改了work.java中第20行的內容。兩人把修改提交保存的時候,版本管理工具,會把兩人的修改合併起來。

     modify_different_lines

    如果程序員A在他的開發代碼中修改了work.java中第15行的內容,同時程序員B在他的開發代碼中也修改了work.java中第15行的內容。兩人把修改的內容提交保存的時候,版本管理工具,會發現兩人的修改衝突,告訴AB,讓他們兩協商解決問題。

     modify_same_lines
  3. 文檔的修改積累到一定程度,比如說完成了設計的所有內容,就可以設置一個大的節點。後繼的開發可以分成兩支:一支繼續添加新的功能;一支修復現有程序的bug。

     make_dev_branch

管理的工具

爲了滿足前面提到使用場景,在軟件開發的不同歷史階段,出現了不同的版本管理工具:從CVS,到SVN,再到現在使用最廣泛的Git

早期的版本控制軟件存在的各種缺點,都被後來的代替者解決了。在安卓的開發中,基本上都在使用Git作爲版本控制工具。

GitLinux之父Linus Torvalds親自開發的工具,有着高效的管理能力。它最爲基本的運作思路大致如下:

  1. 倉庫Repository是一個Git項目的容器,裏面存放着文檔(包括代碼)、以及各個文檔的歷史修改信息;

     git_repository
  2. 倉庫Repository可以存在於網絡端,也可以存在於本地電腦當中;

  3. 倉庫有兩種獲取的方式,一個是clone網絡端已有的;一個是在本地電腦上自行創建,再通過網絡提供給別人訪問;

     git_location
  4. 假如對本地的倉庫內容進行了修改,要保存修改進度的時候,

    1. 要先將這些修改放到stage當中,
    2. 然後提交-commit到本地的倉庫中,此時會產生一個全局唯一識別碼-Commit ID,就像f27af79
    3. commit後的內容推送push到網絡端,而這個Commit ID就代表你這次提交的唯一標記;
    4. 假如推送的時候,自己修改的代碼和倉庫中的代碼出現了衝突Conflit(因爲修改了同一處的代碼導致),那麼推送者就需要查看代碼、找到修改這段代碼的提交者商量修改方案,解決衝突;
     git_commit_push
  5. 其他開發者假如clone了這個倉庫,就能看到Commit後的各種修改,並通過拉取pull的操作從網絡端把更新同步到自己本地的代碼當中;

  6. 假如同步代碼的過程中,自己的代碼和別人的修改發生了衝突Conflit,那麼拉取者就需要查看代碼、找到修改這段代碼的提交者商量修改方案,解決衝突;

     modify_same_lines

除此之外,Git還擁有軟件工程方面的實用技巧,例如創建開發分支Branch,給代碼打標籤Tag

 git_branch_tag

更加詳細的內容,可以參考這裏。裏面還列舉出了各個平臺下可以選擇的圖形化工具

Github的使用

Github幾乎是全世界程序員都知道的項目託管平臺,我們可以把代碼放在這個平臺上。整個項目的託管就是基於Git的原理實現的。

 github_website

Github在Git管理中充當着網絡端的功能,扮演中心服務器的角色,讓我們可以隨時更新代碼、提交代碼,分享代碼。

Android Studio具有對Github平臺的原生支持,讓我們在開發的時候能夠無縫的加入對軟件版本控制的管理功能。

 as_integrate_github
 as_ integrate_github2

Github的註冊

打開Github的官網,按照指示很容易的註冊一個賬號。

登陸賬號後,可以看到你現在具有的倉庫-Repository

 github_repository

我之前已經創建過幾個免費倉庫了,所以列表裏會將它們呈現出來。如果是新註冊的賬號,這裏應該是空的。

Android Studio的配置

現在我們來把之前創建的天氣預報工程,託管到Github上:

  1. 啓動工具欄VCS -> Import into Version Control -> Share Project on Github
  2. 在彈出的窗口中,根據提示輸入Github上的賬戶名和密碼;
  3. 輸入項目的名稱WeatherApp和項目描述,選擇Share
     as_share_project_to_github1
  4. 確認要添加到管理中的文件(代碼、配置、資源等文件),並給這次提交添加描述信息;
     as_share_project_to_github2

刷新Github上的個人主頁,可以看到新添加的項目倉庫WeatherApp已經出現在那裏了,

 as_share_project_to_github_result1
 as_share_project_to_github_result2

此時看看Android StudioVersion Control窗口,就能看到當前的代碼管理情況,

 as_version_control_window

Android Studio的Git管理

提交與推送入庫

Git版本管理有很多用法,這裏我們先介紹兩個最常使用的功能commitpush

假如我們修改了WeatherAppMainActivity.java

 as_main_activity_modify_for_git_demo

LocalChanges選項卡會將當前發生了變化的、被版本管理記錄的文件列出來,

 as_main_activity_modify_list

點擊提交commit按鈕,會將修改過的文件放入stage狀態,

 as_main_activity_commit1

並展示當前要提交commit文件的狀態,讓我們再次確認。當我們點擊被修改過的文檔時,Android Studio會爲我們展示當前修改後的文檔與修改前的文檔有哪些異同。讓我們在最後提交之前,再次檢查確認一次,

 as_main_activity_commit2

檢查無誤後,選擇提交併推送入庫-Commit and Push

 as_main_activity_commit3

假如沒有衝突發生,就能看到提交成功,版本控制增加新的節點,

 as_main_activity_commit_result1

Github上項目對應的代碼頁,也會更新,

 as_main_activity_commit_result2

其他

Android Studio還提供了創建分支Branch、創建標籤Tag、以及在不同節點上來回切換的功能,這裏就不詳細描述了。

因爲這些內容如果沒有實際的例子,講起來會很枯燥。我會在開發的過程中根據需要穿插進響應的內容,這樣大家理解起來就會非常的方便了。


本文是《從設計到實現-手把手教你做android應用開發》系列文檔中的一篇。感謝您的閱讀和反饋,對本文有任何的意見和建議請留言,我都會盡量一一回復。

如果您覺得本文對你有幫助,請推薦給更多的朋友;或者加入我們的QQ羣348702074和更多的小夥伴一起討論;也希望大家能給我出出主意,讓這些文檔能講的更好,能最大化的幫助到希望學習開發的夥伴們。

除了CSDN發佈的文章,本系列最新的文章將會首先發布到我的專屬博客book.anddle.com。大家可以去那裏先睹爲快。


同時也歡迎您光顧我們在淘寶的網店安豆的雜貨鋪。店中的積木可以搭配成智能LED燈,相關的配套文檔也可以在這裏看到。

這些相關硬件都由我們爲您把關購買,爲大家節省選擇的精力與時間。同時也感謝大家對我們這些碼農的支持。

最後再次感謝各位讀者對安豆的支持,謝謝:)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章