MN HKD

Tải ứng dụng phiên bản mới nhất để tạo sổ sách cho tất cả 4 nhóm hộ kinh doanh theo thông tư 152/2025/TT-BTC.

So sánh build.gradle trong root-level và build.gradle trong module-level

01/08/2024

1. Giới thiệu:

Tệp “build.gradle” trong Android Studio được sử dụng để cấu hình quy trình xây dựng (build) cho dự án. Một dự án thường có ít nhất hai tệp build.gradle: một ở cấp độ root (root-level) và một hoặc nhiều tệp khác ở cấp độ module (module-level). Dưới đây là sự khác biệt và chức năng của từng tệp:

2. build.gradle ở cấp độ root (root-level):

Tệp build.gradle ở cấp độ root thường chứa các cấu hình và khai báo dùng chung cho toàn bộ dự án. Nó bao gồm các thiết lập cho hệ thống build, repository, và các plugin được áp dụng cho toàn bộ dự án.

Ví dụ:

// Root-level build.gradle
buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.0'
        // Các dependency khác cho Gradle build script
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Các thành phần chính:

buildscript:

  • repositories: Định nghĩa các kho lưu trữ nơi Gradle sẽ tìm kiếm các plugin và dependency.
  • dependencies: Định nghĩa các plugin cần thiết cho việc xây dựng dự án, chẳng hạn như plugin Android Gradle.

allprojects:

  • repositories: Định nghĩa các kho lưu trữ được sử dụng bởi tất cả các module trong dự án.

task clean: Định nghĩa một task tùy chỉnh để xóa thư mục build.

3. build.gradle ở cấp độ module (module-level):

Tệp build.gradle ở cấp độ module chứa các cấu hình xây dựng cụ thể cho từng module riêng lẻ (chẳng hạn như ứng dụng hoặc thư viện). Nó bao gồm các thiết lập về SDK, dependency, build types, và các cấu hình đặc thù khác cho module đó.

Ví dụ:

// Module-level build.gradle (app module)
apply plugin: 'com.android.application'

android {
    compileSdkVersion 30
    defaultConfig {
        applicationId "com.example.myapplication"
        minSdkVersion 21
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation 'androidx.appcompat:appcompat:1.3.0'
    implementation 'com.google.android.material:material:1.3.0'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

4. Các thành phần chính:

  • apply plugin: Áp dụng plugin Android application để chỉ định đây là module ứng dụng.
  • android:
    • compileSdkVersion: Phiên bản SDK dùng để biên dịch ứng dụng.
    • defaultConfig: Các cấu hình mặc định như applicationId, minSdkVersion, targetSdkVersion, versionCode, và versionName.
    • buildTypes: Định nghĩa các kiểu build như release, bao gồm các thiết lập như minifyEnabled và proguardFiles.
  • dependencies: Định nghĩa các dependency cụ thể cho module này, bao gồm các thư viện cần thiết cho quá trình phát triển, kiểm thử, và chạy ứng dụng.

5. So sánh:

  • Phạm vi (Scope):
    • build.gradle root-level: Cấu hình chung cho toàn bộ dự án, bao gồm các repository và plugin sử dụng bởi tất cả các module.
    • build.gradle module-level: Cấu hình riêng cho từng module, bao gồm các thiết lập cụ thể về build, dependency và các kiểu build.
  • Mục đích (Purpose):
    • build.gradle root-level: Quản lý các plugin, repository chung và các task build tùy chỉnh dùng cho toàn bộ dự án.
    • build.gradle module-level: Định nghĩa chi tiết về cách module cụ thể được build, bao gồm cấu hình SDK, applicationId, và dependency cụ thể cho module đó.
  • Nội dung chính (Main Content):
    • build.gradle root-level: buildscript, allprojects, các task build tùy chỉnh.
    • build.gradle module-level: apply plugin, android {}, dependencies {}, các cấu hình build types.

6. Kết luận:

Tệp build.gradle ở cấp độ root và module đều cần thiết cho việc xây dựng dự án Android. Tệp ở cấp độ root cung cấp các thiết lập và plugin chung, trong khi tệp ở cấp độ module cung cấp các cấu hình chi tiết cho từng module cụ thể. Sự phân chia này giúp quản lý dự án trở nên rõ ràng và dễ dàng hơn, đặc biệt là khi làm việc với các dự án lớn và phức tạp có nhiều module.

Tải Ứng Dụng MN HKD

Quản lý kế toán hộ kinh doanh dễ dàng, mọi lúc mọi nơi