zoukankan      html  css  js  c++  java
  • 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到其它分支就行了。


  • 相关阅读:
    ubuntu搭建GitLab
    inline,inline-block,block元素的区别
    ES6入门学习
    webpack配置
    angular6之路由
    angular6之Http服务
    angular6之http请求拦截器
    Spring Cloud(6.2):搭建OAuth2 Client
    Spring Cloud(6.1):搭建OAuth2 Authorization Server
    keytool命令的使用
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3057371.html
Copyright © 2011-2022 走看看