Xây dựng và chạy ứng dụng

Android Studio thiết lập các dự án mới để triển khai cho Trình mô phỏng Android hoặc một thiết bị được kết nối chỉ bằng vài cú nhấp. Sau khi cài đặt ứng dụng của mình, bạn có thể sử dụng tính năng Áp dụng thay đổi để triển khai một số thay đổi về mã và tài nguyên mà không cần tạo APK mới.

Để tạo và chạy ứng dụng, hãy làm theo các bước sau:

  1. Trong thanh công cụ, hãy chọn ứng dụng của bạn từ trình đơn thả xuống cấu hình chạy.
  2. Trên trình đơn thả xuống thiết bị mục tiêu, hãy chọn thiết bị bạn muốn chạy ứng dụng trên.

    Trình đơn thả xuống mục tiêu của thiết bị.

    Nếu chưa định cấu hình thiết bị nào, thì bạn cần kết nối thiết bị qua USB hoặc tạo AVD để sử dụng Trình mô phỏng Android.

  3. Nhấp vào Chạy .

Android Studio sẽ cảnh báo bạn nếu bạn cố gắng khởi chạy dự án của mình trên một thiết bị có lỗi hoặc cảnh báo liên quan đến dự án đó. Sự thay đổi về biểu tượng và văn phong phân biệt giữa lỗi (lựa chọn thiết bị dẫn đến cấu hình bị hỏng) và cảnh báo (lựa chọn thiết bị có thể dẫn đến hành vi bất ngờ nhưng vẫn có thể chạy).

Thay đổi cấu hình chạy/gỡ lỗi

Khi bạn chạy ứng dụng của mình lần đầu tiên, Android Studio sẽ sử dụng cấu hình chạy mặc định. Cấu hình quy định sẽ chỉ định việc triển khai ứng dụng của bạn từ một APK hoặc Android App Bundle, mô-đun để chạy, gói triển khai, hoạt động để bắt đầu, nhắm mục tiêu thiết bị, tùy chọn cài đặt của trình mô phỏng, logcat và nhiều tùy chọn khác.

Cấu hình chạy/gỡ lỗi mặc định tạo một APK, khởi chạy hoạt động dự án mặc định và sử dụng hộp thoại Chọn mục tiêu triển khai để lựa chọn thiết bị mục tiêu. Nếu các tùy chọn cài đặt mặc định không phù hợp với dự án hoặc mô-đun của bạn, bạn có thể tùy chỉnh cấu hình chạy/gỡ lỗi, hoặc thậm chí tạo một cấu hình mới, ở cấp dự án, mặc định và mô-đun. Để chỉnh sửa cấu hình chạy/gỡ lỗi, hãy chọn Chạy > Chỉnh sửa cấu hình. Để biết thêm thông tin, hãy xem bài viết Tạo và chỉnh sửa cấu hình chạy/gỡ lỗi

Thay đổi biến thể bản dựng

Theo mặc định, Android Studio sẽ tạo phiên bản gỡ lỗi của ứng dụng mà bạn chỉ muốn sử dụng trong quá trình phát triển khi nhấp vào Chạy.

Để thay đổi biến thể bản dựng mà Android Studio sử dụng, hãy chọn Tạo > Chọn Biến thể bản dựng trong thanh trình đơn.

Đối với các dự án không có mã gốc/C++, bảng Tạo biến thể có hai cột: Mô-đunBiến thể bản dựng đang hoạt động. Giá trị Biến thể bản dựng đang hoạt động cho mô-đun xác định biến thể bản dựng mà IDE triển khai cho thiết bị được kết nối của bạn và hiển thị trong trình chỉnh sửa.

Hình 1. Bảng điều khiển Biến thể bản dựng có hai cột cho các dự án không có mã gốc/C++

Để chuyển đổi giữa các biến thể, hãy nhấp vào ô Biến thể bản dựng đang hoạt động cho một mô-đun và chọn biến thể mong muốn từ trường danh sách.

Đối với các dự án có mã gốc/C++, bảng Tạo biến thể có ba cột: Mô-đun, Biến thể bản dựng đang hoạt độngABI đang hoạt động. Giá trị Biến thể đang tạo biến trong mô-đun sẽ xác định biến thể bản dựng mà IDE triển khai cho thiết bị của bạn và hiển thị trong trình chỉnh sửa. Đối với các mô-đun gốc, giá trị Kích hoạt ABI đang hoạt động sẽ xác định ABI mà trình chỉnh sửa sử dụng, nhưng không ảnh hưởng đến nội dung được triển khai.

