Là nhà phát triển ứng dụng dành cho thiết bị di động, bạn thường phát triển giao diện người dùng của ứng dụng từng bước thay vì phát triển mọi thứ cùng một lúc. Android Studio áp dụng phương pháp này với Jetpack Compose bằng cách cung cấp các công cụ không yêu cầu bản dựng đầy đủ để kiểm tra, sửa đổi giá trị và xác minh kết quả cuối cùng.
Chỉnh sửa trực tiếp
Chỉnh sửa trực tiếp là một tính năng cho phép bạn cập nhật các thành phần kết hợp trong trình mô phỏng và thiết bị thực theo thời gian thực. Chức năng này giảm thiểu việc chuyển đổi ngữ cảnh giữa thao tác viết và tạo ứng dụng, cho phép bạn tập trung viết mã trong thời gian dài hơn mà không bị gián đoạn.
Tính năng Chỉnh sửa trực tiếp có 3 chế độ:
- Thủ công: Áp dụng các thay đổi đối với mã khi các thay đổi này được đẩy thủ công bằng cách sử dụng tổ hợp phím Control+' (Command+' trên macOS)
- Thủ công khi lưu: Áp dụng các thay đổi đối với mã khi các thay đổi này được lưu thủ công bằng cách sử dụng tổ hợp phím Control+S (Command+S trên macOS).
- Tự động: Các thay đổi sẽ được áp dụng trong thiết bị hoặc trình mô phỏng khi bạn cập nhật hàm có khả năng kết hợp.
Chế độ Chỉnh sửa trực tiếp tập trung vào những thay đổi về mã liên quan đến giao diện người dùng và trải nghiệm người dùng. Tính năng này không hỗ trợ các thay đổi như cập nhật chữ ký của phương thức, thêm phương thức mới hoặc các thay đổi đối với hệ phân cấp của lớp. Để biết thêm thông tin, hãy xem danh sách Các giới hạn của tính năng Chỉnh sửa trực tiếp.
Tính năng này không thay thế cho hoạt động tạo và chạy ứng dụng hoặc cho tính năng Áp dụng các thay đổi. Thay vào đó, tính năng này được thiết kế để tối ưu hoá quy trình làm việc khi bạn tạo, triển khai và làm đi làm lại nhằm phát triển giao diện người dùng trong Compose.
Quy trình thực hành các phương pháp hay nhất như sau:
- Thiết lập để ứng dụng của bạn có thể chạy.
- Chỉnh sửa trực tiếp nhiều nhất có thể, cho đến khi bạn cần thực hiện thay đổi mà tính năng Chỉnh sửa trực tiếp không hỗ trợ, chẳng hạn như thêm phương thức mới trong khi ứng dụng đang chạy.
- Sau khi bạn thực hiện một thay đổi không được hỗ trợ, hãy nhấp vào biểu tượng Chạy để khởi động lại ứng dụng và tiếp tục tính năng Chỉnh sửa trực tiếp.
Làm quen với tính năng Chỉnh sửa trực tiếp
Để bắt đầu, hãy làm theo các bước sau để tạo một Hoạt động trống trong Compose, bật tính năng Chỉnh sửa trực tiếp cho dự án của bạn và chỉnh sửa bằng tính năng đó.
Thiết lập dự án mới
Trước khi bắt đầu, hãy đảm bảo bạn đã cài đặt Android Studio Giraffe trở lên và cấp độ API của thiết bị thực hoặc trình mô phỏng là 30 trở lên.
Mở Android Studio rồi chọn New Project (Dự án mới) trong hộp thoại Welcome to Android Studio (Chào mừng bạn đến với Android Studio). Nếu đã mở một dự án, thì bạn có thể tạo dự án mới bằng cách chuyển đến File > New > New Project (Tệp > Mới > Dự án mới).
Chọn mẫu Empty Compose Activity cho Điện thoại và máy tính bảng, rồi nhấp vào Tiếp theo.
Điền các thông tin bắt buộc: tên, tên gói, vị trí lưu, SDK tối thiểu và ngôn ngữ cấu hình bản dựng vào hộp thoại New Project (Dự án mới).
Nhấp vào Hoàn tất.
Bật tính năng Chỉnh sửa trực tiếp
Chuyển đến phần cài đặt để bật tính năng Chỉnh sửa trực tiếp.
- Trên Windows hoặc Linux, hãy chuyển đến File > Settings > Editor > Live Edit (Tệp > Cài đặt > Trình chỉnh sửa > Chỉnh sửa trực tiếp).
- Trên macOS, hãy chuyển đến Android Studio > Settings > Editor > Live Edit (Android Studio > Cài đặt > Trình chỉnh sửa > Chỉnh sửa trực tiếp).
Chọn tuỳ chọn Live Edit (Chỉnh sửa trực tiếp) và chế độ bạn muốn chạy trong phần cài đặt.
Ở chế độ thủ công, các thay đổi đối với mã sẽ được đẩy mỗi khi bạn nhấn tổ hợp phím Control+' (Command+' trên macOS). Ở chế độ thủ công khi lưu, các thay đổi đối với mã sẽ được áp dụng mỗi khi bạn lưu thủ công bằng tổ hợp phím Control + S (Command + S trên macOS). Ở chế độ tự động, các thay đổi đối với mã sẽ được áp dụng trong thiết bị hoặc trình mô phỏng khi bạn sửa đổi.
Trong trình chỉnh sửa, hãy mở tệp
MainActivity
. Đây là điểm truy cập cho ứng dụng của bạn.Nhấp vào biểu tượng Chạy để triển khai ứng dụng.
Sau khi bạn bật tính năng Chỉnh sửa trực tiếp, dấu kiểm Up-to-date (Đã cập nhật) màu xanh lục sẽ xuất hiện ở góc trên cùng bên phải của cửa sổ công cụ Running Devices (Thiết bị đang chạy):
Thực hiện và xem lại các thay đổi
Khi bạn thực hiện các thay đổi được hỗ trợ trong trình chỉnh sửa, thiết bị kiểm thử thực hoặc ảo sẽ tự động cập nhật.
Ví dụ: chỉnh sửa phương thức Greeting
hiện có trong MainActivity
thành như sau:
@Composable fun Greeting(name: String) { Text( text = "Hello $name!", Modifier .padding(80.dp) // Outer padding; outside background .background(color = Color.Cyan) // Solid element background color .padding(16.dp) // Inner padding; inside background, around text) ) }
Các thay đổi của bạn sẽ xuất hiện ngay lập tức trên thiết bị kiểm thử, như trong hình 4.
Khắc phục sự cố xảy ra với tính năng Chỉnh sửa trực tiếp
Nếu bạn không thấy nội dung chỉnh sửa của mình trên thiết bị kiểm thử, có thể Android Studio đã không cập nhật được nội dung bạn đã chỉnh sửa. Kiểm tra xem chỉ báo của tính năng Chỉnh sửa trực tiếp có hiển thị Đã lỗi thời (như trong hình 5) hay không. Chỉ báo này cho biết đã xảy ra lỗi biên dịch. Để biết thông tin về lỗi và các cách khắc phục được đề xuất, hãy nhấp vào chỉ báo.
Các giới hạn của tính năng Chỉnh sửa trực tiếp
Dưới đây là danh sách các giới hạn hiện có.
[Chỉ áp dụng cho Android Studio Giraffe trở lên] Tính năng Chỉnh sửa trực tiếp yêu cầu Compose Runtime 1.3.0 trở lên. Nếu dự án của bạn sử dụng phiên bản Compose thấp hơn, thì tính năng Chỉnh sửa trực tiếp sẽ bị vô hiệu hoá.
[Chỉ áp dụng cho Android Studio Giraffe trở lên] Tính năng Chỉnh sửa trực tiếp yêu cầu AGP 8.1.0-alpha05 trở lên. Nếu dự án của bạn sử dụng phiên bản AGP thấp hơn, thì tính năng Chỉnh sửa trực tiếp sẽ bị vô hiệu hoá.
Tính năng Chỉnh sửa trực tiếp yêu cầu thiết bị hoặc trình mô phỏng thực tế đang chạy API cấp 30 trở lên.
Tính năng Chỉnh sửa trực tiếp chỉ hỗ trợ chỉnh sửa nội dung hàm, nghĩa là bạn không thể thay đổi tên hàm hoặc chữ ký, thêm hoặc xóa hàm hoặc thay đổi các trường không phải hàm.
Tính năng Chỉnh sửa trực tiếp sẽ đặt lại trạng thái của ứng dụng trong lần đầu tiên bạn thay đổi hàm Compose trong một tệp. Điều này chỉ xảy ra sau lần thay đổi mã đầu tiên – trạng thái ứng dụng không được đặt lại bằng các thay đổi mã tiếp theo mà bạn thực hiện đối với các hàm Compose trong tệp đó.
Có thể các lớp của tính năng Chỉnh sửa trực tiếp được sửa đổi phải chịu một số hao tổn về hiệu suất. Hãy chạy ứng dụng và sử dụng một bản phát hành sạch nếu bạn đang đánh giá hiệu suất của ứng dụng.
Bạn phải thực hiện lệnh run (chạy) đầy đủ để trình gỡ lỗi có thể hoạt động trên các lớp mà bạn đã chỉnh sửa bằng tính năng Chỉnh sửa trực tiếp.
Ứng dụng đang chạy có thể gặp sự cố khi bạn chỉnh sửa bằng tính năng Chỉnh sửa trực tiếp. Nếu việc này xảy ra, bạn có thể triển khai lại ứng dụng bằng nút Chạy .
Tính năng Chỉnh sửa trực tiếp không thực hiện bất kỳ thao tác mã byte nào được xác định trong tệp bản dựng của dự án – ví dụ: thao tác mã byte sẽ được áp dụng khi tạo dự án bằng các lựa chọn trong trình đơn Build (Tạo) hoặc bằng cách nhấp vào nút Buid (Tạo) hay nút Run (Chạy).
Các hàm không có khả năng kết hợp được cập nhật trực tiếp trên thiết bị hoặc trình mô phỏng và kích hoạt toàn bộ quá trình kết hợp lại. Quá trình kết hợp lại có thể sẽ không gọi hàm được cập nhật. Đối với các hàm không có khả năng kết hợp, bạn phải kích hoạt các hàm mới cập nhật hoặc chạy lại ứng dụng.
Tính năng Chỉnh sửa trực tiếp sẽ không tiếp tục quá trình khởi động lại ứng dụng. Bạn phải chạy lại ứng dụng.
Tính năng Chỉnh sửa trực tiếp chỉ hỗ trợ các quy trình có thể gỡ lỗi.
Tính năng Chỉnh sửa trực tiếp không hỗ trợ các dự án sử dụng giá trị tuỳ chỉnh cho
moduleName
trongkotlinOptions
ở cấu hình bản dựng.Không dùng được tính năng Chỉnh sửa trực tiếp trong quá trình triển khai nhiều triển khai. Điều này có nghĩa là bạn không triển khai được cho một thiết bị và sau đó đến một thiết bị khác. Tính năng Chỉnh sửa trực tiếp chỉ hoạt động trên bộ thiết bị gần nhất mà ứng dụng được triển khai.
Tính năng Chỉnh sửa trực tiếp hoạt động với các quy trình triển khai trên nhiều thiết bị (các lần triển khai cho nhiều thiết bị được tạo thông qua mục Chọn nhiều thiết bị trong trình đơn thả xuống thiết bị mục tiêu). Tuy nhiên, tính năng này chưa được hỗ trợ chính thức và có thể xảy ra vấn đề. Nếu bạn gặp vấn đề, vui lòng báo cáo vấn đề đó.
Tính năng Áp dụng các thay đổi/Áp dụng các thay đổi về mã không tương thích với tính năng Chỉnh sửa trực tiếp và yêu cầu khởi động lại ứng dụng đang chạy.
Tính năng Chỉnh sửa trực tiếp hiện không hỗ trợ các dự án Android Automotive.
Câu hỏi thường gặp về tính năng Chỉnh sửa trực tiếp
Trạng thái hiện tại của tính năng Chỉnh sửa trực tiếp là gì?
Tính năng Chỉnh sửa trực tiếp có trong Android Studio Giraffe. Để bật tính năng này, hãy chuyển đến File (Tệp) > Settings (Cài đặt) > Editor (Trình chỉnh sửa) > Live Edit (Chỉnh sửa trực tiếp) (Android Studio > Settings (Cài đặt) > Editor (Trình chỉnh sửa) > Live Edit (Chỉnh sửa trực tiếp) trên macOS).
Khi nào tôi nên sử dụng tính năng Chỉnh sửa trực tiếp?
Sử dụng tính năng Chỉnh sửa trực tiếp khi bạn muốn nhanh chóng thấy tác động của các nội dung cập nhật cho các phần tử trải nghiệm người dùng (chẳng hạn như nội dung cập nhật đối tượng sửa đổi và ảnh động) trong trải nghiệm tổng thể của ứng dụng.
Khi nào tôi nên tránh sử dụng tính năng Chỉnh sửa trực tiếp?
Chế độ Chỉnh sửa trực tiếp tập trung vào những thay đổi về mã liên quan đến giao diện người dùng và trải nghiệm người dùng. Phiên bản này không hỗ trợ các thay đổi như cập nhật chữ ký của phương thức, thêm phương thức mới hoặc thay đổi hệ phân cấp lớp. Để biết thêm thông tin, hãy xem phần Các giới hạn của tính năng Chỉnh sửa trực tiếp.
Khi nào tôi nên sử dụng tính năng Xem trước trong Compose?
Sử dụng tính năng Xem trước trong Compose khi bạn đang phát triển các thành phần kết hợp riêng lẻ. Bản xem trước sẽ trực quan hoá các phần tử Compose và tự động làm mới để cho thấy tác động của các thay đổi về mã. Bản xem trước cũng hỗ trợ xem các thành phần trên giao diện người dùng theo các cấu hình và trạng thái, chẳng hạn như giao diện tối, ngôn ngữ và tỷ lệ phông chữ.
Chỉnh sửa trực tiếp giá trị cố định (không dùng nữa)
Android Studio có thể cập nhật theo thời gian thực một số giá trị cố định là hằng số được dùng trong các thành phần kết hợp trong bản xem trước, trình mô phỏng và thiết bị thực. Sau đây là một số loại được hỗ trợ:
Int
String
Color
Dp
Boolean
Bạn có thể xem các giá trị cố định liên tục kích hoạt bản cập nhật theo thời gian thực mà không cần bước biên dịch bằng cách bật trang trí giá trị cố định thông qua tính năng Chỉnh sửa trực tiếp của chỉ báo giao diện người dùng cố định:
Áp dụng thay đổi
Áp dụng thay đổi (Apply Changes) cho phép bạn cập nhật mã và tài nguyên mà không phải triển khai lại ứng dụng trên trình mô phỏng hoặc thiết bị thực (có một số giới hạn).
Bất cứ khi nào thêm, sửa đổi hoặc xoá thành phần kết hợp, bạn có thể cập nhật ứng dụng mà không cần triển khai lại bằng cách nhấp vào nút Apply Code Changes (Áp dụng thay đổi mã):
Đề xuất cho bạn
- Lưu ý: văn bản có đường liên kết sẽ hiện khi JavaScript tắt
- Tuỳ chỉnh ảnh động {:#customize-animations}
- Ảnh động dựa trên giá trị
- Thêm thông số