AndroidX: nó là gì, các thư viện chính và di chuyển

Tác giả: IT Sectr Đã đăng: 2026-05-01 Thời gian đọc: 8 phút

AndroidX là một bộ thư viện Jetpack của Google đã thay thế Support Library cũ. Theo Google Developer Documentation, 2024, AndroidX cung cấp các thành phần tương thích ngược cho tất cả các phiên bản Android và là tiêu chuẩn của phát triển Android hiện đại. Các thư viện AndroidX bao gồm các công cụ cho UI, điều hướng, xử lý dữ liệu, máy ảnh và tác vụ nền.

Những điểm chính

  • AndroidX là sự kế thừa của Support Library, được phát hành năm 2018 như một phần của Jetpack
  • Các thư viện AndroidX độc lập với phiên bản API và hoạt động trên thiết bị Android 4.0+
  • Việc di chuyển từ Support Library được thực hiện tự động qua Android Studio
  • Các mô-đun chính: Activity, Fragment, RecyclerView, Navigation, Room, WorkManager
  • Phiên bản ngữ nghĩa cho phép cập nhật các thư viện độc lập với nhau

AndroidX là gì

AndroidX là một thư viện mã nguồn mở nằm trong Android Jetpack. Google đã phát hành AndroidX vào năm 2018 để thay thế Support Library, vốn đã cung cấp các thành phần tương thích ngược cho các phiên bản Android cũ từ năm 2011.

Trước AndroidX, mỗi thành phần của Support Library có phiên bản riêng gắn với targetSdkVersion. Các nhà phát triển phải bao gồm nhiều phiên bản của cùng một thư viện cùng lúc, dẫn đến xung đột phụ thuộc và tăng kích thước APK.

AndroidX đã giải quyết vấn đề này thông qua phiên bản ngữ nghĩa (SemVer). Giờ đây mỗi thư viện là một tạo phẩm Gradle độc lập với phiên bản theo định dạng MAJOR.MINOR.PATCH. Các nhà phát triển có thể cập nhật Room từ 2.4.0 lên 2.6.0 mà không cần chạm đến Activity, Fragment hay các mô-đun khác.

Lịch sử của AndroidX

Bản phát hành ổn định đầu tiên của AndroidX 1.0.0 ra mắt vào tháng 12 năm 2018 cùng với Android 9 Pie. Google thông báo rằng Support Library chuyển sang chế độ bảo trì và tất cả các thành phần mới — Navigation, WorkManager, Compose — sẽ chỉ được phát hành trong AndroidX. Phiên bản cuối cùng của Support Library — 28.0.0 — được phát hành vào năm 2019.

Theo Google I/O 2019, lý do chính cho sự chuyển đổi là nhu cầu tăng tốc phát hành bản cập nhật. Trong mô hình cũ, một thư viện phải chờ thư viện khác do phiên bản gói duy nhất. AndroidX đã loại bỏ nút thắt này và Jetpack bắt đầu nhận được các bản phát hành chính và phụ mỗi 2–3 tháng.

Sự khác biệt giữa AndroidX và Support Library

Sự khác biệt chính là không gian tên. Support Library sử dụng gói android.support.*, trong khi AndroidX chuyển sang androidx.*. Thay đổi này cho phép chia các thư viện thành các mô-đun chức năng. Ví dụ, Fragment trong Support Library được gọi là android.support.v4.app.Fragment, trong khi trong AndroidX là androidx.fragment.app.Fragment.

Sự khác biệt quan trọng thứ hai là kiến trúc. AndroidX đi kèm với Jetpack — một bộ khuyến nghị về kiến trúc ứng dụng. Jetpack bao gồm ViewModel, LiveData, Room, Navigation và WorkManager, được thiết kế như một hệ sinh thái thống nhất thay vì các tiện ích rải rác.

Tương thích ngược cũng được cải thiện. Trong khi Support Library hỗ trợ Android 2.3+, AndroidX đảm bảo hoạt động trên các thiết bị chạy Android 4.0 (API 14) trở lên — bao phủ hơn 99% thiết bị đang hoạt động theo Google Play Console 2024.

Thành phần thư viện AndroidX

