Android项目如何将同一套代码应用于多个项目(变种打包)

如果你的公司开发了一个项目,但是这个项目应用于不同的客户,根据客户的不同要求,会改动一些东西,之前我们的做法是直接将这套代码复制出来,替换logo,applicationId,以及一些基本配置(如baseurl,等配置),简单是不是,换换图片一个app就开发完了,然而问题还在后面,

测试姐姐提出项目A有一个bug,完了我改了这个项目的bug,那其他项目改不改呢,答案还是得改,浪费青春从现在开始,,,,,你得把复制出来的项目一一手动改掉,然后再一一重新上架。妈的。这么复杂,直接吐血。其实之前我们也试过svn也有在一定程度上减少了工作量,但是还是不尽人意,其实,AS本身就给我们提供了一种简单的方法,废话少说,看下面

一、配置app.gradle区分不同项目

我们打开一个项目,查看app.gradle文件在android节点添加

//区分不同项目的
    productFlavors{
        //攀枝花项目
        coupon_pzh{
            applicationId "com.daqsoft.android.pzhcoupon"
        }

        //乌鲁木齐项目
        coupon_wlmq{
            applicationId "com.daqsoft.android.wlmqcoupon"
        }
    }
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

上面作用就是在当你选择不同类型项目的资源配置文件的时候(怎么选看后面)app会自动去寻找相应的文件进行加载,附带完整版app.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.daqsoft.android.pzhcoupon"
        minSdkVersion 14
        targetSdkVersion 14
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

    //区分不同项目的
    productFlavors{
        //攀枝花项目
        coupon_pzh{
            applicationId "com.daqsoft.android.pzhcoupon"
        }

        //乌鲁木齐项目
        coupon_wlmq{
            applicationId "com.daqsoft.android.wlmqcoupon"
        }
    }

}

dependencies {
    compile project(':zskuangjia')
    ...
}

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

你如果还要做成其他项目请在上面productFlavors节点添加就是。
注意如果你的项目有如下请删除,(不知道为什么,反正就是要删除)

signingConfigs {
        debug {
            storeFile file("pzhcoupon.jks")
            storePassword "daqsoft"
            keyAlias "daqsoft"
            keyPassword "daqsoft"
        }
        release {
            storeFile file("pzhcoupon.jks")
            storePassword "daqsoft"
            keyAlias "daqsoft"
            keyPassword "daqsoft"
        }
    }
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

好上面已经完成了大部分工作了,接下来我们开始提需求了哈,将这个项目改成另外一个项目,要求替换项目的根地址,logo,及一些配置,步骤如下

二、替换步骤

1、建立项目文件夹

首先我们得建立app的src目录下与main同级的项目如下,然后分别建立java和res文件

结构图

修改改文字

我们建立了不同项目的文件夹,要想让app_name不同,需要在对应的项目res的strings下如图添加名称

这里写图片描述

三个文件都叫app_name,当选择不同项目时会自动加载不同的app_name,图片类似

 <string name="app_name">优惠奖励申报 </string>
  
  
  • 1

怎么创建常量

在项目中我们会存在不同项目用不同的请求地址,那这个配置文件写在哪里呢 ,我们建立了三个文件夹,请看结构

这里写图片描述

我们就创建了config类,在不同的项目文件写不同的配置文件,注意名字都要一样,

选择运行

当一切配置好后,我们开始选择运行如图选择运行的项目

这里写图片描述

打包

当我们选择了具体的项目后就是打包了

如图

这里写图片描述

后续需求待续。。。。

转自:https://blog.csdn.net/Tomasyb/article/details/78871456

猜你喜欢

转载自blog.csdn.net/u013651026/article/details/88948897