Android Gradle优化的正确姿势 编译优化 APK优化

目前Android开发主流的编译工具是Gradle,虽然后最快的编译工具并不是它,但它的优势就是它是亲儿子。它与Android Studio的关系非常密切,很多配置都是默认配置好的,开发起来极其方便。但是编译速度相对较慢。

了解Gradle的编译原理,学习如何优化Gradle对开发效率的提高尤为重要。

Gradle的优化,主要分为两大方面:

1、包大小优化;

2、编译速度优化。

Gradle目录(如已了解,跳过看优化)

首先,我们来了解一下Gradle的基础目录结构。

 setting.gradle:定义了需要加入编译的依赖module,Android Studio里面一般都是默认生成的。如:

include ':app', ':lib_iflytek', ':BlueMoonSDK'

外层build.gradle:全局的配置文件,一般配置maven下载地址,gradle的版本配置等。我们一般不会在这里面操作太多共有的东西,保证每个module的独立性。repositories就是代码仓库,Gradle 支持三种类型的仓库:Maven,Ivy和一些静态文件或者文件夹。如:

buildscript {
    repositories {
        jcenter()
        google()//3.0+版本默认加上的
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'
    }
}

allprojects {
    repositories {
        jcenter()
        google()
        maven {
            url "https://jitpack.io"//这里是配置maven的下载地址
        }
    }
}

 gradle-wrapper.properties:这里配置gradle的包版本,主要跟外层build.gradle的calsspath配置的版本对应。3.1.3对应的是4.4。wrapper 有版本区分,但是并不需要你手动去下载,当你运行脚本的时候,如果本地没有会自动下载对应版本文件。如:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

内层build.gradle:每个module单独的配置文件。如果这里的定义的选项和外层build.gradle定义的相同,后者会被覆盖。大部分关于Android的配置都是在这里完成。具体还是直接根据代码来分析吧。以app目录下的build.gradle为例。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.3'

    signingConfigs {
        release {
            storeFile file('./Json20170206.keystore')
            storePassword "storePassword"
            keyAlias "keyAlias"
            keyPassword "keyPassword"
        }
    }

    defaultConfig {
        applicationId "cn.com.json.toall"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"

        /*个推*/
        manifestPlaceholders = [
                GETUI_APP_ID    : "GETUI_APP_ID",
        ]
        ndk {
            abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "mips", "mips64", "x86", "x86_64"
        }
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
         
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Gradle是一种用于构建和管理Android应用程序项目的工具。它的一个重要功能就是打包和编译资源。 在Android Gradle中,资源是指应用程序使用的各种非代码文件,如图像、布局文件、字符串、样式等。这些资源文件需要经过打包和编译的过程才能被应用程序使用。 打包资源的过程是指将应用程序使用的所有资源文件收集起来,打包成一个或多个二进制资源文件(.arsc),以方便应用程序在运行时访问。这个过程由Gradle的打包任务完成。打包后的资源文件会被放置在应用程序的res目录下的各个res-qualified目录中。 编译资源的过程是指将资源文件从其源文件形式编译成二进制格式,以便应用程序可以在运行时使用它们。这个过程由Android资源编译器(AAPT)完成。编译资源的过程包括对资源文件进行验证、解析和优化,最终生成资源文件的二进制表示形式。 要在Android Gradle项目中进行资源的打包和编译,我们需要在项目的build.gradle文件中配置相应的构建规则和参。其中,可以通过设置资源文件的名称、路径、扩展名等属性来指定要打包和编译的资源文件。此外,还可以通过配置资源的qualifier(如屏幕密度、语言等)来实现对不同设备和语言环境的资源适配。 通过Android Gradle的打包和编译资源功能,我们可以方便地管理和使用应用程序的各种资源文件,使应用程序在不同设备和语言环境下都能正确地加载和显示相应的资源。这对于开发多语言和多平台的应用程序来说,是非常重要的。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值