AndroidX bao gồm hơn 100 thư viện được nhóm theo danh mục. Mỗi nhóm bao phủ một lĩnh vực cụ thể: UI, dữ liệu, điều hướng, tác vụ nền, đa phương tiện và kiểm thử. Dưới đây là tổng quan về các mô-đun chính.

Thư viện lõi và cơ bản

androidx.core:core là thư viện cơ bản chứa các phiên bản tương thích ngược của API hệ thống: NotificationCompat, ActivityCompat, ContextCompat. Mô-đun core-ktx cung cấp các tiện ích mở rộng Kotlin để làm việc với tệp tin, SharedPreferences và các phần tử giao diện.

Thư viện androidx.activity:activity đã giới thiệu Activity Result API (registerForActivityResult), thay thế startActivityForResult đã lỗi thời. Mô-đun fragment:fragment quản lý vòng đời của fragment và hỗ trợ FragmentManager cho các giao dịch và ngăn xếp quay lại.

androidx.lifecycle là nền tảng của kiến trúc Jetpack. LifecycleOwner và LifecycleObserver cho phép các thành phần phản ứng với các thay đổi vòng đời của Activity hoặc Fragment. ViewModel bảo toàn dữ liệu khi xoay màn hình, trong khi LiveData thông báo cho UI về các thay đổi dữ liệu.

kotlin
class MainViewModel : ViewModel() {
    private val _users = MutableLiveData<List<User>>()
    val users: LiveData<List<User>> = _users

    fun loadUsers() {
        viewModelScope.launch {
            val result = repository.getUsers()
            _users.value = result
        }
    }
}

Thư viện UI

androidx.recyclerview:recyclerview là một thành phần mạnh mẽ để hiển thị danh sách và lưới. RecyclerView hỗ trợ LayoutManager (LinearLayoutManager, GridLayoutManager), ItemDecoration và hoạt ảnh qua ItemAnimator. Thư viện ListAdapter với AsyncListDiffer đơn giản hóa việc cập nhật danh sách với tính toán khác biệt tự động.

androidx.navigation:navigation là thư viện điều hướng giữa các màn hình. Navigation Component hoạt động với NavHostFragment và NavController, hỗ trợ Safe Args để truyền tham số kiểu và Deep Links cho liên kết ngoài. NavGraph mô tả tất cả các tuyến đường trong một tệp XML.

androidx.compose.ui là một framework UI khai báo, Jetpack Compose, được xây dựng trên Kotlin. Không giống như hệ thống View, Compose chỉ vẽ lại các phần tử đã thay đổi thông qua tái hợp thành. Các thành phần Material Design 3 (Button, TextField, Scaffold) có sẵn trong mô-đun material3.

Thư việnTạo phẩmMục đích
Fragmentandroidx.fragmentQuản lý fragment và giao dịch
RecyclerViewandroidx.recyclerviewDanh sách và lưới tối ưu
Navigationandroidx.navigationĐiều hướng màn hình
Compose UIandroidx.compose.uiUI khai báo trong Kotlin

Thư viện dữ liệu

androidx.room:room là một ORM cho lưu trữ dữ liệu cục bộ. Room tạo các lớp DAO từ các truy vấn SQLite được chú thích, xác thực cú pháp SQL tại thời điểm biên dịch và hỗ trợ RxJava cùng Kotlin Flow. Phiên bản 2.6 bao gồm hỗ trợ KSP để tạo mã nhanh hơn.

androidx.work:workmanager là thư viện cho các tác vụ nền với thực thi được đảm bảo. WorkManager hỗ trợ các tác vụ định kỳ, chuỗi công việc (beginWith, then) và tiêu chí khởi chạy (Constraints: mạng, sạc, bộ nhớ). Ngay cả khi ứng dụng bị đóng, WorkManager vẫn gửi tác vụ sau khi khởi động lại thiết bị.

androidx.datastore:datastore là sự thay thế hiện đại cho SharedPreferences. DataStore sử dụng Kotlin Coroutines và Flow, hoạt động đồng bộ và không đồng bộ, ngăn chặn việc chặn luồng UI. Preferences DataStore lưu trữ các cặp khóa-giá trị đơn giản, trong khi Proto DataStore xử lý các đối tượng kiểu qua Protocol Buffers.