Hình 2. Bảng Tạo biến thể sẽ thêm cột giao diện nhị phân ứng dụng đang hoạt động cho các dự án có mã gốc/C++

Để thay đổi biến thể bản dựng hoặc ABI, hãy nhấp vào ô cho cột Biến thể hoạt động của bản dựng hoặc ABI hiện hoạt và chọn biến hoặc ABI mà bạn muốn từ danh sách. Sau khi bạn thay đổi lựa chọn, IDE sẽ tự động đồng bộ hóa dự án của bạn. Việc thay đổi cột cho một ứng dụng hoặc mô-đun thư viện sẽ áp dụng nội dung thay đổi cho tất cả các hàng phụ thuộc.

Theo mặc định, các dự án mới được thiết lập với hai biến thể bản dựng: một biến thể gỡ lỗi và bản phát hành. Bạn cần xây dựng biến thể bản phát hành để chuẩn bị ứng dụng cho bản phát hành công khai.

Để tạo các biến thể khác của ứng dụng, mỗi biến thể có các tính năng hoặc yêu cầu riêng về thiết bị, bạn có thể xác định các biến thể bản dựng bổ sung.

Xung đột trong hộp thoại Biến thể bản dựng của Android Studio

Trong hộp thoại Biến thể bản dựng của Android Studio, bạn có thể thấy thông báo lỗi cho biết các xung đột giữa các biến thể bản dựng, chẳng hạn như sau:

Cửa sổ Biến thể bản dựng hiển thị lỗi xung đột biến thể

Lỗi này không chỉ ra vấn đề về bản dựng với Gradle – mà chỉ cho biết rằng chính IDE Android Studio không thể phân giải các biểu tượng giữa các biến thể của những mô-đun đã chọn.

Ví dụ: nếu bạn có một mô-đun M1 phụ thuộc vào biến thể v1 của mô-đun M2, nhưng M2 có biến thể v2 được chọn trong IDE, thì bạn có biểu tượng chưa được giải quyết trong IDE. Giả sử M1 phụ thuộc vào một lớp Foo chỉ có trong v1. Khi bạn chọn v2, lớp đó không được IDE xác định và lớp đó sẽ không phân giải được và hiển thị các lỗi trong mã M1.

Những thông báo lỗi này xuất hiện do IDE không thể tải mã cho nhiều biến thể cùng một lúc. Tuy nhiên, xét về bản dựng ứng dụng, biến thể được chọn trong hộp thoại này sẽ không có hiệu lực vì Gradle sẽ tạo ứng dụng của bạn bằng mã nguồn được chỉ định trong các công thức bản dựng Gradle, chứ không dựa trên những gì hiện được tải trong IDE.

Xây dựng dự án

Nút Chạy tạo và triển khai ứng dụng của bạn cho một thiết bị. Tuy nhiên, để tạo ứng dụng nhằm chia sẻ hoặc tải lên Google Play, bạn sẽ cần sử dụng một trong các tùy chọn trong trình đơn Tạo để biên dịch các phần hoặc tất cả dự án của mình. Trước khi chọn bất kỳ tùy chọn bản dựng nào được liệt kê trong bảng 1, bạn hãy nhớ chọn biến thể bản dựng mà bạn muốn sử dụng.

Bảng 1. Tùy chọn tạo trong trình đơn Tạo.

Mục menu Mô tả
Tạo mô-đun Biên soạn tất cả các tệp nguồn trong mô-đun đã chọn đã được sửa đổi kể từ phiên bản cuối cùng, và tất cả các mô-đun mà mô-đun đã chọn sẽ phụ thuộc định kỳ Nội dung tổng hợp bao gồm các tệp nguồn phụ thuộc và mọi công việc liên quan đến bản dựng. Bạn có thể chọn mô-đun để tạo bằng cách chọn tên mô-đun hoặc một trong các tệp của cửa sổ đó trong cửa sổ Dự án.
Tạo dự án Tạo tất cả các mô-đun.
Dự án sạch sẽ Xóa tất cả các tệp bản dựng trung gian/được lưu vào bộ nhớ đệm.
Tạo lại dự án Chạy Dự án sạch cho biến thể bản dựng đã chọn và tạo một APK.
Tạo (các) gói/APK > Tạo (các) APK

