这里 isCrunchPngs = false 设置正确吗?

问题描述 投票:0回答:1

我使用 Kotlin 在 Android Studio 中制作一个应用程序。我在这里阅读了有关构建类型的信息:https://developer.android.com/build/build-variants。该页面指出:

Android Studio 自动创建调试和发布构建类型。

虽然 debug 构建类型没有出现在构建配置文件中,但 Android Studio 将其配置为 debuggable true。

未出现的构建类型似乎很难配置设置。我想为发布和调试构建类型设置 isCrunchPngs = false,以提高性能。 (我已经手动处理/优化了它们,项目中不存在未处理的版本)。

但是,我无法判断 isCrunchPngs 是否实际上正确设置为 false。它不会出现在项目结构 GUI 中: enter image description here

我什至不知道我是否正在使用发布版本(这是一个单独的问题,我将很快发布)

  • 我是否正确配置了发布版本以不压缩 png?
  • 如何将调试版本配置为不处理 png,因为调试版本不会出现在 build.gradle 中?
  • 在 buildFeatures{ 部分中,
    viewBinding
    compose
    设置为 true,但是对于哪种构建类型?只发布,只调试,两者兼而有之?

我对多个问题表示歉意,我认为它们密切相关,足以合并在一篇文章中。

我永远的感激之情!

我的build.gradle如下:

plugins {
    alias(libs.plugins.androidApplication)
    alias(libs.plugins.jetbrainsKotlinAndroid)
    id("com.google.gms.google-services")
}

android {
    namespace = "com.example.vyze"
    compileSdk = 34

    defaultConfig {
        applicationId = "com.example.vyze"
        minSdk = 24
        targetSdk = 34
        versionCode = 1
        versionName = "1.0"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables {
            useSupportLibrary = true
        }
    }

    buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
            isCrunchPngs = false
        }
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }

    buildFeatures {
        viewBinding = true
        compose = true
    }
    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.1"
    }
    packaging {
        resources {
            excludes += "/META-INF/{AL2.0,LGPL2.1}"
        }
    }
}

dependencies {

    implementation(libs.androidx.core.ktx)
    implementation(libs.androidx.appcompat)
    implementation(libs.material)
    implementation(libs.androidx.activity)
    implementation(libs.androidx.constraintlayout)
    implementation(libs.firebase.auth)
    implementation(libs.androidx.lifecycle.runtime.ktx)
    implementation(libs.androidx.activity.compose)
    implementation(platform(libs.androidx.compose.bom))
    implementation(libs.androidx.ui)
    implementation(libs.androidx.ui.graphics)
    implementation(libs.androidx.ui.tooling.preview)
    implementation(libs.androidx.material3)
    implementation(libs.firebase.firestore)
    testImplementation(libs.junit)
    androidTestImplementation(libs.androidx.junit)
    androidTestImplementation(libs.androidx.espresso.core)
    androidTestImplementation(platform(libs.androidx.compose.bom))
    androidTestImplementation(libs.androidx.ui.test.junit4)
    debugImplementation(libs.androidx.ui.tooling)
    debugImplementation(libs.androidx.ui.test.manifest)
}
android android-studio gradle android-gradle-plugin
1个回答
0
投票

这是您所有问题的快速解答

我什至不知道我是否正在使用发布版本

您可以通过参考指南从 Android Studio 生成发布版本这里

我是否配置了发布版本以正确处理 png?

是的,从您的

build.gradle.kts
代码中看来是这样的

如何将调试版本配置为不处理 png,因为调试版本不会出现在 build.gradle 中?

您可以像这样简单地添加调试构建变体,并根据您的需求进行自定义

buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
            isCrunchPngs = false
        }
        debug {
           // Configure your debug build here
        }
    }

在 buildFeatures 部分,viewBinding 和 compose 设置为 true,但是对于哪种构建类型?只发布,只调试,两者兼而有之?

是的,这些功能实际上与构建类型根本无关,启用它们将为您的所有构建变体启用它们。如果您有选择地启用撰写或查看绑定,您将如何构建您的应用程序。你不能

© www.soinside.com 2019 - 2024. All rights reserved.