Cách di chuyển sang AndroidX

Di chuyển tự động là cách Google khuyến nghị để chuyển từ Support Library sang AndroidX. Android Studio từ phiên bản 3.2 bao gồm công cụ tích hợp Refactor Migrate to AndroidX, giúp thay thế không gian tên và cập nhật phụ thuộc trong build.gradle.

Trước khi di chuyển, bạn cần cập nhật phiên bản compileSdk lên 28 hoặc cao hơn. Đồng thời đảm bảo tất cả các thư viện bên thứ ba hỗ trợ AndroidX. Nếu một phụ thuộc chưa di chuyển, hãy sử dụng cờ android.enableJetifier=true trong gradle.properties — nó tự động viết lại mã byte của các thư viện bên thứ ba.

Di chuyển tự động trong Android Studio

Trong Android Studio, chọn Refactor Migrate to AndroidX từ menu. IDE sẽ quét toàn bộ dự án, tìm tất cả các import từ gói android.support.* và thay thế chúng bằng androidx.*. Các phụ thuộc trong app/build.gradle cũng sẽ được cập nhật — các tạo phẩm Support Library sẽ được thay thế bằng các phiên bản AndroidX tương ứng.

Sau khi di chuyển, Gradle Sync có thể hiển thị lỗi nếu một số phụ thuộc không được tìm thấy. Kiểm tra danh sách các thư viện đã sử dụng trong tài liệu Google Maven — tất cả các tạo phẩm AndroidX được xuất bản trên google(). Nếu thư viện không có sẵn, hãy thêm mavenCentral() vào repositories.

groovy
android {
    compileSdk 34
}

dependencies {
    // Thư viện Support (đã lỗi thời)
    // implementation 'com.android.support:appcompat-v7:28.0.0'
    
    // AndroidX
    implementation 'androidx.core:core-ktx:1.13.1'
    implementation 'androidx.appcompat:appcompat:1.7.0'
    implementation 'androidx.activity:activity-ktx:1.9.3'
    implementation 'androidx.fragment:fragment-ktx:1.8.5'
    implementation 'androidx.recyclerview:recyclerview:1.3.2'
    implementation 'androidx.room:room-runtime:2.6.1'
    ksp 'androidx.room:room-compiler:2.6.1'
}

Di chuyển thủ công

Nếu dự án quá lớn hoặc chứa các View tùy chỉnh từ Support Library, việc thay thế tự động có thể không hoàn chỉnh. Thay thế thủ công tất cả các chuỗi trong mã: thay đổi import, thuộc tính XML (app/src/main/res) và tham chiếu trong tệp kê khai. Đối với thuộc tính Support Library, tiền tố android: chuyển thành app: (ví dụ: app:cardCornerRadius thay vì android:cardCornerRadius).

Sau khi di chuyển thủ công, hãy kiểm tra các tham chiếu R. Support Library xuất tài nguyên qua android.support.v7.appcompat.R, trong khi AndroidX sử dụng androidx.appcompat.R. Tìm kiếm trong dự án và thay thế tất cả các tham chiếu đến đường dẫn R cũ. Quá trình xây dựng dự án sẽ hoàn thành mà không có lỗi hoặc cảnh báo lỗi thời.

Lợi ích khi sử dụng AndroidX

Lợi ích đầu tiên của AndroidX là tính mô-đun. Bạn chỉ bao gồm các thư viện thực sự sử dụng. Nếu ứng dụng của bạn chỉ cần RecyclerView và Navigation, không cần phải kéo toàn bộ Support Library với tất cả các thành phần View. Điều này giảm kích thước APK và tăng tốc thời gian xây dựng.

Lợi ích thứ hai là cập nhật thường xuyên. Jetpack phát hành các phiên bản ổn định mỗi 1–3 tháng. Room 2.6.0, phát hành năm 2024, đã thêm hỗ trợ KSP và tương thích Kotlin 2.0. Navigation 2.8.0 đã giới thiệu các tuyến an toàn kiểu dựa trên Kotlinx Serialization. Các nhà phát triển nhận được tính năng mới mà không cần chờ phiên bản Android tiếp theo.

