Android Jetpack
Jetpack là một tập hợp thư viện giúp các nhà phát triển làm theo những phương pháp hay nhất, giảm bớt mã nguyên mẫu và viết mã có khả năng hoạt động nhất quán trên các phiên bản và thiết bị Android. Từ đó, nhà phát triển có thể tập trung vào những mã họ quan tâm.
Jetpack Compose
Phát triển giao diện người dùng bằng Compose
Một bộ công cụ hiện đại để xây dựng giao diện người dùng gốc, giúp bạn đơn giản hoá và đẩy nhanh quá trình phát triển giao diện người dùng trên Android.
Tại sao nên dùng Android Jetpack?
Làm theo các phương pháp hay nhất
Được xây dựng dựa trên những phương pháp thiết kế hiện đại, các thư viện của Android Jetpack giúp hạn chế sự cố và tình trạng rò rỉ bộ nhớ nhờ tích hợp khả năng tương thích ngược.
Loại bỏ mã nguyên mẫu
Android Jetpack quản lý các hoạt động tẻ nhạt, chẳng hạn như quản lý vòng đời, thao tác điều hướng và tác vụ trong nền để bạn có thể tập trung vào những điểm mạnh của ứng dụng.
Giảm tình trạng phân mảnh
Giảm bớt sự phức tạp nhờ những thư viện hoạt động nhất quán trên các phiên bản và thiết bị Android.
Thư viện Jetpack Khám phá tất cả các thư viện
* Các thư viện phổ biến và thường dùng nhất được liệt kê trước
activity * | Truy cập vào các API có thể kết hợp, được xây dựng dựa trên Hoạt động. |
appcompat * | Cho phép truy cập vào API mới trên các phiên bản API cũ của nền tảng (nhiều phiên bản sử dụng Material Design). |
appsearch * | Xây dựng các chức năng tìm kiếm tuỳ chỉnh trong ứng dụng cho người dùng. |
máy ảnh * | Tạo ứng dụng máy ảnh dành cho thiết bị di động. |
compose * | Xác định giao diện người dùng theo cách lập trình bằng các hàm có khả năng kết hợp giúp mô tả các phần phụ thuộc dữ liệu và hình dạng của giao diện. |
databinding * | Liên kết các thành phần của giao diện người dùng trong bố cục với các nguồn dữ liệu trong ứng dụng bằng định dạng khai báo. |
fragment * | Phân chia ứng dụng thành nhiều màn hình độc lập được lưu trữ trong một Hoạt động. |
hilt * | Mở rộng chức năng của Dagger Hilt để bật tính năng chèn phần phụ thuộc của một số lớp trong thư viện androidx. |
lifecycle * | Tạo các thành phần nhận biết được vòng đời có thể điều chỉnh hoạt động dựa trên trạng thái vòng đời hiện tại của một hoạt động hoặc một mảnh. |
Các thành phần của Material Design * | Các thành phần theo mô-đun và có thể tuỳ chỉnh của giao diện người dùng Material Design dành cho Android. |
navigation * | Xây dựng và lập cấu trúc cho giao diện người dùng trong ứng dụng, xử lý các đường liên kết sâu và di chuyển giữa các màn hình. |
paging * | Tải dữ liệu trong các trang rồi hiển thị dữ liệu đó ở chế độ RecyclerView. |
room * | Tạo, lưu trữ và quản lý dữ liệu cố định dựa trên cơ sở dữ liệu SQLite. |
test * | Thử nghiệm trong Android. |
work * | Lên lịch và thực thi các tác vụ trong nền có thể trì hoãn và có giới hạn. |
ads | Lấy mã nhận dạng cho quảng cáo (có hoặc không có Dịch vụ Play). |
annotation | Hiển thị siêu dữ liệu nhằm giúp công cụ và các nhà phát triển khác biết được mã của ứng dụng. |
arch.core | Trình trợ giúp cho các phần phụ thuộc arch khác, bao gồm cả các quy tắc thử nghiệm JUnit có thể dùng với LiveData. |
asynclayoutinflater | Thêm các bố cục một cách không đồng bộ để tránh hiện tượng giật trong giao diện người dùng. |
autofill | Cải thiện độ chính xác của tính năng tự động điền bằng cách mở rộng gợi ý. |
benchmark | Đo lường chính xác hiệu quả của mã trong Android Studio. |
biometric | Xác thực bằng hệ thống nhận dạng sinh trắc học hoặc thông tin xác thực thiết bị và thực hiện các thao tác mã hoá. |
Bluetooth | Sử dụng các tính năng Bluetooth của nền tảng Android với các API tương thích ngược. |
browser | Hiển thị trang web trong trình duyệt mặc định của người dùng. |
camera.viewfinder | Thành phần kết hợp độc lập và Kính ngắm dựa trên khung nhìn cho Máy ảnh" |
car-app | Tạo ứng dụng mẫu cho Android Auto và Android Automotive OS. |
cardview | Triển khai mẫu thẻ Material Design với các góc bo tròn và bóng đổ. |
collection | Giảm tác động của bộ sưu tập hiện có và bộ sưu tập mới (có kích thước nhỏ) lên bộ nhớ. |
compose.animation | Tạo ảnh động trong các ứng dụng Jetpack Compose để làm phong phú trải nghiệm người dùng. |
compose.compiler | Biến đổi các hàm @Composable và hỗ trợ hoạt động tối ưu hoá bằng trình biên dịch bổ trợ Kotlin. |
compose.foundation | Viết ứng dụng Jetpack Compose bằng các khối dựng có sẵn, cũng như mở rộng nền tảng để xây dựng các thành phần của hệ thống thiết kế của riêng bạn. |
compose.material | Xây dựng các giao diện người dùng Jetpack Compose bằng các thành phần Material Design có sẵn. Đây là điểm truy cập cấp cao hơn của Compose, được thiết kế nhằm cung cấp các thành phần theo như mô tả trên trang web www.material.io. |
compose.material3 | Xây dựng giao diện người dùng Jetpack Compose bằng các thành phần Material Design 3, phiên bản cải tiến tiếp theo của Material Design. Material 3 có khả năng tuỳ chỉnh giao diện cập nhật, cũng như các thành phần và tính năng cá nhân hoá Material You, chẳng hạn như màu động. Công cụ này được thiết kế để phù hợp với phong cách đồ hoạ và giao diện người dùng hệ thống mới trên Android 12. |
compose.material3.adaptive | Dùng thư viện thích ứng Material 3 để tạo giao diện người dùng thích ứng sẽ tự động điều chỉnh cho phù hợp với cửa sổ hiện tại các cấu hình như lớp kích thước cửa sổ hoặc tư thế thiết bị. Thư viện này cung cấp cả các phương thức triển khai mặc định của giàn giáo và các thành phần kết hợp cần thiết của khối xây dựng để tạo trải nghiệm tuỳ chỉnh của riêng bạn. |
compose.runtime | Các khối dựng cơ bản cho mô hình lập trình và tính năng quản lý trạng thái của Compose, đồng thời là thời gian chạy cốt lõi để trình biên dịch bổ trợ Compose nhắm đến. |
compose.ui | Các thành phần cơ bản của giao diện người dùng Compose cần thiết để tương tác với thiết bị, bao gồm cả bố cục, bản vẽ và phương thức nhập. |
concurrent | Đưa các tác vụ ra khỏi luồng chính bằng coroutine và tận dụng ListenableFuture. |
constraintlayout | Định vị và đặt kích thước cho các tiện ích một cách linh hoạt nhờ vị trí tương đối. |
contentpager | Tải và dàn trang cho dữ liệu ContentProvider trong luồng nền. |
coordinatorlayout | Định vị các tiện ích ứng dụng cấp cao nhất, chẳng hạn như AppBarLayout và FloatingActionButton. |
core | Hướng đến các tính năng và API mới nhất trên nền tảng đồng thời vẫn hỗ trợ các thiết bị cũ. |
core.uwb | Triển khai UWB (băng tần siêu rộng) trên các thiết bị được hỗ trợ. |
credentials | Thư viện này cung cấp quyền truy cập hợp nhất vào thông tin xác thực của người dùng. Thông tin này có thể bao gồm mật khẩu, mã xác thực và thông tin xác thực được liên kết. Bạn nên sử dụng thư viện này để cung cấp trải nghiệm đăng nhập liền mạch và an toàn. |
cursoradapter | Hiển thị dữ liệu Con trỏ cho tiện ích ListView. |
customview | Triển khai các chế độ xem tuỳ chỉnh. |
datastore | Lưu trữ dữ liệu một cách không đồng bộ, có tính nhất quán và dựa trên giao dịch, giúp khắc phục một số hạn chế của SharedPreferences |
documentfile | Xem tài liệu tệp. |
draganddrop | Chấp nhận dữ liệu kéo và thả từ ứng dụng khác hoặc trong cùng một ứng dụng, cũng như hiển thị một mục tiêu thả xuống nhất quán. |
drawerlayout | Triển khai tiện ích ngăn kéo Material Design. |
dynamicanimation | Tạo hoạt ảnh mượt với API hoạt ảnh dựa trên vật lý. |
emoji | Hiển thị biểu tượng cảm xúc trên các thiết bị hiện thời và thiết bị cũ. |
emoji2 | Hiển thị biểu tượng cảm xúc trên các thiết bị hiện thời và thiết bị cũ. |
enterprise | Tạo ứng dụng phù hợp với doanh nghiệp. |
exifinterface | Đọc và ghi các thẻ EXIF của tệp hình ảnh. |
games | Sử dụng SDK cho trò chơi Android trong chính ứng dụng của bạn để thực hiện các tác vụ phức tạp trong trò chơi, chẳng hạn như điều chỉnh tốc độ khung hình. |
glance | Xây dựng bố cục cho các nền tảng từ xa bằng API kiểu Jetpack Compose. |
graphics | Tận dụng cơ sở đồ hoạ trên nhiều bản phát hành của nền tảng Android |
gridlayout | Triển khai bố cục lưới. |
health | Tạo các ứng dụng theo dõi sức khoẻ hiệu quả cao theo cách không phân biệt nền tảng. |
health.connect | Cho phép nhà phát triển đọc hoặc ghi hồ sơ sức khoẻ và thể chất của người dùng. |
heifwriter | Mã hoá hình ảnh hoặc bộ sưu tập hình ảnh ở định dạng HEIF bằng các bộ mã hoá và giải mã có sẵn trên thiết bị Android. |
mực in | Truyền cảm hứng cho các ứng dụng bút hàng đầu. Giảm rào cản gia nhập cho nhà phát triển để có trải nghiệm viết tay đẹp mắt và hiệu suất cao. |
input | Giảm độ trễ của hoạt động tương tác đầu vào bằng cách dự đoán MotionEvents trong tương lai |
interpolator | Sử dụng bộ nội suy ảnh động trên các nền tảng cũ. |
javascriptengine | Cho phép ứng dụng Android đánh giá JavaScript. |
jetifier | Một công cụ độc lập giúp di chuyển các phần phụ thuộc trên một thư viện ngừng hoạt động sang các phần phụ thuộc AndroidX tương đương. |
leanback | Hãy sử dụng Compose dành cho TV thay vì cấu phần phần mềm này. |
legacy | Cấu phần phần mềm này và các lớp trong đó sẽ không dùng được nữa. Kể từ Android 8, các hạn chế trong quy trình kiểm tra lai lịch khiến cho lớp này không còn hữu ích nữa. |
tìm lỗi mã nguồn | Kiểm tra tìm lỗi mã nguồn để xác minh việc sử dụng API Gradle |
loader | Tải dữ liệu còn lại (sau khi thay đổi cấu hình) cho giao diện người dùng. |
localbroadcastmanager | Cấu phần phần mềm này và các lớp trong đó sẽ không dùng được nữa. Thay vào đó, hãy dùng LiveData hoặc luồng phản ứng. |
media | Chia sẻ nội dung nghe nhìn và bộ điều khiển với các ứng dụng khác. Đã được thay thế bằng media2. |
media2 | Chia sẻ nội dung nghe nhìn và bộ điều khiển với các ứng dụng khác. |
media3 * | Các thư viện hỗ trợ cho trường hợp sử dụng liên quan đến nội dung nghe nhìn. |
mediarouter | Cho phép hiển thị và phát nội dung nghe nhìn trên các thiết bị nhận từ xa bằng một giao diện người dùng phổ biến. |
multidex | Triển khai các ứng dụng có nhiều tệp dex trên các thiết bị chạy phiên bản trước Android 5. |
metrics | Theo dõi và báo cáo nhiều chỉ số thời gian chạy cho ứng dụng |
palette | Trích xuất bảng màu đại diện từ hình ảnh. |
tệp pdf | Thư viện để thêm các tính năng xem tệp PDF bên trong ứng dụng. |
percentlayout | Cấu phần phần mềm này và các lớp trong đó sẽ không dùng được nữa. Thay vào đó, dùng ConstraintLayout và các bố cục liên quan. |
preference | Xây dựng màn hình cài đặt mang tính tương tác mà không cần tương tác với bộ nhớ thiết bị hay quản lý giao diện người dùng. |
In ảnh, tài liệu, hình ảnh và đồ hoạ khác qua ứng dụng. | |
privacysandbox.activity | TODO |
privacysandbox.ads | Thư viện này cho phép tích hợp với Privacy Preserving API (API Bảo đảm quyền riêng tư) thuộc Hộp cát về quyền riêng tư trên Android. |
privacysandbox.plugins | Trình bổ trợ Gradle cho Thư viện Sdk của Hộp cát về quyền riêng tư của Android |
privacysandbox.sdkruntime | Thư viện này cung cấp các thành phần cho thành phần tiêu thụ nhận biết SdkRuntime |
privacysandbox.tools | Thư viện để sử dụng chức năng Hộp cát về quyền riêng tư trong Android |
privacysandbox.ui | TODO |
profileinstaller | Cho phép các thư viện điền trước dấu vết tổng hợp mà ART sẽ đọc. |
recommendation | Quảng bá nội dung trên màn hình chính của Trình chạy Android TV. |
recyclerview | Hiển thị tập dữ liệu lớn trong giao diện người dùng của bạn, đồng thời giảm thiểu mức sử dụng bộ nhớ. |
remotecallback | Tạo một trình bao bọc giúp các nhà phát triển dễ cung cấp PendingIntent hơn. |
resourceinspection | Hiển thị các thuộc tính của chế độ xem tuỳ chỉnh trong Live Layout Inspector của Android Studio. |
savedstate | Viết các thành phần thay thế được để lưu trạng thái giao diện người dùng khi một quy trình ngừng hoạt động và khôi phục trạng thái này khi quy trình đó bắt đầu lại. |
security | Quản lý an toàn các khoá, đồng thời mã hoá tệp và phần sharedpreferences. |
sharetarget | Cung cấp khả năng tương thích ngược để sử dụng các phím tắt làm mục tiêu chia sẻ trực tiếp. |
slice | Hiển thị các thành phần trên giao diện người dùng theo mẫu bên ngoài ứng dụng. |
slidingpanelayout | Triển khai mẫu giao diện người dùng dạng ngăn trượt. |
startup | Triển khai một cách đơn giản, hiệu quả để khởi chạy các thành phần khi khởi động ứng dụng. |
sqlite | Thao tác với các cơ sở dữ liệu SQLite cục bộ. Nếu có thể, hãy dùng Room. |
swiperefreshlayout | Triển khai mẫu giao diện người dùng vuốt để làm mới. |
test.uiautomator | Khung kiểm thử chức năng trên giao diện người dùng của nhiều ứng dụng |
textclassifier | Xác định các cuộc trò chuyện, đường liên kết, mục lựa chọn và các cấu trúc tương tự khác trong văn bản. |
tracing | Ghi các sự kiện theo dõi vào vùng đệm theo dõi hệ thống. |
transition | Hoạt hoá chuyển động trong giao diện người dùng với bố cục bắt đầu và kết thúc. |
tv | Cung cấp cho nhà phát triển các chức năng Compose và Material Design để viết ứng dụng cho TV |
tvprovider | Cung cấp các kênh Android TV. |
vectordrawable | Kết xuất đồ hoạ vectơ. |
versionedparcelable | Cung cấp định dạng chuyển đổi tuần tự nhị phân ổn định và nhỏ gọn, có thể truyền qua các quy trình hoặc tồn tại cố định một cách an toàn. |
viewpager | Hiển thị Chế độ xem hoặc Mảnh ở định dạng vuốt được. Nếu có thể, hãy dùng viewpager2. |
viewpager2 | Hiển thị Chế độ xem hoặc Mảnh ở định dạng vuốt được. |
wear | Tạo ứng dụng cho đồng hồ thông minh chạy Wear OS by Google. |
wear.compose | Viết các ứng dụng sử dụng công cụ Jetpack Compose cho thiết bị đeo bằng cách cung cấp chức năng để hỗ trợ các thiết bị, kích thước, hình dạng và cử chỉ điều hướng dành riêng cho thiết bị đeo. |
wear.protolayout | Thư viện này cho phép xác định một tập hợp bố cục giao diện người dùng và các biểu thức không phải giao diện người dùng được kết xuất/đánh giá trên các nền tảng từ xa. |
wear.tiles | Tạo ứng dụng cho đồng hồ thông minh chạy Wear OS by Google. |
wear.watchface | Tạo ứng dụng cho đồng hồ thông minh chạy Wear OS by Google. |
webkit | Hoạt động với API WebView hiện đại trên Android 5 trở lên. |
window | Giúp hỗ trợ nhiều kiểu dáng thiết bị, chẳng hạn như các thiết bị có thể gập lại. |
window.extensions.core | Core API (API Lõi) cho Tiện ích thư viện trình quản lý cửa sổ |
Tính năng mới
- Compose tháng 8 năm 2023
- Jetpack Compose 1.5.0 chuyển sang phiên bản ổn định và mang đến những cải tiến lớn về hiệu suất, bao gồm cả việc tái cấu trúc các đối tượng sửa đổi cấp cao như "Clickable" (có thể cải thiện 80% thời gian kết hợp). Ngày 23 tháng 8 năm 2023, Compose cũng cải thiện đến 70% khả năng phân bổ bộ nhớ (đặc biệt là trong ngăn xếp đồ hoạ), giúp giảm mức sử dụng bộ nhớ của Compose trên thiết bị
- Wear Compose và Thẻ thông tin 1.2
- Cả Wear Compose và Wear Tiles đều đã chuyển sang phiên bản ổn định để nâng cao trải nghiệm của nhà phát triển WearOS. Cả hai đều bổ sung cho nhau, trong đó bạn có thể dùng Wear Compose để tạo màn hình ứng dụng phức tạp trên thiết bị Wear và dùng thẻ thông tin Wear để tạo thẻ thông tin ứng dụng. Bản phát hành Wear Compose mới có các chức năng mới như Mục có thể mở rộng và Vuốt để hiển thị. Bản phát hành Thẻ thông tin Wear hiện cũng hỗ trợ ảnh động tiện ích và liên kết dữ liệu nền tảng (chẳng hạn như nguồn dữ liệu sức khoẻ).
- Window 1.1
- 1.1 ổn định các API nhúng hoạt động, cho phép các ứng dụng như WhatsApp, eBay và Temu gửi bố cục màn hình lớn. API này có nhiều tính năng phong phú, vì nó cho phép nhà phát triển sửa đổi hành vi của chế độ chia đôi màn hình, kiểm tra (và thay đổi) trạng thái chia đôi trong thời gian chạy, triển khai chế độ phân tách theo chiều ngang và bắt đầu một phương thức trong toàn cửa sổ.
- Ghi chú phát hành
- Để biết thêm thông tin, hãy truy cập vào ghi chú phát hành của chúng tôi.
Tìm hiểu cách sử dụng Jetpack
Đào tạo kiến thức cơ bản
Tìm hiểu những thư viện Jetpack thiết yếu trong khoá học Kiến thức cơ bản về Compose trên Android để giảm bớt mã nguyên mẫu trong ứng dụng
Hướng dẫn thực hành
Thực hành với 3 thư viện Jetpack giúp đơn giản hoá lớp dữ liệu của bạn: LiveData, ViewModel và Room
Ứng dụng mẫu Sunflower
Khám phá cách sử dụng kết hợp các thư viện Jetpack phổ biến nhất trong ứng dụng phiên bản chính thức