SDK Platform: nó là gì, các phiên bản và Android SDK Manager

Tác giả: IT Sectr Đã đăng: 2026-02-09 Thời gian đọc: 11 phút

Android SDK Platform là một tập hợp các thư viện, hình ảnh hệ thống và công cụ cho một phiên bản cụ thể của hệ điều hành. Mỗi nền tảng được gắn với API Level của nó và bao gồm android.jar với các lớp Android API, thành phần runtime và trình giả lập. Theo Google Developer Documentation, 2026, các nhà phát triển sử dụng SDK Platform để biên dịch mã theo phiên bản OS mục tiêu. Nếu không có nền tảng được cài đặt, không thể xây dựng APK hoặc chạy ứng dụng trên trình giả lập. SDK Manager quản lý việc tải xuống, cập nhật và xóa các thành phần này.

Những điểm chính

  • SDK Platform — tập hợp các thư viện và công cụ cho một phiên bản Android tương ứng với một API Level cụ thể.
  • API Level — định danh số của phiên bản Android SDK xác định các lớp và phương thức có sẵn.
  • SDK Manager — công cụ để cài đặt, cập nhật và xóa SDK Platform, Tools và hình ảnh hệ thống.
  • compileSdk — phiên bản SDK Platform được sử dụng để biên dịch ứng dụng, phải là phiên bản ổn định mới nhất.
  • targetSdk — API Level mà ứng dụng đã được kiểm thử và hành vi runtime được tối ưu hóa cho nó.

SDK Platform là gì

SDK Platform là một thành phần cơ bản của Android SDK, đại diện cho một tập hợp đầy đủ các thư viện và công cụ để phát triển ứng dụng cho một phiên bản Android cụ thể. Mỗi nền tảng được xác định bằng API Level của nó — một số nguyên tăng lên khi có các bản phát hành OS mới. Ví dụ: Android 13 tương ứng với API Level 33, Android 14 với API Level 34, Android 15 với API Level 35.

Không giống như Android Studio (IDE), SDK Platform không chứa trình soạn thảo mã hay trình gỡ lỗi. Đây là một lớp hệ thống kết nối với trình biên dịch và hệ thống xây dựng. Khi một nhà phát triển viết import android.app.Activity, trình biên dịch lấy lớp này từ android.jar của một SDK Platform cụ thể. Nếu không có nền tảng được cài đặt với API Level cần thiết, mã sẽ không được biên dịch.

Google phát hành một SDK Platform mới cho mỗi phiên bản Android ổn định. Lịch sử bao gồm hơn 35 API Level — từ Android 1.0 (API 1) đến Android 15 (API 35). Mỗi nền tảng tương thích ngược: mã viết cho API Level 21 sẽ chạy trên API Level 35, nhưng không ngược lại.

Tại sao cần SDK Platform riêng cho mỗi phiên bản

Android phát triển nhanh chóng: mỗi phiên bản thêm API mới, thay đổi hành vi của các API hiện có và đưa ra các hạn chế. Ví dụ, Android 10 (API 29) đã giới thiệu Scoped Storage, Android 12 (API 31) — SplashScreen API, Android 14 (API 34) — các cờ BroadcastReceiver bắt buộc. Nhà phát triển phải biên dịch ứng dụng theo nền tảng hiện tại để sử dụng những khả năng này.

Đồng thời, ứng dụng có thể chạy trên các phiên bản OS cũ. Để làm điều này, minSdk được chỉ định trong Gradle — API Level tối thiểu mà ứng dụng chạy được. Mã sử dụng kiểm tra phiên bản và gọi API có điều kiện. Cách tiếp cận này đảm bảo tương thích mà không mất đi các tính năng mới.

Phiên bản AndroidAPI LevelTên mãNăm phát hành
Android 1231Snow Cone2021
Android 1333Tiramisu2022
Android 1434Upside Down Cake2023
Android 1535Vanilla Ice Cream2024

Thành phần của SDK Platform: các thành phần chính

SDK Platform không phải là một tệp duy nhất, mà là một tập hợp các thành phần cùng nhau đảm bảo việc biên dịch, xây dựng và kiểm thử ứng dụng. Yếu tố chính là android.jar — một kho lưu trữ với các lớp Android API có trong phiên bản này. Tệp này kết nối với trình biên dịch Kotlin hoặc Java và xác định các lớp, phương thức và chú thích có sẵn cho nhà phát triển.