Lợi ích thứ ba là tích hợp Kotlin. Tất cả các thư viện AndroidX đều có mô-đun -ktx với các hàm mở rộng. viewLifecycleOwner.lifecycleScope khởi chạy coroutine trong ngữ cảnh fragment, collectLatest xử lý Flow, và SharedFlow cùng StateFlow hoàn toàn tương thích với các thành phần nhận biết vòng đời. Điều này làm cho mã ngắn gọn và an toàn hơn.

Tương thích ngược là một lợi thế chính của AndroidX so với các API nền tảng mới. Bạn có thể sử dụng AppCompatDelegate.setDefaultNightMode cho chủ đề tối trên Android 4.0+, NotificationCompat.setBubble cho bong bóng trên Android 5.0+ và LocationRequestCompat cho vị trí kết hợp trên Android 4.0+. Phạm vi bao phủ thiết bị đạt 99% mà không tăng phiên bản SDK tối thiểu.

Lợi ích thứ tư là kiểm thử. AndroidX bao gồm thư viện androidx.test để viết kiểm thử công cụ và đơn vị. FragmentScenario và ActivityScenario cho phép kiểm thử các thành phần UI trong sự cô lập, trong khi TestNavHostController cho phép xác minh điều hướng mà không cần chạy thiết bị thực. MockK và Robolectric hoàn thiện hệ sinh thái.

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

AndroidX khác Support Library như thế nào?

AndroidX sử dụng không gian tên androidx.* thay vì android.support.*, có phiên bản độc lập (SemVer), bao gồm các thư viện Jetpack và hỗ trợ tiện ích mở rộng Kotlin -ktx. Support Library đã bị đóng băng ở phiên bản 28.0.0 vào năm 2019.

Làm thế nào để thêm AndroidX vào dự án mới?

Trong Android Studio, bật cờ Use AndroidX ở bước tạo dự án. Đối với dự án hiện có, thêm android.useAndroidX=true và android.enableJetifier=true vào gradle.properties. Sau đó thay thế các phụ thuộc trong build.gradle bằng các tạo phẩm từ nhóm androidx.

Có bắt buộc phải di chuyển sang AndroidX không?

Google Play yêu cầu tất cả ứng dụng và bản cập nhật phải sử dụng AndroidX. Support Library đã ngừng bảo trì và không còn nhận được bản vá bảo mật. Nếu ứng dụng của bạn chưa di chuyển, điều này có thể dẫn đến việc từ chối cập nhật trong Google Play Console.

Jetpack trong Android là gì?

Jetpack là một bộ thư viện, công cụ và hướng dẫn của Google cho phát triển ứng dụng Android. AndroidX là nền tảng của Jetpack. Jetpack bao gồm Architecture Components (Lifecycle, ViewModel, Room), UI (Compose, Fragment, RecyclerView) và Behavior (WorkManager, Navigation, CameraX).

Có thể sử dụng AndroidX với Jetpack Compose không?

Có, Jetpack Compose tự nó là một phần của AndroidX (androidx.compose.ui). Các thư viện ViewModel, Navigation, Room và WorkManager hoàn toàn tương thích với Compose. Các hàm collectAsState() và collectAsStateWithLifecycle() cung cấp tích hợp Flow với các hàm Composable.

Tóm tắt

  • AndroidX là bộ thư viện Jetpack hiện đại, kế thừa Support Library với phiên bản ngữ nghĩa
  • Hơn 100 mô-đun bao phủ UI, dữ liệu, điều hướng, tác vụ nền, đa phương tiện và kiểm thử
  • Di chuyển tự động trong Android Studio thay thế import và phụ thuộc chỉ trong vài cú nhấp
  • Tiện ích mở rộng Kotlin -ktx giảm mã mẫu và tích hợp với coroutine và Flow
  • Tương thích ngược với Android 4.0+ bao phủ 99% thiết bị đang hoạt động
  • Jetpack hợp nhất AndroidX với các khuyến nghị kiến trúc — ViewModel, Room, Navigation, WorkManager
  • Sử dụng AndroidX trong tất cả các dự án mới — đó là tiêu chuẩn ngành từ năm 2019

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