Xem thêm

Xây dựng và chạy ứng dụng của bạn

Huy Erick
Để xem cách ứng dụng của bạn trông như thế nào và hoạt động như thế nào trên một thiết bị, bạn cần xây dựng và chạy ứng dụng đó. Android Studio sẽ thiết lập...

Để xem cách ứng dụng của bạn trông như thế nào và hoạt động như thế nào trên một thiết bị, bạn cần xây dựng 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 của mình trên thiết bị ảo hoặc thiết bị vật lý chỉ bằng vài cú nhấp chuột.

Xây dựng và chạy cơ bản

Để xây dựng và chạy ứng dụng của bạn, làm theo các bước sau:

  1. Trên thanh công cụ, chọn ứng dụng của bạn từ menu cấu hình chạy.

  2. Trong menu thiết bị đích, chọn thiết bị mà bạn muốn chạy ứng dụng trên.

    Menu thiết bị đích.

    Nếu bạn chưa cấu hình bất kỳ thiết bị nào, bạn cần tạo một Thiết bị Ảo Android để sử dụng Trình giả lập Android hoặc kết nối một thiết bị vật lý.

  3. Nhấp 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 nó. Biểu tượng và các thay đổi phong cách phân biệt giữa các lỗi (lựa chọn thiết bị dẫn đến một cấu hình được hỏng) và 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 có thể chạy được).

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

Để xem thông tin chi tiết về quá trình xây dựng, chọn Xem > Cửa sổ Công cụ > Xây dựng hoặc nhấp vào Xây dựng trong thanh công cụ. Cửa sổ công cụ Xây dựng hiển thị các tác vụ mà Gradle thực hiện để xây dựng ứng dụng của bạn, như được hiển thị trong hình 1.

Cửa sổ công cụ Xây dựng trong Android Studio.

  1. Tab Sync: Hiển thị các tác vụ mà Gradle thực hiện để đồng bộ hóa với các tệp dự án của bạn. Tương tự như tab Kết quả Xây dựng, nếu bạn gặp lỗi đồng bộ hóa, hãy chọn các phần tử trong cây để biết thêm thông tin về lỗi. Nó cũng hiển thị một tóm tắt về tác động của các thay đổi tải xuống để xác định xem việc tải xuống các phụ thuộc có ảnh hưởng tiêu cực đến quá trình xây dựng của bạn hay không.

  2. Tab Output Xây dựng: Hiển thị các tác vụ mà Gradle thực hiện dưới dạng một cây, trong đó mỗi nút đại diện cho một giai đoạn xây dựng hoặc một nhóm phụ thuộc tác vụ. Nếu bạn gặp lỗi xây dựng hoặc thời gian biên dịch, kiểm tra cây và chọn một phần tử để đọc đầu ra lỗi, như được hiển thị trong hình 2.

Kiểm tra tab Output Xây dựng để đọc thông báo lỗi.

  1. Tab Build Analyzer: Cung cấp thông tin phân tích hiệu suất xây dựng về dự án của bạn. Xem Khắc phục sự cố hiệu suất xây dựng với Build Analyzer để biết thêm thông tin.

  2. Khởi động lại: Thực hiện lại hành động xây dựng cuối cùng. Nếu bạn đã chạy Xây dựng > Tạo Module Được Chọn lần cuối, nó sẽ xây dựng module hiện tại. Nếu bạn đã chạy Xây dựng > Tạo Dự án, nó sẽ tạo các tệp xây dựng trung gian cho tất cả các module trong dự án của bạn.

  3. Bộ lọc: Lọc ra các cảnh báo, tác vụ hoặc cả hai đã hoàn thành thành công. Điều này có thể làm cho việc tìm vấn đề trong đầu ra dễ dàng hơn.

Nếu các biến thể xây dựng của bạn sử dụng các hương vị sản phẩm, Gradle cũng sẽ triệu hồi các tác vụ để xây dựng các hương vị sản phẩm đó. Để xem danh sách tất cả các tác vụ xây dựng có sẵn, nhấp vào Xem > Cửa sổ công cụ > Gradle hoặc nhấp vào Gradle trong thanh công cụ.

Nếu xảy ra lỗi trong quá trình xây dựng, Gradle có thể đề xuất các 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 của bạn:

  1. Mở hộp thoại Cài đặt hoặc Tùy chọn:
    • Trên Windows hoặc Linux, chọn Tập tin > Cài đặt trong thanh menu.
    • Trên macOS, chọn Android Studio > Tùy chọn trong thanh menu.
  2. Chuyển đế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 kế bên Tùy chọn Dòng lệnh, nhập các tùy chọn dòng lệnh của bạn.
  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 lần sau bạn cố gắng xây dựng ứng dụng của mình.

