美文网首页
android flavor在开发中的应用

android flavor在开发中的应用

作者: 我弟是个程序员 | 来源:发表于2017-07-27 11:57 被阅读0次

    今天要说的不是多渠道打包问题。
    我们先来看这么一个场景,你有没有在要发布版本的时候,代码写完后,刚把apk打包好,突然想起来,我艹,使用的是内网开发环境,这样,你又不得不重新改域名,改一些必要的配置,然后又重新打包,这样是不是很头疼的事情。或者说,你们公司是做产品的,但是由于公司市场需求,需要一个和你现在开发的产品差不多的,但是就是应用图标和名称不同的app,先给客户看看。这样,你是不是又的新建一个项目,把你公司的产品代码copy过去,然后,修改图标,修改名称...如果是这样,那简直了是low爆了。下面,我要说的就是在同一个工程当中,建立多个版本,有的可以用来测试,有的可以用来发布,而他们的共同代码是通用的,只是差异代码放在各自的分支上。

    首先你要在gridle文件中添加以下节点,internal 和dev 随你取名,用来分表代表内测版本和开发版本的各自的差异代码声明:

    android {
     ...
    
        productFlavors {
            internal {
    //            applicationId "com.dingfang.org.internal"
           ndk {
                abiFilters "armeabi-v7a"
                abiFilters "x86"
                abiFilters "armeabi"
            }
    
            }
            dev {
    //            applicationId "com.dingfang.org.dev"
    
              ndk {
                abiFilters "armeabi-v7a"
                abiFilters "x86"
                abiFilters "armeabi"
                abiFilters "arm64-v8a"
                abiFilters "x86_64"
              }
            }
        }
    }
    

    然后建立如下的代码结构:

    在dev和internal下,如果差异的是java代码,那么包名必须得和main下的一样。如果是res资源文件,那么创建的也必须是相同目录结构下的文件。需要注意的是,dev和internal的文件,不能和main下的文件重名,资源文件名也是同理。
    详情可以参考:如何使用Gradle构建不同版本的app?

    相关文章

      网友评论

          本文标题:android flavor在开发中的应用

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