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到其它分支就行了。
更多相关文章
- Android中ADT插件的安装
- 使用AndroidStudio生成打有系统签名的apk
- android studio gradle 多版本多apk打包(打包系列教程之五)
- Android(安卓)Support V4, V7, V13的作用与用法
- Android(安卓)Studio下Ndk开发踩过的坑以及解办法决
- 【Android】实现登录、注册、数据库操作(极简洁)
- android系统编译jdk版本
- 安装Android的Eclipse插件ADT遇到错误“requires 'org.eclipse.g
- android中版本webView中js不执行问题