android studio中批量混淆打包

as中添加混淆的功能需要在as自动生成的build.gradle中添加如下代码:

buildTypes {
    release {
        //混淆规则文件 1.true 混淆 2.false 不混淆
        minifyEnabled true
       proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg'
    }
}
其中:
proguard.cfg可以改成其他文件中,其中包含的是混淆的代码和不需要混淆的代码
as中给apk添加签名

signingConfigs {
    myConfig {
        //绝对路径和相对路径都可以
        storeFile file("******")
        storePassword "******"
        keyAlias "name"
        keyPassword "******"
    }}

buildTypes {
    release {
        //1.添加签名
	signingConfig  signingConfigs.myConfig
}}
如果项目中存在.so文件的话需要添加如下代码
sourceSets {
    main {
        jniLibs.srcDirs = ['libs']
    }
}
批量打包代码:
productFlavors {
    91{}//渠道号
    baidu{}//渠道号
}

productFlavors.all {
    flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
其中

${UMENG_CHANNEL_VALUE}是在AndroidManifest.xml配置的

 <meta-data
      android:name="UMENG_CHANNEL"
      android:value="${UMENG_CHANNEL_VALUE}" />


完整代码如下:

apply plugin: 'com.android.application'


dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':*******')//关联项目
}


android {
    compileSdkVersion 19
    buildToolsVersion "23.0.2"


    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
            jniLibs.srcDirs = ['libs']
        }


        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')


        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }


    signingConfigs {
        myConfig {
            //绝对路径和相对路径都可以
            storeFile file("******")
            storePassword "******"
            keyAlias "name"
            keyPassword "******"
        }
    }


    buildTypes {
        release {
            //1.添加签名
            signingConfig  signingConfigs.myConfig
            //混淆规则文件 true 混淆 false 不混淆
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg'
        }
    }


    productFlavors {
        91{}
        baidu{}
    }


    productFlavors.all {
        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }


    lintOptions {
        abortOnError false
        // if true, only report errors
        ignoreWarnings true
    }
}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值