Gradle-Android 实战应用

  关于gradle的基础了解,提供一个中文指南,不了解gradle的需要先看指南。

  大多数Android用户使用gradle的初始目的很简单,就是多渠道打包,那么我们就来说说多渠道打包的问题(这里以友盟举例)

  多渠道打包的关键之处在于,定义不同的product flavor,并把 AndoridManifest中的channel渠道编号替换为对应的渠道名,我们在AndroidManifest文件下的application根节点进

行如下配置:

  

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

  然后进入你的build.gradle(注意这里是Module gradle,不是Project gradle,本文中提到的build.gradle都是module的)中的android节点下的productFlavors配置:

android {
    // 你的其他配置代码

    productFlavors {
        yingyongbao {
            manifestPlaceholders = [ CHANNEL_NAME:"YINGYONGBAO"]
        }
        umeng {
            manifestPlaceholders = [ CHANNEL_NAME:"UMENG" ]
        }
        wandoujia {
            manifestPlaceholders = [ CHANNEL_NAME:"WANDOUJIA" ]
        }

    }
    // 你的其他配置代码
}

mete-data中的value=“${CHANNEL_NAME}”实际上只是个占位符,它在build.gradle中会根据不同的渠道名称替换成不同的值,由此来实现多渠道打包,不需要在原始的清单

文件下写一堆与项目没多大关系的东西,把构建项目集中到build.gradle中。这里manifestPlaceholders可以用来替换AndroidManifest下的占位符号,当然不只是替换渠道包这么单

一的功能,举个例子比方说我们的清单文件中配置的activity,我们也可以用占位符先占着${activity},然后在不同的渠道中配置不同的activity的完整名称,那么在不同的渠道下就会

加载不同的activity。

  下面在介绍一个常用的功能,在每一个gradle构建的项目中都有gradle-wrapper.properties文件,在该文件中配置签名信息:

RELEASE_KEY_PASSWORD=xxxx
RELEASE_KEY_ALIAS=xxx
RELEASE_STORE_PASSWORD=xxx
RELEASE_STORE_FILE=../.keystore/xxx.jks


  然后在build.gradle中直接引用就可以

android {
    signingConfigs {
        release {
            storeFile file(RELEASE_STORE_FILE)
            storePassword RELEASE_STORE_PASSWORD
            keyAlias RELEASE_KEY_ALIAS
            keyPassword RELEASE_KEY_PASSWORD
        }
    }
}


  继续新功能,buildtype定制参数:

android {
        debug {
            manifestPlaceholders = [app_label:"@string/app_name_debug"]
            applicationIdSuffix ".debug" //增加id后缀
            minifyEnabled false  //混淆
            signingConfig signingConfigs.debug //使用签名
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        release {
            manifestPlaceholders = [app_label:"@string/app_name"]
            minifyEnabled true
            shrinkResources true  //去除无用资源
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        preview{
            manifestPlaceholders = [app_label:"@string/app_name_preview"]
            applicationIdSuffix ".preview"
            debuggable true // 保留debug信息
            minifyEnabled true
            shrinkResources true
            signingConfig signingConfigs.preview
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}


  自定义导出APK名称:androidstudio默认只会打出debug和release包,当又多个渠道和变种版本时,一下几十个包,打出来都不知道谁是谁了,那么通过名称分类很重要

  

android {
    // rename the apk with the version name
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            output.outputFile = new File(
                    output.outputFile.parent,
                    "ganchai-${variant.buildType.name}-${variant.versionName}-${variant.productFlavors[0].name}.apk".toLowerCase())
        }
    }
}

  当然如果只是当作一个工具在用的话,看看指南在看看这个帖子,就到这了。如果你很闲或者你很有兴趣推荐一个 gradle博客






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了满足广大Android开发爱好者与从业者的学习需求,我们精心整理并上传了一份全面而实用的Android项目资源包。这份资源包内容丰富,涵盖了从基础知识到实战应用的全方位内容,旨在为开发者们提供一个便捷、高效的学习平台。 一、文件手册 资源包中的文件手册部分,详细记录了Android开发的核心知识点和常用技术。无论是初学者还是有一定经验的开发者,都能从中找到所需的学习资料。手册采用了简洁明了的排版方式,使得查阅更加方便快捷。同时,手册内容深入浅出,既适合新手入门,也能为老手提供有价值的参考。 二、项目实战与练习 为了让学习者能够将理论知识与实践相结合,我们特别准备了项目实战与练习部分。这部分内容包含了多个精心设计的Android项目案例,从需求分析、设计思路到实现过程,都有详细的讲解和代码示例。学习者可以通过实际操作,深入了解Android开发的整个流程,提升自己的实战能力。 此外,我们还提供了一系列练习题,旨在巩固所学知识,检验学习成果。这些练习题既有基础题,也有难度较高的挑战题,适合不同层次的学习者进行练习。 三、Android开发工具集 在Android开发过程中,选择合适的工具能够大大提高开发效率。因此,我们整理了常用的Android开发工具集,包括开发工具、测试工具、性能优化工具等。这些工具都是经过我们精心筛选和测试的,能够帮助开发者们更加高效地进行Android开发工作。 总的来说,这份Android项目资源包是一份不可多得的学习资料,无论你是初学者还是有一定经验的开发者,都能从中受益匪浅。我们希望通过这份资源包,为广大Android开发爱好者与从业者提供一个更加便捷、高效的学习平台,共同推动Android开发领域的发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值