Flavors

来源:互联网 发布:sweetalert2.min.js 编辑:程序博客网 时间:2024/06/04 19:28

今天打包别人的代码时发现个神奇的东西,打包到最后需要选择flavors?什么鬼?当时随便选了一个,之后经理跟我说apk有问题登陆不成功,问我端口改了没,我记得我改了打包的啊。然后立马改掉端口后重新打包,接着神奇的事情发生了,眼看着我刚改掉的端口在我的眼皮子底下在运行编译的时候变。。变。。。变回去了。。回去了。。。嗯?然后才发现这个文件的上方有一行提示“Files under the build folder are generated and should not be edited”对了这个文件叫(BuildConfig)虽然后来觉得自己居然改这个文件挺傻x的。
不过当时就想着:what??????不能编辑?这就。。。好吧,我见识短,没见过,这是啥?

正文来了:

  • 简单百度了一下,发现原来这么用的(我的首要目的是先把端口改了,给经理打个包,顺便知道了这玩意好神奇)
  • 先看一下这个之前我从未踏足的一个地方,不知道的这么多,活到现在也是不容易哈。路径:\app\build\generated\source\buildConfig\debug\BuildConfig.java
  • 这里写图片描述
    原来每个工程编译之后都有默认的debug和release文件,他们里面就是不可编辑的BuildConfig文件,哈哈。看看都是啥:
    这里写图片描述
    那个id号,我猜的应该就是包名,自动生成的嘛,不过你想新建的话也可以改,没试改了是什么鬼,但我发现了不需要那么麻烦新建去,就不记录了,需要再百度吧。
    这里的东西,细心的我发现和我build.gradle中的一段内容一样嘛
    这里写图片描述
    搜嘎!
  • 现在大概知道了它在哪儿,和什么有关,接下来必须的知道它有什么用?可以用来干什么?来了来了。。。看着:
  • 这个代码的原主人,多了这样一句:
    这里写图片描述
    好了,不兜圈子了,就是他在换ip地址,这是一种很方便的切换各种ip/端口的方式,(例如:我们在开发的时候,有测试ip地址和发布的正式版ip地址;还有的项目,像我这个项目,不同的店的apk有不同的端口号,给不同的店打包就需要切换不同的端口号)以前都是注释好一堆,打包的时候就放开一个注释其他的。每次都改代码,虽然没有很麻烦但绝对没有这个方便,真的,你看,只需要这里多写一句这个。当然,现在说的这些都是在build.gradle里的android{里},然后加一段这个:这里写图片描述“wangjing”这种名字是自己定的,“String”是字段“HOST”的类型,“http。。。”是“HOST”的值。我猜的,自己理解一下吧。就这个意思。
    编译之后,神奇的事情发生了:这里写图片描述
    BuildConfig里比默认的时候多了一句:
    public static final String HOST = “http://。。。。/api/”;
  • 到这里配置完了,看,以后想换不同的ip/端口的时候怎么换:左下角的Build Variants点击选吧,不用管现在有什么类型的BuildConfig文件,也不用看当前的BuildConfig里是什么内容,选一个你就运行吧,它会自动生成的 。
    这里写图片描述
    特别完美,如果配对了,这里选择一个,想当前运行什么ip的就运行什么的。you没有很帅?

对了,用的时候这么用,点出来就可以,你随便在哪儿里用
这里写图片描述

我知道可能看不太懂,我表达能力有限,这是笔记做的话最多的一个了,以后慢慢提升。还有个比较重要的关于全局定时器的技术点一直没时间记录,别到时候给忘了。