plugins {
    // 应用 Android 应用插件（通过别名引用 libs 中的插件配置，需在 settings.gradle 中定义依赖）
    alias(libs.plugins.android.application)
}

android {
    // 配置 Android 项目的命名空间（Android Studio Arctic Fox 及以上版本推荐设置）
    namespace 'net.micode.notes'
    // 设置编译 SDK 版本（使用 Android API 35 进行编译）
    compileSdk 35

    packaging {
        // 资源打包配置：排除不需要的文件（避免与第三方库的资源冲突）
        resources {
            resources.excludes.add("META-INF/DEPENDENCIES");
            resources.excludes.add("META-INF/NOTICE");
            resources.excludes.add("META-INF/LICENSE");
            resources.excludes.add("META-INF/LICENSE.txt");
            resources.excludes.add("META-INF/NOTICE.txt");
        }
    }

    defaultConfig {
        // 应用唯一标识符（需与 AndroidManifest.xml 中的 package 保持一致）
        applicationId "net.micode.notes"
        // 最小支持的 Android 版本（API 24 = Android 7.0）
        minSdk 24
        // 目标 Android 版本（建议与 compileSdk 保持一致）
        targetSdk 35
        // 版本号（用于内部版本控制，整数，递增）
        versionCode 1
        // 版本名称（显示给用户的版本号，字符串）
        versionName "1.0"

        // 测试工具运行器（用于 Android  instrumentation 测试）
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            // 发布版本配置
            minifyEnabled false // 关闭代码混淆（true 为开启，需配合 ProGuard 规则）
            // ProGuard 规则配置（优化版 Android 基础规则 + 自定义规则文件）
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

    compileOptions {
        // Java 编译选项（统一项目 Java 版本为 11）
        sourceCompatibility JavaVersion.VERSION_11 // 源文件兼容性
        targetCompatibility JavaVersion.VERSION_11 // 目标字节码兼容性
    }
}

dependencies {
    // HTTP 客户端库（注意：Android 6.0+ 需动态申请网络权限）

    implementation("org.apache.httpcomponents:httpclient:4.5.14")

    // AndroidX 支持库
    implementation libs.appcompat       // AppCompat 兼容性库（必选）
    implementation libs.material        // Material Design 组件库
    implementation libs.activity        // Activity 组件扩展库
    implementation libs.constraintlayout// 约束布局库（推荐的布局方式）

    // 测试依赖
    testImplementation libs.junit        // JUnit 4 测试框架（本地单元测试）
    androidTestImplementation libs.ext.junit // AndroidX JUnit 扩展（Instrumentation 测试）
    androidTestImplementation libs.espresso.core // Espresso UI 自动化测试库
}