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 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.
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 Android | API Level | Tên mã | Năm phát hành |
|---|---|---|---|
| Android 12 | 31 | Snow Cone | 2021 |
| Android 13 | 33 | Tiramisu | 2022 |
| Android 14 | 34 | Upside Down Cake | 2023 |
| Android 15 | 35 | Vanilla Ice Cream | 2024 |
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.
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).
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.
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ần | Mô tả | Kích thước (xấp xỉ) |
|---|---|---|
| android.jar | Thư viện Android API cho biên dịch | 50–120 MB |
| System Image | Hình ảnh OS cho trình giả lập | 600–1500 MB |
| Build-Tools | Công cụ xây dựng APK và AAB | 200–400 MB |
| Platform Resources | Tài nguyên hệ thống (chủ đề, kiểu) | 30–80 MB |
| Skins | Hồ sơ thiết bị cho trình giả lập | 10–50 MB |
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.
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.
| Android | API | Năm | Cải tiến chính |
|---|---|---|---|
| 6.0 Marshmallow | 23 | 2015 | Quyền runtime |
| 8.0 Oreo | 26 | 2017 | Kênh thông báo, Tự động điền |
| 10 | 29 | 2019 | Scoped Storage, Chủ đề tối |
| 12 | 31 | 2021 | SplashScreen, thuộc tính exported |
| 14 | 34 | 2023 | Cờ Broadcast, Dịch vụ nền trước |
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.
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:
# 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á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.
Để 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ó.
# 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
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).
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"
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 đích | Khuyến nghị |
|---|---|---|
| compileSdk | Phiên bản API cho biên dịch | Phiên bản ổn định mới nhất |
| minSdk | Phiên bản hỗ trợ tối thiểu | API 26 để bao phủ 95% |
| targetSdk | Phiên bản cho thay đổi hành vi | Phiên bản ổn định mới nhất + kiểm thử |
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.
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)
}
}
}
Đố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.
@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)
}
}
Đô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.
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
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.
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ọ.
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.
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.
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
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.
Đọc thêm