Tính năng xây dựng và chạy nâng cao

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

  • Để triển khai ứng dụng của bạn ở chế độ gỡ lỗi, nhấp vào Gỡ lỗi. Chạy ứng dụng của bạn ở chế độ gỡ lỗi cho phép bạn đặt các breakpoint trong mã của bạn, xem biến và đánh giá biểu thức khi chạy, và chạy các công cụ gỡ lỗi. Để tìm hiểu thêm, xem Gỡ lỗi ứng dụng của bạn.

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

  • Nếu bạn đang sử dụng Jetpack Compose, Live Edit 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 giao diện người dùng trong thời gian thực mà không cần nhấp vào Chạy lại. Điều này giúp bạn tập trung vào việc viết mã giao diện người dùng với ít gián đoạn nhất có thể. Để biết thêm thông tin, xem phần Live Edit (thử nghiệm).

  • Nếu bạn có một ứng dụng với nhiều biến thể xây dựng hoặc phiên bản, bạn có thể chọn xem biến thể xây dựng nào để triển khai bằng cách sử dụng cửa sổ công cụ Biến thể xây dựng. Để biết thêm thông tin về việc chạy một biến thể xây dựng cụ thể, xem phần Thay đổi biến thể xây dựng.

  • Để điều chỉnh cài đặt cài đặt, khởi chạy và tùy chọn kiểm tra ứ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ề việc tạo cấu hình chạy/gỡ lỗi tùy chỉnh, xem phần Tạo và chỉnh sửa cấu hình chạy/gỡ lỗi.

  • Chúng tôi khuyến nghị bạn sử dụng Android Studio cho nhu cầu phát triển của bạn, nhưng bạn cũng có thể triển khai ứng dụng của mình lên thiết bị ảo hoặc thiết bị vật lý từ dòng lệnh. Để biết thêm thông tin, xem Xây dựng ứng dụng của bạn từ dòng lệnh.

Triển khai từ từ với Áp dụng các thay đổi

Trong Android Studio 3.5 và cao hơn, Áp dụng các thay đổi cho phép bạn đẩy các thay đổi mã và tài nguyên vào ứng dụng đang chạy của bạn mà không cần khởi động lại ứng dụng của bạn - và trong một số trường hợp, mà 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 mức độ khởi động lại ứng dụng khi bạn muốn triển khai và kiểm tra các thay đổi nhỏ, tăng dần trong khi vẫn giữ nguyên trạng thái hiện tại của thiết bị.

Áp dụng các thay đổi sử dụng khả năng trong việc triển khai Android JVMTI được hỗ trợ trên các thiết bị chạy Android 8.0 (mức API 26) hoặc cao hơn. Để tìm hiểu thêm về cách Áp dụng các thay đổi hoạt động, xem Dự án Android Studio Marble: Áp dụng các thay đổi.

Yêu cầu

Các hành động Áp dụng các thay đổi chỉ khả dụng khi bạn đáp ứng các điều kiện sau:

  • Bạn xây dựng tệp APK của ứng dụng của bạn bằng một biến thể xây dựng gỡ lỗi.
  • Bạn triển khai ứng dụng của mình trên một thiết bị hoặc trình giả lập chạy Android 8.0 (mức API 26) hoặc cao hơn.

Sử dụng Áp dụng các thay đổi

Sử dụng các tùy chọn sau khi bạn muốn triển khai các thay đổi của mình lên thiết bị tương thích:

Áp dụng các thay đổi và khởi động lại hoạt động: Cố gắng áp dụng cả các thay đổi tài nguyên và mã bằng cách khởi động lại hoạt động của bạn nhưng không khởi động lại ứng dụng của bạn. Thông thường, bạn có thể sử dụng tùy chọn này khi bạn đã sửa mã trong phần thân của một 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 Control + Alt + F10 (Control + Command + Shift + R trên macOS).

Áp dụng các thay đổi mã: Cố gắng chỉ áp dụng các thay đổi mã của bạn mà không khởi động lại bất cứ điều gì. Thông thường, bạn có thể sử dụng tùy chọn này khi bạn đã sửa đổi mã trong phần thân của một phương thức nhưng bạn 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 sử 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 Control + F10 (Control + Command + R trên macOS).

Chạy: Triển khai tất cả các thay đổi và khởi động lại ứng dụng. Sử dụng tùy chọn này khi những thay đổi bạn đã thực hiện không thể áp dụng bằng cách sử dụng các tùy chọn Áp dụng các thay đổi. Để biết thêm thông tin về các loại thay đổi yêu cầu khởi động lại ứng dụng, xem phần Giới hạn của Áp dụng các thay đổi.