Xây dựng một APK của tất cả các mô-đun trong dự án hiện tại cho biến thể mà họ đã chọn. Khi bản dựng hoàn tất, bạn sẽ thấy một thông báo xác nhận, cung cấp đường liên kết đến tệp APK và đường liên kết để phân tích trong Trình phân tích APK.

Nếu biến thể bản dựng mà bạn đã chọn là loại bản dựng gỡ lỗi, thì APK sẽ được ký bằng một khóa gỡ lỗi và sẵn sàng để cài đặt. Nếu bạn đã chọn một biến thể phát hành, thì theo mặc định, APK sẽ bị hủy ký và bạn phải ký APK theo cách thủ công. Ngoài ra, bạn có thể chọn Tạo > Tạo gói đã ký / APK từ thanh trình đơn.

Android Studio lưu các APK mà bạn tạo trong project-name/module-name/build/outputs/apk/.

Tạo (các) gói/APK > Tạo (các) gói

Tạo Android App Bundle của tất cả các mô-đun trong dự án hiện tại cho biến thể mà họ đã chọn. Khi bản dựng hoàn tất, một thông báo xác nhận sẽ xuất hiện, cung cấp đường liên kết đến gói ứng dụng và đường liên kết để phân tích trong Trình phân tích APK.

Nếu biến thể bản dựng bạn đã chọn là loại bản dựng gỡ lỗi, thì gói ứng dụng sẽ được ký bằng khóa gỡ lỗi và bạn có thể sử dụngbundletool để triển khai ứng dụng của bạn từ gói ứng dụng tới một thiết bị đã kết nối. Nếu bạn đã chọn một biến thể bản phát hành, thì theo mặc định, gói ứng dụng sẽ bị hủy ký và bạn phải tự ký sử dụng gói này bằng cách sử dụng jarsigner. Ngoài ra, bạn có thể chọn Tạo > Tạo gói đã ký / APK từ thanh trình đơn.

Android Studio lưu các APK mà bạn tạo trong project-name/module-name/build/outputs/bundle/.

Tạo gói / gói APK đã ký Hiển thị hộp thoại với trình hướng dẫn để thiết lập cấu hình ký mới và xây dựng gói ứng dụng hoặc APK đã ký. Bạn cần ký ứng dụng bằng khóa phát hành trước khi tải lên Play Console. Để biết thêm thông tin về cách ký ứng dụng, hãy xem bài viết Ký ứng dụng.

Lưu ý: Nút Chạy tạo một APK bằng testOnly="true", có nghĩa là bạn chỉ có thể cài đặt APK qua adb (Sử dụng Android Studio). Nếu bạn muốn một tệp APK có thể gỡ lỗi mà mọi người có thể cài đặt mà không cần adb, hãy chọn biến thể gỡ lỗi rồi nhấp vào Tạo (các) gói/tệp APK > Tạo (các) APK.

Để biết chi tiết về những thao tác mà Gradle thực thi cho mỗi lệnh, hãy mở cửa sổ Build (Tạo) như mô tả trong phần tiếp theo. Để biết thêm thông tin về Gradle và quy trình xây dựng, hãy xem Định cấu hình bản dựng của bạn.

Theo dõi quá trình xây dựng

Bạn có thể xem thông tin chi tiết về quy trình xây dựng bằng cách nhấp vào Xem > Công cụ Windows > Xây dựng (hoặc bằng cách nhấp vào Tạo trong thanh cửa sổ công cụ ). Cửa sổ hiển thị các thao tác mà Gradle thực thi để xây dựng ứng dụng của bạn, như minh họa trong hình 3.