Hình ảnh hệ thống và trình giả lập

Mỗi SDK Platform bao gồm một System Image — hình ảnh hệ điều hành cho trình giả lập Android Virtual Device. Nếu không có hình ảnh tương ứng, trình giả lập không thể khởi động thiết bị ảo với API Level cần thiết. System Images có nhiều loại khác nhau: Google APIs (có dịch vụ Google), Google Play (có Play Store) và AOSP (Android thuần khiết không có dịch vụ Google).

Công cụ xây dựng và gỡ lỗi

SDK Platform bao gồm phiên bản Build-Tools và Platform-Tools được tối ưu hóa cho API Level này. Build-Tools chứa aapt2 (Công cụ đóng gói tài sản Android), dx/d8 (trình biên dịch Dalvik/ART) và ApkSigner. Platform-Tools cung cấp ADB (Cầu gỡ lỗi Android), fastboot và SQLite. Các công cụ này được cập nhật độc lập với SDK Platform thông qua SDK Manager.

Tài nguyên nền tảng

Mỗi nền tảng bao gồm các tài nguyên Android tiêu chuẩn — chủ đề hệ thống, kiểu, hoạt ảnh, màu sắc và kích thước. Các tài nguyên này được sử dụng trong quá trình biên dịch: nếu nhà phát triển tham chiếu đến @android:style/Theme.Material.Light, hệ thống xây dựng sẽ lấy định nghĩa từ tài nguyên SDK Platform. Điều này đảm bảo giao diện nhất quán của các thành phần hệ thống trên tất cả các thiết bị.

Thành phầnMô tảKích thước (xấp xỉ)
android.jarThư viện Android API cho biên dịch50–120 MB
System ImageHình ảnh OS cho trình giả lập600–1500 MB
Build-ToolsCông cụ xây dựng APK và AAB200–400 MB
Platform ResourcesTài nguyên hệ thống (chủ đề, kiểu)30–80 MB
SkinsHồ sơ thiết bị cho trình giả lập10–50 MB

API Level và các phiên bản SDK Platform

API Level là một định danh số nguyên của phiên bản Android SDK. Mỗi bản phát hành Android tương ứng với một API Level tăng dần. Nhà phát triển chỉ định API Level trong ba tham số chính của build.gradle: compileSdk, minSdk và targetSdk. Việc chọn các tham số này quyết định API nào có sẵn và cách hệ thống xử lý ứng dụng.

Google khuyến nghị giữ minSdk ở mức không thấp hơn ngưỡng phân phối hiện tại — theo Android Studio Distribution Dashboard (2026), khoảng 95% thiết bị chạy Android 8.0 (API 26) trở lên. compileSdk phải là phiên bản ổn định mới nhất — điều này cung cấp quyền truy cập vào các API mới và cho phép kiểm tra lint phát hiện các phương thức lỗi thời.

Sự phát triển của API Level: các thay đổi chính

Với mỗi API Level mới, Google đưa ra các thay đổi quan trọng. Android 6.0 (API 23) đã thêm quyền runtime — ứng dụng yêu cầu quyền trong quá trình thực thi, không phải khi cài đặt. Android 8.0 (API 26) đã giới thiệu tự động điền biểu mẫu và kênh thông báo. Android 12 (API 31) đã thay đổi hoàn toàn cách tiếp cận intent — SplashScreen API xuất hiện và xuất thành phần qua thuộc tính exported. Android 14 (API 34) bắt buộc phải chỉ định cờ cho BroadcastReceiver và đưa ra các hạn chế nghiêm ngặt đối với dịch vụ nền trước.

Hiểu lịch sử của API Level giúp nhà phát triển chọn chiến lược tương thích phù hợp. Nếu ứng dụng sử dụng compileSdk 35 nhưng minSdk 26, mã chỉ có thể gọi các phương thức API 35 sau khi kiểm tra phiên bản qua Build.VERSION.SDK_INT. Cách tiếp cận này được gọi là phát triển có kiểm soát phiên bản và là tiêu chuẩn ngành.