Kích hoạt tính năng chạy dự phòng cho Áp dụng các thay đổi

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 mã, Android Studio sẽ xây dựng một tệp APK mới và xác định xem các thay đổi có thể áp dụng được hay không. Nếu các thay đổi không thể áp dụng và sẽ khiến Áp dụng các thay đổi thất bại, Android Studio sẽ nhắc bạn nhấp vào Chạy Biểu tượng Áp dụng các thay đổi mã lại ứng dụng của bạn thay vào đó.

Nếu bạn không muốn bị nhắc nhở mỗi khi điều này xảy ra, bạn có thể cấu hình Android Studio tự động chạy lại ứng dụng của bạn khi các thay đổi không thể áp dụng. Để kích hoạt hành vi nà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, chọn Tệp > Cài đặt từ thanh menu.
    • Trên macOS, chọn Android Studio > Tùy chọn từ thanh menu.
  2. Điều hướng đến Xây dựng, Thực thi, Triển khai > Triển khai.
  3. Chọn các hộp kiểm để kích hoạt chạy dự phòng tự động cho các hành động Áp dụng các thay đổi hoặc cả hai.
  4. Nhấp vào OK.

Lưu ý: Một số loại thay đổi không khiến Áp dụng các thay đổi thất bại nhưng vẫn yêu cầu bạn khởi động lại ứng dụng của mình bằng cách thủ công trước khi bạn có thể nhìn thấy những thay đổi đó. Ví dụ, nếu bạn thay đổi phương thức onCreate() của một hoạt động, những thay đổi đó chỉ có hiệu lực sau khi hoạt động được khởi chạy lại, vì vậy bạn phải khởi động lại ứng dụng của bạn để nhìn thấy những thay đổi đó.

Thay đổi phụ thuộc vào nền tảng

Một số tính năng của Áp dụng các thay đổi phụ thuộc vào phiên bản cụ thể của nền tảng Android. Để áp dụng các loại thay đổi như vậy, ứng dụng của bạn phải được triển khai trên thiết bị chạy phiên bản Android đó (hoặc cao hơn). Ví dụ, việc thêm một phương thức yêu cầu Android 11 hoặc cao hơn.

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

Á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ũng có một số giới hạn về khi nó có thể được sử dụng.

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

  • Thêm hoặc xóa trường.
  • Xóa một phương thức.
  • Thay đổi chữ ký phương thức.
  • Thay đổi các quy tắc của phương thức hoặc lớp.
  • Thay đổi kế thừa lớp.
  • Thay đổi giá trị trong enums.
  • Thêm hoặc xóa tài nguyên.
  • Thay đổi biểu ngữ ứng dụng.
  • Thay đổi thư viện native (tệp SO).

Thư viện và plugin: Một số thư viện và plugin tự động thay đổi các tệp manifesto của ứng dụng của bạn hoặc các tài nguyên được tham chiếu trong tệp manifesto. Những cập nhật tự động này có thể làm phiền Áp dụng các thay đổi theo các cách sau:

  • Nếu một thư viện hoặc plugin thay đổi tệp manifesto ứng dụng của bạn, bạn sẽ không thể sử dụng Áp dụng các thay đổi. Bạn phải khởi động lại ứng dụng của bạn để xem các thay đổi của mình.

  • Nếu một thư viện hoặc plugin thay đổi các tệp nguồn tài nguyên của ứng dụng của bạn, bạn sẽ không thể sử dụng Áp dụng các thay đổi mã. Bạn phải sử dụng Áp dụng các thay đổi và khởi động lại hoạt động (hoặc khởi động lại ứng dụng của bạn) để xem các thay đổi của mình.

Để tránh những hạn chế này, tắt tất cả các cập nhật tự động cho biến thể xây 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 của bạn bằng một ID xây dựng duy nhất trong mỗi lần xây dựng, điều này ngăn bạn sử dụng Áp dụng các thay đổi mã và yêu cầu bạn khởi động lại hoạt động của ứng dụng để xem các thay đổi của mình. Tắt hành vi này để sử dụng Áp dụng các thay đổi mã cùng với Crashlytics với biến thể xây dựng gỡ lỗi của bạn.

Live Edit

Live Edit là một tính năng thử nghiệm trong Android Studio cho phép bạn cập nhật các thành phần giao diện người dùng trong trình giả lập và thiết bị vật lý trong thời gian thực. Chức năng này giảm thiểu các chuyển đổi ngữ cảnh giữa việc viết và xây dựng ứng dụng của bạn, giúp bạn tập trung vào viết mã mà không bị gián đoạn.