Hình 3. Cửa sổ đầu ra của Bản dựng trong Android Studio

  1. Thẻ Tạo: Hiển thị các thao tác mà Gradle thực thi dưới dạng cây, trong đó mỗi nút đại diện cho một giai đoạn tạo hoặc một nhóm các phần phụ thuộc nhiệm vụ. Nếu bạn gặp lỗi thời gian tạo hoặc tổng hợp, hãy kiểm tra cây và chọn một phần tử để đọc kết quả lỗi, như minh họa trong hình 4.

    Hình 4. Kiểm tra cửa sổ Tạo kết quả để xem thông báo lỗi

  2. Thẻ Đồng bộ hóa: Hiển thị những việc cần làm mà Gradle thực thi để đồng bộ hóa với những tệp dự án của bạn. Tương tự như thẻ Tạo, nếu bạn gặp lỗi đồng bộ hóa, hãy chọn các phần tử trong cây để tìm thêm thông tin về lỗi.
  3. Khởi động lại: Thực hiện thao tác tương tự như chọn Tạo > Tạo dự án bằng cách tạo tệp bản dựng trung gian cho tất cả các mô-đun trong dự án của bạn.
  4. Chuyển đổi chế độ xem: Chuyển đổi giữa hiển thị quy trình thực thi tác vụ dưới dạng cây đồ họa và hiển thị đầu ra văn bản chi tiết hơn từ Gradle – đây là kết quả tương tự như bạn thấy trong Gradle Console cửa sổ trên Android Studio 3.0 trở xuống.

Nếu các phiên bản dựng của bạn sử dụng các phiên bản sản phẩm, thì Gradle cũng sẽ gọi các thao tác đó để tạo các phiên bản sản phẩm đó. Để xem danh sách tất cả các tác vụ có sẵn trong bản dựng, hãy nhấp vào Xem > Công cụ Windows > Gradle (hoặc nhấp vào Gradle trong thanh cửa sổ của công cụ ).

Nếu xảy ra lỗi trong quá trình tạo, Gradle có thể đề xuất một số tùy chọn dòng lệnh để giúp bạn giải quyết vấn đề, chẳng hạn như --stacktrace hoặc --debug. Để sử dụng các tùy chọn dòng lệnh với quy trình xây dựng, hãy làm như sau:

  1. Mở hộp thoại Cài đặt hoặc Lựa chọn ưu tiên:
    • Trên Windows hoặc Linux, hãy chọn Tệp > Cài đặt từ thanh trình đơn.
    • Trên Mac OSX, hãy chọn Android Studio > Tùy chọn trong thanh trình đơn.
  2. Chuyển đến phần Xây dựng, Thực thi, Triển khai > Trình biên dịch.
  3. Trong trường văn bản bên cạnh mục Command-line Options, hãy nhập các tùy chọn dòng lệnh.
  4. Nhấp vào OK để lưu và thoát.

Gradle sẽ áp dụng các tùy chọn dòng lệnh này khi bạn thử tạo ứng dụng vào lần tới.

Chỉnh sửa trực tiếp

Chỉnh sửa trực tiếp là một tính năng thử nghiệm đã được ra mắt trong Android Studio Electric Eel Canary 1, nó cho phép bạn cập nhật các thành phần kết hợp ở chế độ Xem trước trong Compose, trình mô phỏng và thiết bị thực tế theo thời gian thực. Khi bạn cập nhật hàm kết hợp, các thay đổi sẽ được áp dụng cả trong Chế độ xem trước trong Compose và thiết bị/trình mô phỏng. Chức năng này giảm thiểu 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 vào việc viết mã lâu hơn mà không bị gián đoạn.

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 Chỉnh sửa trực tiếp 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ệ thống phân cấp của lớp. Để biết thêm thông tin, vui lòng xem bài viết về Các điểm hạn chế.

Tính năng này không thay thế cho hoạt động tạo và chạy ứng dụng cũng như Áp dụng những thay đổi. Thay vào đó, nó được thiết kế để tối ưu hóa quy trình làm việc khi bạn tạo, triển khai và cải tiến để 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:

  1. Thiết lập để ứng dụng của bạn có thể Chạy.
  2. 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 này không hỗ trợ, ví dụ: thêm phương thức mới trong khi ứng dụng đang chạy.
  3. Sau khi bạn thực hiện thay đổi không được hỗ trợ, hãy Chạy ứng dụng của bạn để tiếp tục Chỉnh sửa trực tiếp.

Ảnh GIF sử dụng Chỉnh sửa trực tiếp bằng tính năng Xem trước trong Compose

