Tạo và chạy ứng dụng

Để xem ứng dụng sẽ hiển thị thế nào và hoạt động ra sao trên một thiết bị, bạn cần phải tạo và chạy ứng dụng đó. Android Studio sẽ thiết lập các dự án mới để bạn có thể triển khai ứng dụng cho thiết bị ảo hoặc thiết bị thực chỉ bằng vài lần nhấp.

Phần tổng quan này sẽ tập trung giới thiệu cách dùng Android Studio để tạo và chạy ứng dụng cho mục đích kiểm thử và gỡ lỗi. Hãy xem phần Tạo ứng dụng để phát hành cho người dùng, ở đó hướng dẫn cách dùng Android Studio để tạo ứng dụng và phát hành cho người dùng. Nếu bạn muốn biết thêm thông tin chi tiết về cách quản lý và tuỳ chỉnh bản dựng thông qua hoặc không thông qua Android Studio, hãy xem phần Định cấu hình bản dựng.

Quy trình tạo và chạy cơ bản

Để 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 trong trình đơn cấu hình chạy.
  2. Trong trình đơn 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 thiết bị mục tiêu.

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

  3. Nhấp vào biểu tượng Chạy .

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

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

Để xem thông tin chi tiết về quy trình xây dựng, hãy chọn View > Tool Windows > Build (Xem > Cửa sổ công cụ > Tạo) hoặc nhấp vào Build (Tạo) trên thanh cửa sổ công cụ. Cửa sổ công cụ Build (Tạo) sẽ hiển thị những nhiệm vụ mà Gradle thực thi để tạo ứng dụng của bạn, như minh hoạ trong hình 1.

Hình 1. Cửa sổ công cụ Build (Tạo) trong Android Studio.
  1. Thẻ Sync (Đồng bộ hoá): Cho thấy những nhiệm vụ mà Gradle thực thi để đồng bộ hoá với các tệp dự án của bạn. Tương tự với thẻ Build Output (Kết quả của bản dựng), nếu bạn gặp lỗi đồng bộ hoá, hãy chọn các phần tử trong cây để tìm thêm thông tin về lỗi.
  2. Thẻ Build Output (Kết quả của bản dựng): Hiển thị những nhiệm vụ 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 bản dựng hoặc một nhóm các phần phụ thuộc của nhiệm vụ. Nếu bạn gặp lỗi thời gian xây dựng hoặc thời gian biên dịch, hãy kiểm tra cây rồi chọn một phần tử để đọc kết quả lỗi, như minh hoạ trong hình 2.
    Hình 2. Kiểm tra thẻ Build Output (Kết quả của bản dựng) để xem thông báo lỗi.
  3. Thẻ Build Analyzer (Trình phân tích bản dựng): Cung cấp thông tin phân tích hiệu suất của bản dựng liên quan đến bản dựng của bạn. Hãy xem phần Khắc phục sự cố về hiệu suất bản dựng bằng Trình phân tích bản dựng để biết thêm thông tin.
  4. Restart (Khởi động lại): Thực hiện thao tác tương tự như chọn Build > Make Project (Tạo > Tạo dự án), 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.
  5. Filters (Lọc): Lọc ra các cảnh báo, nhiệm vụ đã hoàn tất thành công hoặc cả hai. Điều này giúp dễ dàng phát hiện thấy các vấn đề trong kết quả.

