Phân tích hiệu suất của ứng dụng

Một ứng dụng được đánh giá là có hiệu suất kém nếu ứng dụng đó phản hồi chậm, hiển thị ảnh động bị giật, bị treo hoặc ngốn pin. Khắc phục các vấn đề về hiệu suất bao gồm việc xác định các khía cạnh trong đó ứng dụng của bạn sử dụng tài nguyên không hiệu quả (chẳng hạn như CPU, bộ nhớ, đồ hoạ, mạng hoặc pin thiết bị).

Để tìm và khắc phục những vấn đề này, hãy sử dụng các công cụ và kỹ thuật phân tích cũng như đo điểm chuẩn được mô tả trong chủ đề này. Để tìm hiểu các kỹ thuật đo lường hiệu suất và ví dụ về cách sử dụng các kỹ thuật này để giải quyết những vấn đề cụ thể, hãy xem bài viết Đo lường hiệu suất.

Android Studio cung cấp một số công cụ phân tích để giúp bạn tìm và biểu diễn trực quan các vấn đề tiềm ẩn:

  • Trình phân tích CPU giúp theo dõi các vấn đề về hiệu suất trong thời gian chạy.
  • Trình phân tích bộ nhớ giúp theo dõi quá trình phân bổ bộ nhớ.
  • Trình phân tích mạng theo dõi mức sử dụng lưu lượng truy cập mạng.
  • Trình phân tích năng lượng theo dõi mức sử dụng năng lượng để phát hiện các yếu tố làm tiêu hao pin.

Để biết thêm thông tin về các công cụ này, hãy xem trang Trình phân tích tài nguyên trong Android Studio.

Thư viện Điểm chuẩn Jetpack cho phép ứng dụng của bạn đo lường nhiều hoạt động quan trọng khác nhau:

  • Điểm chuẩn vĩ mô: Đo lường các trường hợp sử dụng hiệu suất quan trọng, bao gồm cả khởi động ứng dụng và vẽ lại được kích hoạt bằng các hành động như ảnh động giao diện người dùng hoặc cuộn.
  • Điểm chuẩn vi mô: Đo lường chi phí CPU của các chức năng cụ thể.

Để tìm hiểu thêm về các thư viện này, hãy xem trang Đo điểm chuẩn ứng dụng của bạn.

Ứng dụng có thể định cấu hình

Profileable là cấu hình tệp kê khai được giới thiệu trong Android Q. Cấu hình này có thể chỉ định việc người dùng của thiết bị có thể phân tích tài nguyên của ứng dụng này bằng các công cụ như Android Studio, Simpleperf và Perfetto hay không.

Trước profileable, hầu hết các nhà phát triển chỉ có thể phân tích tài nguyên cho những ứng dụng có thể gỡ lỗi trên Android. Điều này làm tăng đáng kể chi phí hiệu suất do tác động phụ. Các chi phí hiệu suất này có thể vô hiệu hoá quá trình phân tích kết quả, đặc biệt là nếu các chỉ số đó liên quan đến thời gian. Bảng 1 tóm tắt sự khác biệt giữa các ứng dụng có thể gỡ lỗi và có thể định cấu hình.

Bảng 1. Tóm tắt những điểm khác biệt chính giữa các ứng dụng có thể gỡ lỗi và có thể định cấu hình.
Tính năng Có thể gỡ lỗi Có thể định cấu hình
Trình phân tích bộ nhớ Đầy

Có:

Không:

Trình phân tích CPU Đầy

Có:

Không:

Trình phân tích mạng Không
Trình phân tích năng lượng Không
Kiểm soát sự kiện Không

Chúng tôi đã ra mắt Profileable để các nhà phát triển có thể chọn cho phép ứng dụng của họ hiển thị thông tin cho các công cụ phân tích tài nguyên, trong khi vẫn phát sinh rất ít chi phí hiệu suất. APK có thể định cấu hình về cơ bản là APK phát hành có dòng <profileable android:shell="true"/> được thêm vào tệp kê khai.

Để tạo một ứng dụng có thể định cấu hình, trước tiên, bạn cần tạo một ứng dụng phát hành, sau đó cập nhật tệp kê khai của ứng dụng đó để chuyển ứng dụng phát hành thành một ứng dụng có thể định cấu hình.

Xây dựng ứng dụng phát hành

Để xây dựng ứng dụng phát hành nhằm mục đích phân tích tài nguyên, hãy làm như sau:

  1. Ký ứng dụng bằng khoá gỡ lỗi bằng cách thêm các dòng sau vào tệp build.gradle của ứng dụng. Nếu đã có một biến thể bản phát hành đang hoạt động, bạn có thể chuyển sang bước tiếp theo.

            buildTypes {
              release {
                signingConfig signingConfigs.debug
              }
            }
          
  2. Trong Android Studio, hãy chọn Build > Select Build Variant... (Xây dựng > Chọn biến thể xây dựng) và chọn biến thể bản phát hành.

Thay đổi bản phát hành thành có thể định cấu hình

  1. Chuyển đổi ứng dụng phát hành ở phía trên thành một ứng dụng có thể định cấu hình bằng cách mở tệp AndroidManifest.xml và thêm nội dung sau đây. Để biết thêm thông tin, hãy xem phần Xây dựng ứng dụng để phát hành.

    <profileable android:shell="true"/>

  2. Tuỳ thuộc vào phiên bản SDK, bạn có thể cần thêm các dòng sau vào tệp build.gradle của ứng dụng.

          aaptOptions {
            additionalParameters =["--warn-manifest-validation"]
          }
        

Tạo cấu hình cho một ứng dụng có thể định cấu hình

Để phân tích tài nguyên cho một ứng dụng có thể định cấu hình, bạn có thể làm như sau:

  1. Khởi động ứng dụng trên trình mô phỏng hoặc thiết bị phát triển.

  2. Trong Android Studio, hãy chạy trình phân tích tài nguyên bằng cách chọn View > Tool Windows > Profiler (Chế độ xem > Cửa sổ công cụ > Trình phân tích tài nguyên).

  3. Sau khi chạy ứng dụng, hãy nhấp vào nút Nút dấu cộng của trình phân tích tài nguyên trong trình phân tích tài nguyên để xem trình đơn thả xuống. Chọn thiết bị của bạn, sau đó chọn mục của ứng dụng trong phần Other profileable processes (Các quy trình có thể định cấu hình khác).

    Trình đơn có thể định cấu hình
  4. Trình phân tích tài nguyên phải đi kèm với ứng dụng. Chỉ có thể sử dụng Trình phân tích CPU và Trình phân tích bộ nhớ với dung lượng giới hạn cho Trình phân tích bộ nhớ.

    Chế độ xem phiên có thể định cấu hình
    Trình đơn có thể định cấu hình
    Trình đơn có thể định cấu hình

Lưu ý: Trong khi phân tích tài nguyên ứng dụng, bạn nên tắt tính năng Chạy tức thì. Có một tác động nhỏ về hiệu suất khi sử dụng tính năng Chạy tức thì và tác động lớn hơn một chút khi cập nhật các phương thức. Mức độ tác động đến hiệu suất này có thể ảnh hưởng đến thông tin do các công cụ phân tích hiệu suất cung cấp. Ngoài ra, các phương thức mã giả lập được tạo trong khi sử dụng tính năng này có thể phức tạp hoá các dấu vết ngăn xếp.