美文网首页
Android多渠道打包(Assets处理)

Android多渠道打包(Assets处理)

作者: 十一月的肖邦_ShawEW | 来源:发表于2019-02-14 17:18 被阅读0次

    最近在项目中遇到apk定制化打包需求,所以就研究多渠道打包。

    build.gradle 中部分配置代码如下

    
    defaultConfig{
    
        applicationId "com.hz.epollbook"
    
        minSdkVersion 16
    
        targetSdkVersion 27
    
        versionCode 1
    
        versionName "1.0.1.58"
    
        // 设置MultiDex可用
    
        multiDexEnabled true
    
        //必须要保证所有的flavor 都属于同一个维度 否则会报错All flavors must now belong to a named flavor dimension
    
        flavorDimensions "default"
    
    }
    
    productFlavors{
    
        flavors_local{}
    
        flavors_qld{}
    
        flavors_qld_demo{}
    
        flavors_qld_test{}
    
    }
    
    //打包输出配置
    
    android.applicationVariants.all{ variant ->
    
    variant.outputs.all{
    
            outputFileName= "${variant.productFlavors[0].name}_v${variant.versionName}.apk"
    
        }
    
    }
    
    buildTypes{
    
        release{
    
            buildConfigField"Boolean","DEBUGGER","false"
    
            minifyEnabled true
    
            proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
    
            signingConfig signingConfigs.votingsystem
    
        }
    
        debug{
    
            buildConfigField"Boolean","DEBUGGER","false"
    
            minifyEnabled false
    
            proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
    
            signingConfig signingConfigs.votingsystem
    
        }
    
    }
    
    sourceSets{
    
        main{
    
            assets.srcDirs = ['src/main/assets']
    
        }
    
        flavors_local{
    
            assets.srcDirs = ['src/local/assets']
    
        }
    
        flavors_qld{
    
            assets.srcDirs = ['src/qld/assets']
    
        }
    
        flavors_qld_demo{
    
            assets.srcDirs = ['src/qld_demo/assets']
    
        }
    
        flavors_qld_test{
    
            assets.srcDirs = ['src/qld_test/assets']
    
        }
    
    }
    
    

    项目结构目录中

    image

    ps:不同flavors中的assets 存放不同的文件,相同的可以存放在main中。打包时会将所有打到一起。

    多渠道打包命令

    打全部包: gradle assemble

    打全部 Debug 包: gradle assembleDebug ,可以简写为 gradle aD ,前提是没有相同缩写的参数

    打全部 Release 包: gradle assembleRelease,可以简写为 gradle aR

    打指定 flavor 包: gradle assemble(flavor)(Debug|Release)

    打包完成后安装(设备上没有安装该 apk ,否则会失败,而且只能指定 flavor ,不然也会失败): gradle install(flavor)(Debug|Release)

    打包前先 clean 一下(在测试的时候很必要,如果不 clean 的话,可能会导致某些小修改不会及时打入新包): gradle clean assembleDebug

    相关文章

      网友评论

          本文标题:Android多渠道打包(Assets处理)

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