AndroidAPINămCải tiến chính
6.0 Marshmallow232015Quyền runtime
8.0 Oreo262017Kênh thông báo, Tự động điền
10292019Scoped Storage, Chủ đề tối
12312021SplashScreen, thuộc tính exported
14342023Cờ Broadcast, Dịch vụ nền trước

SDK Manager: cài đặt và thiết lập

SDK Manager là công cụ quản lý các thành phần của Android SDK: cài đặt SDK Platform mới, cập nhật các nền tảng hiện có và xóa các nền tảng lỗi thời. SDK Manager có sẵn dưới dạng giao diện đồ họa trong Android Studio và công cụ dòng lệnh thông qua sdkmanager. Dòng lệnh của SDK Manager thuận tiện để sử dụng trong các pipeline CI/CD nơi không có giao diện đồ họa.

SDK Manager cài đặt các nền tảng vào thư mục Android SDK, mặc định nằm ở $HOME/Android/Sdk trên Linux và macOS hoặc %LOCALAPPDATA%\Android\Sdk trên Windows. Bên trong thư mục platforms có các thư mục có tên android-{API Level}, mỗi thư mục chứa SDK Platform hoàn chỉnh.

Cài đặt SDK Platform qua sdkmanager

Lệnh sdkmanager chấp nhận định danh gói theo định dạng "platforms;android-{API}". Ví dụ, để cài đặt SDK Platform 35, lệnh như sau:

bash
# Cài đặt SDK Platform cho API Level 35
sdkmanager "platforms;android-35"

# Cài đặt nhiều nền tảng bằng một lệnh
sdkmanager "platforms;android-34" "platforms;android-33" "platforms;android-31"

# Danh sách các nền tảng đã cài đặt
sdkmanager --list_installed | grep platforms

# Xóa nền tảng lỗi thời
sdkmanager --uninstall "platforms;android-28"

Cài đặt tự động qua Gradle

Các dự án Android hiện đại sử dụng Gradle Plugin, có thể tự động cài đặt SDK Platform trong lần xây dựng đầu tiên. Để làm điều này, cần chỉ định compileSdk trong build.gradle và thêm thư mục SDK vào cấu hình cục bộ. Android Studio cũng đề xuất cài đặt nền tảng bị thiếu khi mở dự án — chỉ cần nhấp vào nút "Install SDK Platform" trong cửa sổ đồng bộ Gradle.

Điều quan trọng là thường xuyên cập nhật SDK Platform qua SDK Manager — cùng với nền tảng, Build-Tools và Platform-Tools được cập nhật, ảnh hưởng đến hiệu suất xây dựng và độ ổn định gỡ lỗi. Google khuyến nghị kiểm tra cập nhật SDK mỗi 2–3 tuần, đặc biệt là trước khi xuất bản phiên bản ứng dụng mới trên Google Play.

Thiết lập hình ảnh hệ thống cho trình giả lập

Để chạy trình giả lập với API Level cụ thể, cần cài đặt System Image cùng phiên bản. SDK Manager cho phép tải xuống hình ảnh của các kiến trúc khác nhau (x86_64, arm64-v8a) và loại (Google APIs, Google Play, AOSP). Sau khi tải hình ảnh xuống, AVD Manager tạo một thiết bị ảo dựa trên nó.

bash
# Cài đặt System Image với Google APIs cho API 35
sdkmanager "system-images;android-35;google_apis;x86_64"

# Tạo AVD qua dòng lệnh
avdmanager create avd -n pixel8 -k "system-images;android-35;google_apis;x86_64"

# Danh sách AVD đã tạo
avdmanager list avd

compileSdk, targetSdk và minSdk trong Gradle

Ba tham số trong build.gradle xác định cách ứng dụng hoạt động với SDK Platform. compileSdk là API Level được sử dụng để biên dịch. Tham số này chỉ định các lớp Android API có sẵn trong mã. compileSdk phải là mới nhất trong ba tham số và không ảnh hưởng đến hành vi runtime — ứng dụng được biên dịch nhưng chỉ sử dụng các API có sẵn trên thiết bị.

