android studio多渠道打包,定制个性化,替换不同资源文件,代码

来源:互联网 发布:爱仕达陶瓷不粘锅知乎 编辑:程序博客网 时间:2024/05/29 23:48

          当你完成了一个app项目,后面发现不同客户需要定制不同ui,或者功能,这个时候怎么办?

  拿ui来说,第一种方法,不同客户替换不同客户的图片资源,重新打包。这样可以达到目的,但是如果客户一多,每次代码修改了bug,怎么办,重新每个客户分别替换图片资源打包新的apk。这样真的好吗。

          我们换一种方法,在android studio里面有一个productFlavors的东西,这个其实也相当于产品的意思,一个项目可以打包成不同的产品,部分功能或者ui不一样。我们apk也有多渠道打包,也是用的这个东西,其实是一样的。那么我们怎么做呢?

          1、新建一个工程,在buid.gradle加入以下代码:

    productFlavors{        product1{//            applicationId "com.ycl.edition1"//            versionCode 1//            versionName "1.0.0"        }        product2{//            applicationId "com.ycl.edition2"//            versionCode 1//            versionName "1.0.0"        }    }
         这样就建立了2个product,其中注释的部分分别是包名,版本信息,如果有的话会覆盖上面工程上面的包名和版本信息,没有就用project原有的。


        2、在工程的src目录下面建立两个文件夹,目录结构和main目录一致

这两个文件夹分别代表了两个product不一样的地方,其中res中相同的文件会覆盖main文件中的,manifest中的属性会合并



在建立好文件之后,在下面的terminal输入

gradle assembleRelease进行编译,编译完成之后出现两个apk,分别安装查看效果

其中product1和product2中的图片不一样,编译出来的apk安装之后桌面图片就可以看出来



当新客户有新的log图片之类的要替换是,我们只要在build.gradle文件加入一个新的product,工程中对应加一个文件夹,把新图片复制到对应drewable文件夹下,重新编译就可以了。

当然我们也可以对单个product进行编译,命令如下:

gradlew assembleproduct1Release 对应product1的编译


demo下载地址:

demo地址









































0 1
原创粉丝点击