Hình 1 Tính năng Chỉnh sửa trực tiếp làm mới Bản xem trước trong Compose khi các thay đổi được thực hiện đối với phần tử giao diện người dùng.

Ảnh GIF sử dụng tính năng Chỉnh sửa trực tiếp trên một thiết bị

Hình 2. Mỗi khi bạn thực hiện chỉnh sửa được hỗ trợ bởi tính năng Chỉnh sửa trực tiếp, ứng dụng đang chạy trên thiết bị hoặc trình mô phỏng của bạn sẽ được cập nhật theo thời gian thực.

Bắt đầu sử dụng tính năng Chỉnh sửa trực tiếp

Để bắt đầu nhanh, hãy làm theo các bước sau để tạo một Empty Compose Activity, bật tính năng Chỉnh sửa trực tiếp cho dự án của bạn và thực hiện các thay đổi bằng tính năng Chỉnh sửa trực tiếp.

Thiết lập dự án mới

  1. Trước khi bắt đầu, nhớ đảm bảo bạn đã cài đặt phiên bản Android Studio Electric Eel mới nhất và cấp độ API của thiết bị thực hoặc trình mô phỏng ít nhất là cấp 30 trở lên.

  2. Mở Android Studio và chọn Dự án mới trong cửa sổ bật lên Chào mừng bạn đến với Android Studio. Nếu đã mở một dự án, bạn có thể tạo một dự án mới bằng cách chuyển đến Tệp > Mới > Dự án mới.

  3. 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.

    Lựa chọn mẫu trong Android StudioHình 3. Các mẫu bạn có thể chọn. Đối với mục Chỉnh sửa trực tiếp, hãy chọn Empty Compose Activity.

  4. Nhập thông tin sau rồi nhấp vào Hoàn tất.

    • Tên: HelloWorld
    • Tên gói: com.example.helloworld
    • Lưu vị trí: Mặc định.
    • Ngôn ngữ: Kotlin
    • SDK tối thiểu: Mặc định

    Ví dụ về các tùy chọn cài đặt dự án từ Bước 4 đã nhập vào ASHình 4. Ví dụ về chế độ cài đặt dự án.

Bật tính năng Chỉnh sửa trực tiếp

  1. Trong IDE, hãy chuyển đến phần Chỉnh sửa trực tiếp rồi dùng hộp đánh dấu để bật tính năng này cho Thiết bị và/hoặc Xem trước.

    • Trên Windows hoặc Linux, hãy chuyển đến 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 > Lựa chọn ưu tiên > Trình chỉnh sửa > Chỉnh sửa trực tiếp.

    Giao diện người dùng có hộp đánh dấu tính năng Chỉnh sửa trực tiếp trong phần cài đặt Android Studio

  2. 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.

  3. Nhấp vào Chạy Nút giao diện người dùng để triển khai ứng dụng, sau đó nhấp vào Phân tách ở trên cùng bên phải của trình chỉnh sửa để mở bản xem trước.

  4. Sau khi bật tính năng Chỉnh sửa trực tiếp, bạn sẽ thấy dấu kiểm màu xanh lục Chỉnh sửa trực tiếp ở trên cùng bên phải của trình chỉnh sửa.

    Giao diện người dùng có dấu kiểm màu xanh lục của tính năng Chỉnh sửa trực tiếp

    Hình 6. Dấu kiểm màu xanh lục và mũi tên thả xuống của trình Chỉnh sửa trực tiếp xuất hiện sau khi bạn bật tính năng này.

Thực hiện và xem lại các thay đổi

Trong trình chỉnh sửa, hãy thay đổi phương thức Greeting hiện có trong MainActivity thành như sau. Các thay đổi của bạn sẽ xuất hiện ngay lập tức, như được minh họa trong Hình 7.

@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)
    )
}

Đã áp dụng các thay đổi cho phương thức Chào hỏi trên thiết bị

Hình 7. Các thay đổi của Chỉnh sửa trực tiếp đối với phương pháp Greeting ở trên sẽ xuất hiện ngay lập tức.

Đã áp dụng các thay đổi trong phương thức DefaultPreview

Hình 8. Phương thức DefaultPreview cũng hiển thị các thay đổi của bạn ở chế độ Xem trước trong Compose.

Khắc phục sự cố

