package com.example.buildvariantsdemo
import android.os.Bundle
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val messageTextView = findViewById<TextView>(R.id.messageTextView)
messageTextView.text = BuildConfig.BUILD_MESSAGE
}
}
// In build.gradle (Module: app) add inside android block:
// buildTypes {
// debug {
// buildConfigField "String", "BUILD_MESSAGE", '"This is DEBUG build"'
// }
// release {
// buildConfigField "String", "BUILD_MESSAGE", '"This is RELEASE build"'
// minifyEnabled false
// proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
// }
// }
// In res/layout/activity_main.xml:
// <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
// android:layout_width="match_parent"
// android:layout_height="match_parent"
// android:gravity="center"
// android:orientation="vertical">
//
// <TextView
// android:id="@+id/messageTextView"
// android:layout_width="wrap_content"
// android:layout_height="wrap_content"
// android:textSize="24sp" />
// </LinearLayout>We use buildConfigField in the build.gradle file to define a string constant BUILD_MESSAGE that differs between debug and release builds. In the MainActivity, we set the TextView text to this constant. This way, when you run the app in debug mode, it shows "This is DEBUG build", and in release mode, it shows "This is RELEASE build". This demonstrates how build variants can change app behavior or content easily.