一站式开发一个安卓APP-测试与发布篇(build variants的应用)

上一篇把APP的开发工作做完了。

我们的APP进程进入了测试发布阶段。

对于测试和发布我们有这样的需求:

1、测试的包和发布的包可以同时装在同一台手机上,方便开发人员调试

开发人员需要随时调试测试包,同时又需要处理线上的问题,那线上的问题需要生产包去复现和调试。这时如果测试包和生产包同名的话,就无法同时安装,需要卸载一个才能装另外一个。

2、生产包中的一些环境变量需要跟测试环境区分开来

比如日志调试的开关,在测试环境需要打开,在生产环境需要关闭;接口地址变量也是同样如此。这些变量如果生产和测试都写在同一个class文件里面,那环境切换时就需要改动这个文件做相应的切换。这样很麻烦,而且很容易搞错。

这些问题google也同样遇到了。他们在开发android studio中通过build variants功能来达到目的。

首先看第一个问题:

怎么把同一个工程的测试包和生产包装到同一台手机上

原理很简单,只要包名不一样android就会认为是两个应用。

因此我们在配置build variants时,分别配置debug和release两个variants。

在这里插入图片描述
在android studio的菜单>build>edit build types中对debug的applicationId做特殊配置,在默认报名上加个.debug:

在这里插入图片描述
完成之后,我们可以看到app的build.gradle文件的变化:

build.gradle
这时我们构建debug的包时,包名已经跟release不一样了。为了在手机上区分,我们可以对应用名也做个区分,比如debug可以用easy_call-debug这样。我们同样可以通过变量替换来处理。这里就不赘述了。

再看第二个问题

如何做到切换build variants时自动切换一些环境变量

1、把工程切到protects模式,在app>src目录下,新建文件夹debug和release,并在其目录下新建java文件夹。

project
2、在java文件夹下新建包名和环境变量文件:
Variants
我这里新建了一个config包,在下面新建了一个Variants.java。里面放置了日志开关变量。

然后把同样的文件拷贝到release下,把isDebug变量的值改成false即可。

这样,我们在切换variants时会自动选择不同variants下的java文件。

这样就比手动去改配置文件省事和可靠很多。

OK,做到这里,我们打测试包和生产包都很轻松了。

如果要给别人测试,不想发apk包文件的话,可以把apk文件上传到fir.im站点上,这样,就可以直接通过二维码来传递安装包,非常方便。

项目源码地址:https://github.com/luoxizhong/LockScreen-ElderlyScreen

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值