Nếu bạn không thấy nội dung chỉnh sửa của mình trong ngăn xem trước, Android Studio có thể không cập nhật được nội dung bạn đã chỉnh sửa. Kiểm tra xem chỉ báo giao diện người dùng Chỉnh sửa trực tiếp có hiển thị biểu tượng tạm dừng hay không, vì biểu tượng này sẽ hiển thị lỗi biên dịch.

Giao diện người dùng trạng thái trong Chỉnh sửa trực tiếp

Hình 9. Để xem thêm thông tin về lỗi và nội dung đề xuất cách khắc phục, hãy di chuột lên mục Chỉnh sửa trực tiếp: BẬT trong giao diện người dùng.

Các điểm hạn chế

Dưới đây là danh sách các giới hạn hiện có.

  • 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 hiện không hỗ trợ trình tái kết hợp lại một phần – nói cách khác, nó chỉ kết hợp lại các thành phần kết hợp bị ảnh hưởng bởi một sự thay đổi mã nhất định.
  • Các lớp của trình Chỉnh sửa trực tiếp sẽ phải chịu một số hao tổn về hiệu suất. Bạn nên Chạy ứng dụng và sử dụng bản dựng của 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 cần 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 đã 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 Nút giao diện người dùng.
  • 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 dự án được tạo bằng cách sử dụng các tùy chọn trong trình đơn Bản dựng hoặc nhấp vào nút Tạo hoặc 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 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 không tiếp tục quá trình chạy ứng dụng. Bạn phải Chạy lại ứng dụng.

