我使用 Kotlin 在 Android Studio 中制作一个应用程序。我在这里阅读了有关构建类型的信息:https://developer.android.com/build/build-variants。该页面指出:
Android Studio 自动创建调试和发布构建类型。
虽然 debug 构建类型没有出现在构建配置文件中,但 Android Studio 将其配置为 debuggable true。
未出现的构建类型似乎很难配置设置。我想为发布和调试构建类型设置 isCrunchPngs = false,以提高性能。 (我已经手动处理/优化了它们,项目中不存在未处理的版本)。
但是,我无法判断 isCrunchPngs 是否实际上正确设置为 false。它不会出现在项目结构 GUI 中:
我什至不知道我是否正在使用发布版本(这是一个单独的问题,我将很快发布)
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 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,但是对于哪种构建类型?只发布,只调试,两者兼而有之?
是的,这些功能实际上与构建类型根本无关,启用它们将为您的所有构建变体启用它们。如果您有选择地启用撰写或查看绑定,您将如何构建您的应用程序。你不能