productFlavors的简单分析(一)

作者: Only凹凸曼 | 来源:发表于2016-11-07 23:32 被阅读950次

    背景

    自从使用的Android Studio作为开发工具之后,感觉Eclipse开发Android简直是弱爆了,Android Studio的提示和编译都特别的强大,当然他的强大之处肯定也少不了我们今天要讲的gradle。

    更换包名

    大家在使用Eclipse开发时候肯定也遇到过更换包名这种丧心病狂的需求,那个麻烦啊简直是让人咬牙切齿,各种配置,各种包路径,都得要改,一遍一遍的编译,一遍一遍的测试,直到确保所有的位置都修改位置,这个并不难,但是繁琐,程序员最害怕的不是问题,而是那些无聊的需求。用上了grad le来构建项目之后你会发现,一切都是这么简单,更换包名只需要修改一下applicationid就可以了,当然我们需要配置一些不同包名下的第三方SDK的id比如某宝和某信的支付。

    分包名构建

    这下就要轮到我们的productFlavors出场了,它可以帮助我们构建不同的版本,并且设置一些差异性的参数。
    productFlavors{ prod{ applicationId 'com.zxf.prod' } alpha{ applicationId 'com.zxf.alpha' } dev{ applicationId 'com.zxf.dev' } }

    分环境编译

    在我们开发的时候,我们必然会碰到需要不同编译参数的编译方式,最常见也是gradle自带的两种就是debug模式和release模式,这些我们可以通过buildType来进行区分,这个使用的比较少。

    重点来了

    上面两种在我们只有一个主的工程项目的使用起来相对来说还是比较简单的,但是当我们的项目拆分成了多个module的时候,特别是某一个module要在不同包名的情况下实现不同功能的时候,这个就比较有用了。
    那么我们上面说的情况有几种实现方法呢:

    1. 单独建立一个module改变包名的时候手动去更换引用的包
    2. 利用gradle.properties来配置一个变量,来区分是要加载哪一个module,这种方式也不需要手动切换module,每次只需要改变变量的boolean值就可以。
    3. 利用productFlavors来进行配置,但是我们试用之后会发现在module里面简单的配置并不能实现,我们需要在module的build.gradle文件里面加上
      android{ defaultPublishConfig "peodRelease" publishNonDefault true }
      再来配置我们的productFlavors的时候就可以实现分包名了

    总结

    建党讲解了一下,程序主入口和应用的module分别怎么利用productFlavors来进行按包名动态加载代码,具体实现和踩过的一些坑我会下一次写出来与大家分享和讨论。

    相关文章

      网友评论

        本文标题:productFlavors的简单分析(一)

        本文链接:https://www.haomeiwen.com/subject/djmouttx.html