Câu hỏi thường gặ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 hiện có sẵn trong kênh Canary dưới dạng tính năng thử nghiệm. Bạn có thể bật hoặc tắt chế độ này bằng cách nhấp vào Tệp > Cài đặt > Trình chỉnh sửa > Chỉnh sửa trực tiếp (Android Studio > Lựa chọn ưu tiên > Trình chỉnh sửa > Chỉnh sửa trực tiếp trên macOS).
  • Khi nào nên dùng tính năng Chỉnh sửa trực tiếp?
    • Hãy 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 những thay đổi đối với các thành phần trải nghiệm người dùng (ví dụ: thông tin cập nhật về công cụ sửa đổi, ả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?
    • Tính năng Chỉnh sửa trực tiếp hiện tập trung vào những thay đổi liên quan đến mã của giao diện người dùng và trải nghiệm người dùng. Tránh sử dụng mã này cho các thay đổi như cập nhật chữ ký phương thức, thêm phương thức mới hoặc thay đổi hệ phân cấp lớp mà phương thức này không hỗ trợ. Để biết thêm thông tin, vui lòng xem bài viết về Các điểm hạn chế.
  • 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 Composition 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 trực quan hóa các thành phần Compose và tự động làm mới để hiển thị hiệu ứng của các thay đổi mã khi bật tính năng Chỉnh sửa trực tiếp. 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ấu hình và trạng thái khác nhau (ví dụ: chế độ tối, khu vực, tỷ lệ phông chữ).
  • Sự khác biệt giữa tính năng Chỉnh sửa trực tiếp trên Bản xem trước trong Soạn thư và thiết bị/trình mô phỏng là gì?
    • Sự khác biệt giữa việc sử dụng tính năng Chỉnh sửa trực tiếp khi Xem trước Compose với thiết bị hoặc trình mô phỏng là tính năng Chỉnh sửa trực tiếp tự động làm mới bản Xem trước khi thay đổi các thành phần trên giao diện người dùng, trong khi tính năng Chỉnh sửa trực tiếp triển khai những thay đổi về mã được hỗ trợ đối với ứng dụng đang chạy trên trình mô phỏng hoặc thiết bị thực.

Áp dụng thay đổi

Trong Android Studio phiên bản 3.5 trở lên, tính năng Áp dụng các thay đổi cho phép bạn đẩy mã và các thay đổi về tài nguyên vào ứng dụng đang chạy mà không cần khởi động lại ứng dụng. Trong một số trường hợp, bạn không cần khởi động lại hoạt động hiện tại. Tính linh hoạt này giúp bạn kiểm soát lượng ứng dụng được khởi động lại khi muốn triển khai và thử nghiệm các thay đổi nhỏ, tăng dần trong khi vẫn duy trì trạng thái hiện tại của thiết bị. Áp dụng Thay đổi sử dụng khả năng trong quá trình triển khai VMTI Android được hỗ trợ trên các thiết bị chạy Android 8.0 (API cấp 26) trở lên. Để tìm hiểu thêm về cách hoạt động của tính năng Áp dụng thay đổi, hãy xem Android Studio Project Marble: Áp dụng các thay đổi.

Yêu cầu

Bạn chỉ có thể áp dụng các hành động Áp dụng thay đổi khi đáp ứng các điều kiện sau:

  • Bạn tạo APK của ứng dụng bằng cách sử dụng biến thể bản dựng gỡ lỗi.
  • Bạn triển khai ứng dụng của mình cho một thiết bị mục tiêu hoặc trình mô phỏng chạy Android 8.0 (API cấp 26) trở lên.

Sử dụng tùy chọn Apply Changes (Áp dụng thay đổi)

Hãy sử dụng các tùy chọn sau đây khi bạn muốn triển khai các thay đổi đối với một thiết bị tương thích:

Áp dụng các thay đổi và khởi động lại hoạt động Biểu tượng Áp dụng các thay đổi và khởi động lại hoạt động

Cố gắng áp dụng cả thay đổi về tài nguyên lẫn mã bằng cách khởi động lại hoạt động nhưng không khởi động lại ứng dụng. Tóm lại, bạn có thể sử dụng tùy chọn này khi đã sửa đổi mã trong phần nội dung của phương thức hoặc sửa đổi một tài nguyên hiện có.

Bạn cũng có thể thực hiện hành động này bằng cách nhấn tổ hợp phím Ctrl+Alt+F10 (hoặc Control+Shift+Command+R trên macOS).

Áp dụng các thay đổi mã Biểu tượng Áp dụng thay đổi mã

Bạn chỉ có thể áp dụng các thay đổi về mã mà không cần khởi động lại. Nói chung, bạn có thể sử dụng tùy chọn này khi đã sửa đổi mã trong phần nội dung của phương thức nhưng chưa sửa đổi tài nguyên nào. Nếu bạn đã sửa đổi cả mã và tài nguyên, hãy dùng Áp dụng các thay đổi và Khởi động lại hoạt động.

Bạn cũng có thể thực hiện hành động này bằng cách nhấn Ctrl+F10 (hoặc Control+Command+R trên macOS).

Chạy Biểu tượng chạy

Triển khai tất cả các thay đổi và khởi động lại ứng dụng. Hãy sử dụng tùy chọn này khi không thể áp dụng các thay đổi mà bạn đã thực hiện bằng cách sử dụng một trong các tùy chọn Áp dụng thay đổi. Để tìm hiểu thêm về các loại thay đổi yêu cầu khởi động lại ứng dụng, hãy xem Các giới hạn của tính năng Áp dụng thay đổi.

Bật tính năng Chạy dự phòng cho Áp dụng các thay đổi

Sau khi bạn nhấp vào Áp dụng các thay đổi và Khởi động lại hoạt động hoặc Áp dụng các thay đổi về mã, Android Studio sẽ tạo một APK mới và xác định xem có thể áp dụng các thay đổi đó hay không , Nếu không thể áp dụng các thay đổi này và khiến Ứng dụng thay đổi không hoạt động, Android Studio sẽ nhắc bạn chạy lại Biểu tượng chạy ứng dụng của bạn. Tuy nhiên, nếu không muốn nhận lời nhắc mỗi khi điều này xảy ra, bạn có thể định cấu hình Android Studio để tự động chạy lại ứng dụng của mình khi không thể áp dụng thay đổi.

Để bật hành vi này, hãy làm theo các bước sau:

  1. Mở hộp thoại Cài đặt hoặc Tùy chọn:

    • Trên Windows hoặc Linux, hãy chọn Tệp > Cài đặt từ thanh trình đơn.
    • Trên macOS, hãy chọn Android Studio > Tùy chọn trong thanh trình đơn.
  2. Chuyển đến mục Tạo, Thực thi, Triển khai > Triển khai.

  3. Chọn hộp đánh dấu để bật tính năng tự động chạy dự phòng cho một trong các hành động Áp dụng thay đổi.

  4. Nhấp vào OK.

Các thay đổi tùy thuộc vào nền tảng

Một số tính năng của Áp dụng thay đổi phụ thuộc vào các phiên bản cụ thể của nền tảng Android. Để áp dụng những loại thay đổi này, bạn phải triển khai ứng dụng của mình trên một thiết bị chạy phiên bản Android đó (trở lên).

Loại thay đổi Phiên bản nền tảng tối thiểu
Thêm phương thức Android 11

Giới hạn của tùy chọn Apply Changes (Áp dụng thay đổi)

Tính năng Áp dụng thay đổi được thiết kế để tăng tốc quá trình triển khai ứng dụng. Tuy nhiên, có một số giới hạn đối với việc sử dụng tính năng này. Nếu bạn gặp bất kỳ vấn đề nào khi sử dụng tùy chọn Áp dụng thay đổi, hãy gửi lỗi.

Yêu cầu thay đổi mã yêu cầu khởi động lại ứng dụng

Một số thay đổi về mã và tài nguyên không thể áp dụng được cho đến khi ứng dụng được khởi động lại, bao gồm:

  • Thêm hoặc xóa trường
  • Đang xóa một phương thức
  • Thay đổi chữ ký phương thức
  • Thay đổi hệ số sửa đổi của các phương thức hoặc loại
  • Thay đổi tính kế thừa của lớp
  • Thay đổi giá trị trong các giá trị enum
  • Thêm hoặc xóa tài nguyên
  • Thay đổi tệp kê khai ứng dụng
  • Thay đổi thư viện gốc (tệp SO)

Thư viện và trình bổ trợ

Một số thư viện và plugin tự động thực hiện thay đổi đối với tệp kê khai của ứng dụng hoặc tài nguyên được tham chiếu trong tệp kê khai đó. Việc cập nhật tự động này có thể ảnh hưởng đến việc áp dụng các thay đổi theo những cách sau:

  • Nếu thư viện hoặc plugin thực hiện thay đổi đối với tệp kê khai của ứng dụng, bạn không thể sử dụng Áp dụng thay đổi mã Biểu tượng Áp dụng thay đổi mã hoặc Áp dụng thay đổi và khởi động lại hoạt động Biểu tượng Áp dụng các thay đổi và khởi động lại hoạt động và phải khởi động lại ứng dụng trước khi bạn có thể thấy các thay đổi.
  • Nếu thư viện hoặc plugin thực hiện thay đổi đối với tệp tài nguyên của ứng dụng, bạn không thể sử dụng Áp dụng thay đổi mã Biểu tượng Áp dụng thay đổi mã và bạn phải sử dụng Áp dụng thay đổi và khởi động lại Hoạt động Biểu tượng Áp dụng các thay đổi và khởi động lại hoạt động để xem các thay đổi của bạn.

Bạn có thể tránh các hạn chế này bằng cách tắt tất cả các bản cập nhật tự động cho các biến thể bản dựng gỡ lỗi.

Ví dụ: Crashlytics cập nhật các tài nguyên ứng dụng bằng một mã bản dựng duy nhất trong mỗi bản dựng, điều này ngăn bạn sử dụng Áp dụng thay đổi mã Biểu tượng Áp dụng thay đổi mã và yêu cầu bạn khởi động lại hoạt động của ứng dụng để xem những thay đổi của bạn. Bạn có thể vô hiệu hóa hành vi này để có thể sử dụng Áp dụng thay đổi mã cùng với Crashlytics với các bản dựng gỡ lỗi.

Mã tham chiếu trực tiếp nội dung trong một APK đã cài đặt

Nếu mã của bạn tham chiếu trực tiếp nội dung từ APK của ứng dụng đã được cài đặt trên thiết bị, thì mã đó có thể gây ra sự cố hoặc hoạt động không đúng sau khi nhấp vào Áp dụng thay đổi mã Biểu tượng Áp dụng thay đổi mã. Hành vi này xảy ra khi bạn nhấp vào Áp dụng thay đổi mã, APK cơ bản trên thiết bị sẽ được thay thế trong quá trình cài đặt. Trong những trường hợp này, bạn có thể nhấp vào mục Áp dụng các thay đổi và khởi động lại hoạt động Biểu tượng Áp dụng các thay đổi và khởi động lại hoạt động hoặc Chạy Biểu tượng chạy.