Android 項目多版本管理

Android 項目多版本管理


基於GIT強大的分支(git branch)能力,Android項目可以實現由一個基本版本生成多個不同UI的版本,並同步主要邏輯代碼,實現不同的外表,一樣的內心。其基本原理是使用<orinial-package/>來指定基礎包名。下面是實現的步驟:

0. 預備知識Git remote branch 遠程分支管理

1. 準備基本版本

多個版本管理的特點是邏輯相同,UI有所區別,爲了以後merge主邏輯,我們需要使各個分支之間的主邏輯代碼的包名一致,同時爲了發佈不同UI的版本,程序的包名以需要區別開來,看起來這兩點是有衝突的,這時重要的屬性出場了:<orinial-package/>!用此屬性來指定主邏輯代碼的包名,用<package/>來指定程序的包名,這裏用一個單詞來佔位,例如.base_version,以便於以後添加新的UI分支後替換成新的包名。用法如下代碼:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.pkgname.base_version"
    android:versionCode="1"
    android:versionName="0.00.00" >

    <original-package android:name="com.pkgname" />




另一個準備工作:爲了避免數據庫衝突,把所有數據庫的Authority改爲”com.pkgname.base_version”

2. 生成一個新的版本分支

2.1 從base_version生成一個新的分支,例如my_ui_branch_0,假設當前base version的分支是develop:

 
$git checkout develop -b my_ui_branch_0

2.2 全局替換”com.pkgname.base_version” 爲”com.pkgname.my_ui_branch_0″。

2.3 把AndroidManifest.xml中所有”.YourComponent” 改爲 “com.pkgname.YourComponent”。

2.4 git commit 生成一個commit。

3. 保存新版本到遠程分支。

$git push origin my_ui_branch_0

4. 如何操作分支的原則。

兩個原則:

原則一:Merge方向爲從base_version==>my_ui_branch_N,反方向merge後果很嚴重。

原則二:確保在base_version上修改公共邏輯或UI。

至此,我們就可以快樂的生成帶有新程序包名的分支,出現BUG時再不用擔心多個版本的同步問題,只要在base_version上修改並merge到其它分支就行了。

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