Nếu các biến thể 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 nhiệm vụ để tạo các phiên bản sản phẩm đó. Để xem danh sách tất cả các nhiệm vụ có sẵn trong bản dựng, hãy nhấp vào View > Tool Windows > Gradle (Xem > Cửa sổ công cụ > Gradle) hoặc nhấp vào Gradle trong thanh cửa sổ công cụ.

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

  1. Mở hộp thoại Settings (Cài đặt) hoặc Preferences (Lựa chọn ưu tiên):
    • Trên Windows hoặc Linux, hãy chọn File > Settings (Tệp > Cài đặt) trong thanh trình đơn.
    • Trên macOS, hãy chọn Android Studio > Preferences (Lựa chọn ưu tiên) trong thanh trình đơn.
  2. Chuyển đến phần Build, Execution, Deployment > Compiler (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 tuỳ chọn dòng lệnh.
  4. Nhấp vào OK để lưu và thoát.

Gradle sẽ áp dụng các lựa chọn dòng lệnh này khi bạn thử tạo ứng dụng vào lần tiếp theo.

Các tính năng tạo và chạy nâng cao

Cách mặc định để tạo và chạy ứng dụng trong Android Studio là đủ để kiểm thử một ứng dụng đơn giản. Tuy nhiên, bạn có thể dùng các tính năng tạo và chạy sau đây cho những trường hợp sử dụng nâng cao hơn:

  • Để triển khai ứng dụng ở chế độ gỡ lỗi, hãy nhấp vào biểu tượng Gỡ lỗi . Bằng cách chạy ứng dụng ở chế độ gỡ lỗi, bạn có thể đặt các điểm ngắt trong mã, kiểm tra các biến và đánh giá biểu thức trong thời gian chạy cũng như chạy các công cụ gỡ lỗi. Hãy xem phần Gỡ lỗi ứng dụng để tìm hiểu thêm.

  • Nếu bạn có một ứng dụng lớn và phức tạp hơn, hãy dùng tính năng Áp dụng các thay đổi thay vì nhấp vào biểu tượng Chạy . Điều này giúp tiết kiệm thời gian do bạn không cần khởi động lại ứng dụng mỗi khi muốn triển khai một thay đổi. Để biết thêm thông tin về tính năng Áp dụng các thay đổi, hãy xem phần Triển khai nhanh hơn bằng tính năng Áp dụng các thay đổi.

  • Nếu bạn đang dùng Jetpack Compose, thì tính năng Chỉnh sửa trực tiếp là một tính năng thử nghiệm cho phép bạn cập nhật các thành phần kết hợp theo thời gian thực mà không cần phải nhấp lại vào biểu tượng Chạy . Điều này cho phép bạn tập trung viết mã giao diện người dùng mà gần như không bị gián đoạn. Để biết thêm thông tin, hãy xem phần Chỉnh sửa trực tiếp (thử nghiệm).

  • Nếu ứng dụng của bạn có nhiều biến thể bản dựng hoặc phiên bản, thì bạn có thể dùng cửa sổ công cụ Build Variants (Biến thể bản dựng) để chọn biến thể bản dựng cần triển khai. Để biết thêm thông tin về cách chạy một biến thể bản dựng cụ thể, hãy xem phần Thay đổi biến thể xây dựng.

  • Nếu muốn tinh chỉnh các lựa chọn cài đặt, chạy và kiểm thử ứng dụng, bạn có thể thay đổi cấu hình chạy/gỡ lỗi. Để biết thêm thông tin về cách tạo cấu hình chạy/gỡ lỗi tuỳ chỉnh, hãy xem phần Tạo cấu hình chạy/gỡ lỗi.

  • Bạn nên dùng Android Studio cho các nhu cầu phát triển ứng dụng, nhưng cũng có thể triển khai ứng dụng cho thiết bị thực hoặc thiết bị ảo từ dòng lệnh. Hãy xem phần Xây dựng ứng dụng từ dòng lệnh để biết thêm thông tin.

Triển khai nhanh hơn bằng tính năng Áp dụng các thay đổi

Với tính năng Áp dụng các thay đổi trong Android Studio 3.5 trở lên, bạn có thể áp dụng các thay đổi về tài nguyên và mã cho ứ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à kiểm thử 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ị.

Tính năng Áp dụng các thay đổi sử dụng những chức năng trong quá trình triển khai JVMTI 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 các thay đổi, hãy xem phần 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 tuỳ chọn Apply Changes (Áp dụng thay đổi)

Hãy sử dụng các tuỳ 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:

Biểu tượng Áp dụng các thay đổi và bắt đầu lại hoạt động Biểu tượng Áp dụng các thay đổi và bắt đầu lại hoạt động: Cố gắng áp dụng cả các thay đổi về tài nguyên và mã bằng cách bắt đầu lại hoạt động nhưng không khởi động lại ứng dụng. Nhìn chung, bạn có thể sử dụng lựa 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 thao tác này bằng cách nhấn tổ hợp phím Control + Alt + F10 (Control + Command + Shift + R trên macOS).

Biểu tượng Áp dụng thay đổi mã Biểu tượng Áp dụng thay đổi mã: Cố gắng chỉ áp dụng các thay đổi đối với mã mà không cần phải khởi động lại bất cứ thứ gì. Nhìn chung, bạn có thể sử dụng lựa 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 bất kỳ tài nguyên nào. Nếu bạn đã sửa đổi cả mã và tài nguyên, hãy dùng tính năng Áp dụng các thay đổi và bắt đầu lại hoạt động.

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

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 lựa chọn này khi không thể áp dụng các thay đổi bạn đã thực hiện bằng một trong các lựa chọn Áp dụng các 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 phần Các giới hạn của tính năng Áp dụng các thay đổi.

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

Khi bạn nhấp vào Apply Changes and Restart Activity (Áp dụng các thay đổi và bắt đầu lại hoạt động) hoặc Apply Code Changes (Áp dụng thay đổi 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 đó và sẽ khiến tính năng Áp dụng các thay đổi bị lỗi, thì Android Studio sẽ nhắc bạn Chạy Biểu tượng Chạy lại ứng dụng.

Nếu không muốn nhận lời nhắc mỗi khi điều này xảy ra, thì bạn có thể định cấu hình để Android Studio tự động chạy lại ứng dụng khi không thể áp dụng các 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 Settings (Cài đặt) hoặc Preferences (Lựa chọn ưu tiên):

    • Trên Windows hoặc Linux, hãy chọn File > Settings (Tệp > Cài đặt) trong trình đơn.
    • Trên macOS, hãy chọn Android Studio > Preferences (Android Studio > Lựa chọn ưu tiên) trong trình đơn.
  2. Chuyển đến phần Build, Execution, Deployment > Deployment (Xây dựng, 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 hoặc cả hai hành động Áp dụng các thay đổi.

  4. Nhấp vào OK.

Các thay đổi tuỳ 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 trên một thiết bị chạy phiên bản Android đó (trở lên). Ví dụ: để thêm một phương thức, cần có Android 11 trở lên.

Giới hạn của tính năng Áp dụng các thay đổi

Tính năng Áp dụng các 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 về thời điểm có thể dùng tính năng này.

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

Một số thay đổi đối với mã và tài nguyên sẽ 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 xoá trường
  • Đang xoá một phương thức
  • Thay đổi chữ ký phương thức
  • Thay đổi đối tượng 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 xoá 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à trình bổ trợ tự động thực hiện các 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 tính năng Áp dụng các thay đổi theo những cách sau:

  • Nếu thư viện hoặc trình bổ trợ thực hiện các thay đổi đối với tệp kê khai của ứng dụng, thì bạn không thể dùng tính năng Áp dụng các thay đổi. Bạn phải khởi động lại ứng dụng để xem các thay đổi của mình.
  • Nếu thư viện hoặc trình bổ trợ thực hiện các thay đổi đối với tệp tài nguyên của ứng dụng, thì bạn không thể dùng tính năng Áp dụng thay đổi mã Biểu tượng Áp dụng thay đổi mã. Bạn phải dùng tính năng Áp dụng các thay đổi và bắt đầu lại hoạt động Biểu tượng Áp dụng các thay đổi và bắt đầu lại hoạt động (hoặc khởi động lại ứng dụng) để xem các thay đổi.

Để tránh những giới hạn này, hãy tắt mọi bản cập nhật tự động cho các biến thể bản dựng gỡ lỗi của bạn.

Ví dụ: Firebase 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 tính nă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 mình. Hãy vô hiệu hoá hành vi này để sử dụng tính năng Áp dụng thay đổi mã cùng với Crashlytics với các bản 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 không hoạt động bình thường sau khi bạn nhấp vào biểu tượng Áp dụng thay đổi mã Biểu tượng Áp dụng thay đổi mã. Hành vi này xảy ra do khi bạn nhấp vào biểu tượng Áp dụng thay đổi mã, tệp APK cơ sở trên thiết bị sẽ bị 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 biểu tượng Áp dụng các thay đổi và bắt đầu 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 biểu tượng Chạy Biểu tượng Chạy.

Nếu bạn gặp bất kỳ vấn đề nào khác khi dùng tính năng Áp dụng các thay đổi, hãy gửi lỗi.

Chỉnh sửa trực tiếp (thử nghiệm)

Chỉnh sửa trực tiếp là một tính năng thử nghiệm trong các bản phát hành Canary của Android Studio Flamingo, 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ó hai chế độ:

  • Thủ công: Á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 đối với 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.

Tính năng Chỉnh sửa trực tiếp tập trung vào những thay đổi đối với 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:

  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 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.
  3. 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 Biểu tượng Chạy để khởi động lại ứng dụng và tiếp tục Chỉnh sửa trực tiếp.

Ảnh GIF minh hoạ việc sử dụng tính năng Chỉnh sửa trực tiếp trên thiết bị

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

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 nhằm 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
  1. Trước khi bạn bắt đầu, hãy đảm bảo bạn đã cài đặt phiên bản Canary mới nhất của Android Studio Flamingo và cấp độ API của thiết bị thực hoặc trình mô phỏng là từ 30 trở lên.

  2. Mở Android Studio và 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).

  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.

    Chọn mẫu trong Android StudioHình 4. Các mẫu bạn có thể chọn. Đối với Chỉnh sửa trực tiếp, hãy chọn Empty Compose Activity (Hoạt động trống trong Compose).

  4. Điền các thông tin bắt buộc: name, package name, save location, language (set to Kotlin), và minimum SDK (tên, tên gói, vị trí lưu, ngôn ngữ (được đặt thành Kotlin) và SDK tối thiểu) vào hộp thoại New Project (Dự án mới).

    Ví dụ về các chế độ cài đặt dự án ở Bước 4 được nhập vào AS Hình 5. Ví dụ về chế độ cài đặt dự án.

  5. Nhấp vào Finish (Hoàn tất).

Bật tính năng Chỉnh sửa trực tiếp
  1. 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 > Preferences > Editor > Live Edit (Android Studio > Lựa chọn ưu tiên > Trình chỉnh sửa > Chỉnh sửa trực tiếp).
  2. 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 á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.

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

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

  4. Nhấp vào biểu tượng Chạy Nút giao diện người dùng để triển khai ứng dụng, sau đó nhấp vào Split (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.

  5. Sau khi bạn bật tính năng Chỉnh sửa trực tiếp, dấu kiểm màu xanh lục Chỉnh sửa trực tiếp sẽ xuất hiện ở 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 Live Edit (Chỉnh sửa trực tiếp)

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, bản xem trước 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 trong bản xem trước, như minh hoạ trong hình 7.

Các thay đổi đối với phương thức Greeting được áp dụng trên thiết bị

Hình 7. Bản xem trước hiển thị các thay đổi mà tính năng Chỉnh sửa trực tiếp thực hiện đối với phương thức Greeting.

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 trong ngăn xem trước, có thể Android Studio không cập nhật được nội dung bạn đã chỉnh sửa. Hãy kiểm tra xem chỉ báo tính năng Chỉnh sửa trực tiếp trên giao diện người dùng có hiển thị biểu tượng tạm dừng hay không, như minh hoạ trong hình 8. Biểu tượng này cho biết lỗi biên dịch. Để biết thông tin về lỗi và các đề xuất cho cách khắc phục, hãy nhấp vào chỉ báo lỗi đó.

Live Edit status (Trạng thái của tính năng Chỉnh sửa trực tiếp) trên giao diện người dùng

Hình 8. Chỉ báo trạng thái tính năng Chỉnh sửa trực tiếp.

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 tại.

  • Tính năng Chỉnh sửa trực tiếp có thể không hỗ trợ báo cáo và xử lý lỗi bằng Compose 1.2.0 trở xuống. Hãy dùng phiên bản Compose 1.3.0 trở lên để có trải nghiệm tối ưu.
  • Tính năng Chỉnh sửa trực tiếp yêu cầu trình mô phỏng hoặc thiết bị thực phải 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, tức là bạn không thay đổi được tên hàm hoặc chữ ký, thêm hoặc xoá hàm hay thay đổi các trường không phải hàm.
  • Các lớp do tính năng Chỉnh sửa trực tiếp sửa đổi có thể phải chịu một số hao tổn về hiệu suất. Hãy chạy ứng dụng và dùng 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 Run (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 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 toàn bộ 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.
  • Nếu dự án của bạn đang sử dụng Compose phiên bản 1.2 trở lên, thì chỉ lần thay đổi mã đầu tiên đối với một tệp nhất định mới đặt lại thành phần. Các lần chỉnh sửa tiếp theo đối với tệp đó sẽ không đặt lại thành phần.
  • 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.

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 hiện có sẵn trong kênh Android Studio Flamingo Canary dưới dạng tính năng thử nghiệm. Để bật hoặc tắt tính năng này, hãy chuyển đến phầ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 > Preferences > Editor > Live Edit (Android Studio > Lựa chọn ưu tiên > Trình chỉnh sửa > Chỉnh sửa trực tiếp)).
  • Khi nào nên 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 những cập nhật đối với các thành phần trải nghiệm người dùng (chẳng hạn như các cập nhật về đối tượng sửa đổi và ảnh động) có hiệu lực 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. 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 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ư chế độ tối, ngôn ngữ và tỷ lệ phông chữ.

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 (chỉ dùng trong quá trình phát triển) khi bạn nhấp vào nút Run (Chạy) Nút giao diện người dùng.

Để thay đổi biến thể bản dựng mà Android Studio sử dụng, hãy làm theo một trong những cách sau:

  • Chọn Build > Select Build Variant (Tạo > Chọn biến thể bản dựng) trong trình đơn.
  • Chọn View > Tool Windows > Build Variants (Xem > Cửa sổ công cụ > Biến thể bản dựng) trong trình đơn.
  • Nhấp vào thẻ Build Variants (Biến thể bản dựng) trên thanh cửa sổ công cụ.

Đối với các dự án không có mã gốc/C++, bảng Build Variants (Biến thể bản dựng) có 2 cột: Module (Mô-đun) và Active Build Variant (Biến thể bản dựng đang hoạt động). Giá trị Active Build Variant (Biến thể bản dựng đang hoạt động) của 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à xuất hiện trong trình chỉnh sửa.

Hình 9. Bảng Build Variants (Biến thể bản dựng) có 2 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 ô Active Build Variant (Biến thể bản dựng đang hoạt động) của một mô-đun và chọn biến thể mong muốn trong danh sách.

Đối với các dự án có mã gốc/C++, bảng Build Variants (Biến thể bản dựng) có 3 cột sau:

  • Module (Mô-đun)
  • Active Build Variant (Biến thể bản dựng đang hoạt động)
  • Active ABI (ABI đang hoạt động)

Giá trị Active Build Variant (Biến thể bản dựng đang hoạt động) của mô-đun xác định biến thể bản dựng mà IDE triển khai cho thiết bị của bạn và xuất hiện trong trình chỉnh sửa. Đối với các mô-đun gốc, giá trị Active ABI (ABI đang hoạt động) 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 10. Bảng Build Variants (Biến thể bản dựng) sẽ thêm cột Active ABI (ABI đ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 ô của cột Active Build Variant (Biến thể bản dựng đang hoạt động) hoặc Active ABI (ABI đang hoạt động) và chọn biến thể hoặc ABI mong muốn trong danh sách. Sau khi bạn thay đổi lựa chọn, IDE sẽ tự động đồng bộ hoá dự án của bạn. Việc thay đổi cột cho một ứng dụng hoặc thay đổi mô-đun thư viện sẽ áp dụng 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 2 biến thể bản dựng: 1 biến thể gỡ lỗi và 1 biến thể bản phát hành. Bạn cần tạo 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. Để xác định các biến thể khác của ứng dụng có các tính năng hoặc yêu cầu khác nhau về thiết bị, bạn có thể xác định các biến thể bản dựng bổ sung.

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

Trong hộp thoại Build Variants (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 xung đột giữa các biến thể bản dựng, chẳng hạn như sau:

Cửa sổ Build Variant (Biến thể bản dựng) cho thấy 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. Lỗi này cho biết IDE của Android Studio không thể phân giải các biểu tượng giữa những biến thể của các 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 sẽ thấy biểu tượng chưa phân giải trong IDE. Giả sử M1 phụ thuộc vào một lớp chỉ có trong v1; khi bạn chọn v2, lớp đó không được IDE xác định. Do đó, IDE không phân giải được tên lớp và hiển thị lỗi trong mã của mô-đun 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 tạo ra tác động vì Gradle tạo ứng dụng của bạn bằng mã nguồn được chỉ định trong hướng dẫn cho bản dựng Gradle, chứ không dựa trên nội dung hiện được tải trong IDE.

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 chạy sẽ chỉ định việc triển khai ứng dụng của bạn từ một tệp APK hay Android App Bundle, cũng như chỉ định mô-đun sẽ chạy, gói sẽ triển khai, hoạt động sẽ bắt đầu, thiết bị mục tiêu, chế độ cài đặt trình mô phỏng, tuỳ chọn Logcat và nhiều tuỳ chọn khác.

Cấu hình chạy/gỡ lỗi mặc định tạo APK, chạy hoạt động dự án mặc định và sử dụng hộp thoại Select Deployment Target (Chọn mục tiêu triển khai) để lựa chọn thiết bị mục tiêu. Nếu các chế độ 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ể tuỳ chỉnh cấu hình chạy/gỡ lỗi hoặc 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 Run > Edit Configurations (Chạy > Chỉnh sửa cấu hình). Để biết thêm thông tin, hãy xem phần Tạo và chỉnh sửa cấu hình chạy/gỡ lỗi.