简介

主要借助gradle的productFlavors工具进行多渠道打包

实践

1. Android工程中App Module中的build.gradle文件添加pf[productFlavors]
android {//定义3个不同的产品[默认,红,蓝]    productFlavors{        common{}        red{}        blue{}    }}configurations {//定义3个产品不同的依赖    commonCompile    redCompile    blueCompile}
2. 问题一 : 不同的包名&&版本号&&版本名称
android {    productFlavors{//为3个产品指定不同的配置        common{            applicationId "com.common"            versionCode 1000            versionName "1.0.0"        }        red{            applicationId "com.red"            versionCode 2000            versionName "2.0.0"        }        blue{            applicationId "com.blue"            versionCode 3000            versionName "3.0.0"        }    }}
3. 问题二: 不同的资源替换
39EA501C-D5F2-4316-BD07-A3E37CF9AC5E.png
4. 问题三: 重名java文件替换
FCD92703-AD10-4A12-BBD3-4A026E77AEE1.png
5. 问题四: 被[app]依赖的[library]如何确定编译的产品?
  • 修改[app]的build.gradle文件
configurations {    commonCompile    redCompile    blueCompile}dependencies {//不同的产品依赖[library]中不同的文件&&资源    commonCompile project(path: ':picmodule', configuration: "common${rootProject.ext.BUILD_VARIANT}")    redCompile project(path: ':picmodule', configuration: "red${rootProject.ext.BUILD_VARIANT}")    blueCompile project(path: ':picmodule', configuration: "blue${rootProject.ext.BUILD_VARIANT}")}
  • 修改工程最外侧build.gradle文件
ext{    BUILD_VARIANT = "Debug"//配置buildType}
  • [library]结构如下


    555195F6-1033-4144-B30E-9B2B517705E1.png
6. 问题5: 如何多个产品依赖一个不分产品的[library]
  • 修改[app]的build.gradle如下
dependencies {    // 引用本的项目    commonCompile project(':picmodule')    redCompile project(':picmodule')    blueCompile project(':picmodule')}
  • 删除[library]下red && blue 目录即可

更多相关文章

  1. android上如何写配置文件
  2. 菜单之二:使用xml文件定义菜单
  3. Android中sqllite存储海量数据解决办法
  4. Android点击事件的实现
  5. Android(安卓)字体大小怎么自适应不同分辨率?
  6. Android(安卓)开发相关命令集合
  7. android打包so文件到apk
  8. Android(安卓)Studio开发NDK用C++的坑
  9. Android之数据存储笔记

随机推荐

  1. Service与Android系统实现(1)-- 应用程序里
  2. Ogre3d 之使用 Android(安卓)NativeActiv
  3. Android命令行截屏screencap
  4. Android设置中“强行停止”详解
  5. 《Android/OPhone开发完全讲义》连载(7):使
  6. 第一个Android工程HelloAndroid
  7. Android NDK 开发(笔记一)
  8. Android:自定义控件你应该知道的这些事_Ty
  9. android chrome iframe设置src属性无法启
  10. Material Design:利用RecyclerView CardVi