Android Studio实现多个类似应用在同一个项目中管理

近期由于公司项目需要复制好多个应用出来,但要求应用名与图标以及闪屏不同,也就是应用主要功能相同但是每个应用又可独立存在。在这样的背景下,本来是每复制一个应用创建一个项目的,但是随着复制应用数量的不断增多打包以及修改bug时出问题了,我必须把所有项目打开挨个把问题代码复制一遍,这样导致出错率很高而且很浪费时间。

无意间我了解到ios的项目是在一个工程目录中进行管理的,由此我问了一下ios开发的同事,用了是叫一个target的东西去区分配置每个应用的。所以我在想既然ios有这样的功能那么android是不是也有呢。我查了好多的网上资料,大概总结有两种方式,一种是把项目中公共部分提取出来做成module,�第二种是通过Grandle去动态设置应用名包名以及资源文件。第一种方法我在试用过程中由于问题较多所以我进行到一半放弃了,下面我要说的是第二种方法。

首先你要复制多个应用你要先理清需求,像我们的应用就是应用多但要发布的渠道少,也就是每个应用的渠道除了渠道号没有区别,但不同应用之间会有一些区别


往常productFlavors中是分不同的渠道打包的,那么每一个复制应用都算是一个渠道,通过上图可以看出每一个渠道都配置了应用名、包名、第三方sdk的key值、接口地址公共部分,所有本地不同的地方的配置信息都要在这儿写出来。方便项目中代码或者xml文件中调用。

有人会问你这样把渠道配置给占用了那如果以后我想打不同渠道的包是不是还要一个个把渠道名挨个改掉,这个总是我也注意到了我是如下图这样做的


我的方法是把buildTypes分为debug,release两个版本,然后有几个渠道创建几个版本并以渠道名命名,这样在调试时就可以在build variant中选择对应的应用渠道进行调试。

上面是讲了配置上的参数不同怎么去配置,下面讲的是代码与布局文件和资源文件不同怎么去配置


这张图不知道能不能看得明白,在src路径下根据productFlavors中的名字对应创建不同的包名,在每个包下都可以创建布局文件以及资源文件像复制应用中的闪屏页以及图标都可以在各自的文件夹中配置好,(需要注意的一点是如果是代码不同业务逻辑不同那么main中是不能有对应部分的代码的,不然打包时会冲突,但是我还没有验证过希望验证的朋友可以确认下。)所有的配置都已经完成。下面就是打包然后发布此处不再细说。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,530评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,256评论 19 139
  • 1.介绍 如果你正在查阅build.gradle文件的所有可选项,请点击这里进行查阅:DSL参考 1.1新构建系统...
    Chuckiefan阅读 12,229评论 8 72
  • 陪伴是最好的教育,这是最近看到香港第一位女特首--郑月娥的挂在嘴边的告白,我深有感触。我不由自主的想到自己的女儿,...
    铃铛211阅读 261评论 0 3
  • 有个叫侯虹斌的男人在腾讯大家发了一篇文章,叫《为什么现在中国电影的女主角都是“处女脸”》,根据电影《美人鱼》吧啦吧...
    王不王阅读 19,636评论 30 113