minSdk là API Level tối thiểu mà ứng dụng có thể được cài đặt. Google Play sẽ không cho phép cài đặt ứng dụng trên thiết bị có phiên bản thấp hơn minSdk. Tham số này xác định ngưỡng tương thích và ảnh hưởng đến phạm vi người dùng. minSdk càng thấp, càng nhiều thiết bị được hỗ trợ, nhưng càng ít API mới có thể được sử dụng mà không cần kiểm tra.

targetSdk là API Level mà ứng dụng đã được kiểm thử. Hệ thống Android sử dụng targetSdk để áp dụng các thay đổi hành vi: nếu ứng dụng không được cập nhật lên API Level mới, hệ thống sẽ bật chế độ tương thích cho các phiên bản cũ. Google Play yêu cầu targetSdk không thấp hơn một mức nhất định — vào năm 2026 là API 34 (Android 14).

Ví dụ cấu hình Gradle

groovy
android {
    compileSdk 35

    defaultConfig {
        applicationId "com.example.app"
        minSdk 26
        targetSdk 35
        versionCode 1
        versionName "1.0"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }
}

// Phiên bản Android SDK phải được cài đặt qua SDK Manager
// sdkmanager "platforms;android-35"

Cách chọn compileSdk, minSdk và targetSdk

Chiến lược lựa chọn phụ thuộc vào mục tiêu dự án. Đối với ứng dụng mới: compileSdk — phiên bản ổn định mới nhất (35 vào đầu năm 2026), minSdk — API 26 (Android 8.0, bao phủ 95% thiết bị), targetSdk — phiên bản ổn định mới nhất. Đối với việc cập nhật ứng dụng hiện có: tăng compileSdk ngay lập tức, targetSdk — sau khi kiểm thử tất cả các thay đổi hành vi, minSdk — chỉ khi cần ngừng hỗ trợ các thiết bị cũ.

Google yêu cầu targetSdk phải được cập nhật trong vòng một năm sau khi phát hành phiên bản Android mới. Các ứng dụng không đáp ứng yêu cầu này không thể xuất bản bản cập nhật trên Google Play. Để theo dõi thời hạn, hãy sử dụng lịch cập nhật Android OS chính thức.

Tham sốMục đíchKhuyến nghị
compileSdkPhiên bản API cho biên dịchPhiên bản ổn định mới nhất
minSdkPhiên bản hỗ trợ tối thiểuAPI 26 để bao phủ 95%
targetSdkPhiên bản cho thay đổi hành viPhiên bản ổn định mới nhất + kiểm thử

Ví dụ làm việc với SDK Platform trong mã

Khi phát triển cho các phiên bản Android khác nhau, cần xem xét khả năng sẵn có của API. Nếu ứng dụng sử dụng compileSdk 35 nhưng chạy trên thiết bị có API 31, việc gọi các phương thức được thêm trong API 34 sẽ dẫn đến NoSuchMethodError hoặc AbstractMethodError. Để gọi API mới một cách an toàn, các kiểm tra phiên bản qua Build.VERSION.SDK_INT được sử dụng.

Kiểm tra API Level trong runtime

kotlin
class FeatureChecker {
    fun registerNotificationChannel(context: Context) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            // Kênh thông báo có sẵn từ API 26
            val channel = NotificationChannel(
                "updates",
                "Cập nhật",
                NotificationManager.IMPORTANCE_DEFAULT
            )
            val manager = context.getSystemService(NotificationManager::class.java)
            manager.createNotificationChannel(channel)
        }
    }
}

Sử dụng API mới với @RequiresApi

Đối với các phương thức chỉ được gọi trên các phiên bản cụ thể, hãy sử dụng chú thích @RequiresApi. Điều này cho kiểm tra lint biết rằng phương thức an toàn và tắt các cảnh báo. Kết hợp với kiểm tra SDK_INT, chú thích làm cho mã sạch hơn và dễ hiểu hơn cho người xem xét.

kotlin
@RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
fun scheduleExactAlarm(manager: AlarmManager, time: Long) {
    // API 34: scheduleExact với cờ SCHEDULE_EXACT_ALARM
    if (manager.canScheduleExactAlarms()) {
        manager.setExact(AlarmManager.RTC_WAKEUP, time, pendingIntent)
    } else {
        // Yêu cầu quyền SCHEDULE_EXACT_ALARM
        val intent = Intent(Settings.ACTION_REQUEST_SCHEDULE_EXACT_ALARM)
        context.startActivity(intent)
    }
}