Tìm hiểu thêm về Live Edit

Thay đổi biến thể xây dựng

Mặc định, Android Studio xây dựng phiên bản gỡ lỗi của ứng dụng của bạn, dành cho việc sử dụng chỉ trong quá trình phát triển, khi bạn nhấp vào Chạy. Để thay đổi biến thể xây dựng Android Studio sử dụng, làm một trong các việc sau:

  • Chọn Xây dựng > Chọn Biến thể Xây dựng trong menu.

  • Chọn Xem > Cửa sổ công cụ > Biến thể xây dựng trong menu.

  • Nhấp vào tab Biến thể xây dựng trên thanh công cụ.

Cho các dự án không có mã nguồn/ c+ +, bảng Biến thể xây dựng có hai cột: Mô-đunBiến thể Xây dựng Đã Kích Hoạt. Giá trị Biến thể Xây dựng Đã Kích Hoạt cho mô-đun xác định biến thể xây dựng IDE triển khai cho thiết bị đã kết nối của bạn và hiển thị trong trình soạn thảo.

Bảng Biến thể xây dựng có hai cột cho các dự án không có mã / C++.

Để chuyển đổi giữa các biến thể, nhấp vào ô Biến thể Xây dựng Đã Kích Hoạt cho một mô-đun và chọn biến thể mong muốn từ danh sách.

Cho các dự án có mã nguồn/C++, bảng Biến thể xây dựng có ba cột:

  • Mô-đun
  • Biến thể Xây dựng Đã Kích Hoạt
  • ABI Đã Kích Hoạt

Giá trị Biến thể Xây dựng Đã Kích Hoạt cho mô-đun xác định biến thể xây dựng IDE triển khai cho thiết bị của bạn, trong khi giá trị ABI Đã Kích Hoạt quyết định trình biên dịch sử dụng, nhưng không ảnh hưởng đến những gì được triển khai.

Bảng Biến thể xây dựng thêm cột ABI Đã Kích Hoạt cho các dự án có mã / C++.

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

Mặc định, dự án mới được thiết lập với hai biến thể xây dựng: biến thể gỡ lỗi và biến thể phát hành. Bạn cần xây dựng biến thể phát hành để chuẩn bị ứng dụng của mình để phát hành cho người dùng. Để xác định các biến thể xây dựng khác nhau cho ứng dụng của bạn với các tính năng hoặc yêu cầu thiết bị khác nhau, bạn có thể xác định thêm các biến thể xây dựng.

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

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

Cửa sổ Biến thể xây dựng hiển thị thông báo lỗi xung đột biến thể.

Lỗi này không chỉ ra vấn đề xây dựng với Gradle. Nó chỉ ra rằng IDE Android Studio không thể giải quyết các ký hiệu giữa các biến thể của các mô-đun được 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 đã chọn biến thể v2 trong IDE, bạn sẽ có các ký hiệu chưa được giải quyết trong IDE. Giả sử M1 phụ thuộc vào một lớp chỉ có ở v1; khi M2 được chọn, lớp đó không được biết đến bởi IDE. Vì vậy, nó không thể giải quyết tên lớp và hiển thị lỗi trong mã mô-đun M1.

Các thông báo lỗi này xuất hiện vì IDE không thể tải mã cho nhiều biến thể cùng một lúc. Tuy nhiên, đối với quá trình xây dựng ứng dụng của bạn, biến thể được chọn trong hộp thoại này không ảnh hưởng gì, vì Gradle xây dựng ứng dụng của bạn dựa trên các công thức xây dựng Gradle của bạn, không phải dựa trên những gì đang được tải lên IDE hiện tại.

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ử dụng cấu hình chạy mặc định. Cấu hình chạy xác định liệu có triển khai ứng dụng của bạn từ một APK hoặc một Bó ứng dụng Android cũng như mô-đun để chạy, gói để triển khai, hoạt động để bắt đầu, thiết bị đích, cài đặt giả lập, tùy chọn Logcat và nhiều hơn nữa.

Cấu hình chạy/gỡ lỗi mặc định xây dựng một tệp APK, khởi chạy hoạt động mặc định của dự án và sử dụng hộp thoại Chọn Thiết bị Triển khai để chọn thiết bị đích. Nếu 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 tạo một cấu hình mới ở cấp dự án, cấp mặc định và cấp mô-đun.

Để chỉnh sửa cấu hình chạy/gỡ lỗi, chọn Chạy > Chỉnh Sửa Cấu Hình. Để biết thêm thông tin, xem Tạo và chỉnh sửa Cấu hình Chạy/Gỡ lỗi.

1