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到其它分支就行了。


更多相关文章

  1. Android中ADT插件的安装
  2. 使用AndroidStudio生成打有系统签名的apk
  3. android studio gradle 多版本多apk打包(打包系列教程之五)
  4. Android(安卓)Support V4, V7, V13的作用与用法
  5. Android(安卓)Studio下Ndk开发踩过的坑以及解办法决
  6. 【Android】实现登录、注册、数据库操作(极简洁)
  7. android系统编译jdk版本
  8. 安装Android的Eclipse插件ADT遇到错误“requires 'org.eclipse.g
  9. android中版本webView中js不执行问题

随机推荐

  1. Android可控图片旋转
  2. Android(安卓)性能优化(六)——资源文件的
  3. Android(安卓)配置问题
  4. Android(安卓)判断网络连接情况
  5. Android(安卓)开发获取手机运行内存工具
  6. 开源项目Universal Image Loader for And
  7. android JNI tips
  8. android sqlite foreign key !!!!!!!!!!
  9. Android全局异常捕捉
  10. Android:Bundles in Activities and Fragm