fun safeScheduleAlarm(context: Context, triggerTime: Long) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
        scheduleExactAlarm(getAlarmManager(context), triggerTime)
    } else {
        // Phương thức setExact cũ không kiểm tra quyền
        getAlarmManager(context).setExact(AlarmManager.RTC_WAKEUP, triggerTime, pendingIntent)
    }
}

Xác định SDK Platform đã cài đặt

Đôi khi cần biết phiên bản SDK Platform nào được cài đặt trên thiết bị của nhà phát triển hoặc trong CI. Điều này có thể thực hiện qua ADB hoặc theo chương trình trong mã ứng dụng. Biết API Level của thiết bị giúp ích khi kiểm thử hành vi cụ thể theo phiên bản.

kotlin
fun logDeviceInfo() {
    with (Build.VERSION) {
        Log.d("SDK_Demo", "SDK_INT: $SDK_INT")
        Log.d("SDK_Demo", "RELEASE: $RELEASE")
        Log.d("SDK_Demo", "CODENAME: $CODENAME")
        Log.d("SDK_Demo", "PREVIEW_SDK_INT: $PREVIEW_SDK_INT")
    }
    // Đầu ra: SDK_INT: 35, RELEASE: 15, CODENAME: REL
}

Các câu hỏi thường gặp

SDK Platform khác Android Studio như thế nào?

Android Studio là IDE, trong khi SDK Platform là tập hợp các thư viện và công cụ để biên dịch. Studio sử dụng SDK Platform để xây dựng ứng dụng, nhưng các nền tảng được tải xuống riêng qua SDK Manager và có thể được cập nhật độc lập với phiên bản Studio.

Cần cài đặt bao nhiêu SDK Platform?

Thông thường ba phiên bản là đủ: phiên bản mới nhất (compileSdk), phiên bản tối thiểu (minSdk) và một phiên bản trung gian để kiểm thử. SDK Manager cho phép dễ dàng thêm và xóa các nền tảng khi cần. Trung bình, các nhà phát triển lưu giữ 3–5 nền tảng trên máy làm việc của họ.

Có thể sử dụng SDK Platform cũ cho API mới không?

Không. Mỗi SDK Platform chỉ chứa API của phiên bản đó. Để gọi các phương thức từ API 35, bạn cần nền tảng android-35. Chỉ định compileSdk mới với nền tảng cũ được cài đặt sẽ gây ra lỗi biên dịch.

Các bản cập nhật SDK Platform là gì?

Google phát hành các bản cập nhật SDK Platform cho mỗi phiên bản: sửa lỗi, API mới, cải thiện hiệu suất. SDK Manager thông báo về các bản cập nhật có sẵn. Nên cài đặt bản sửa đổi mới nhất của nền tảng để xây dựng ổn định.

SDK Platform được lưu trữ ở đâu trên đĩa?

Theo mặc định, mỗi SDK Platform chiếm 200–800 MB trong thư mục Android/Sdk/platforms/android-{API}. Bên trong thư mục có android.jar, thư mục data với tài nguyên và các tệp cấu hình cho trình giả lập và hệ thống xây dựng.

Tổng kết

  • SDK Platform — tập hợp các thư viện và công cụ cho một phiên bản Android cụ thể tương ứng với một API Level xác định.
  • API Level — định danh số xác định các lớp, phương thức và hành vi hệ thống có sẵn.
  • SDK Manager — công cụ để cài đặt và cập nhật SDK Platform, System Images và Build-Tools qua GUI hoặc dòng lệnh.
  • Các tham số compileSdk, minSdk và targetSdk trong build.gradle quản lý phiên bản nền tảng cho biên dịch và tương thích.
  • Để gọi API mới trên thiết bị cũ, hãy sử dụng kiểm tra Build.VERSION.SDK_INT và chú thích @RequiresApi.
  • Google yêu cầu cập nhật targetSdk trong vòng một năm sau khi phát hành phiên bản Android mới để xuất bản trên Google Play.
  • Cập nhật SDK Platform thường xuyên qua SDK Manager đảm bảo quyền truy cập vào API mới, sửa lỗi và cải thiện hiệu suất.

Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay

IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.

Thảo luận dự án

Đọc thêm