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. Việc khắc phục các vấn đề về hiệu suất bao gồm cả 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 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.

Các công cụ này tương thích với Android 5.0 (API cấp 21) trở lên. Để biết thêm thông tin về các công cụ này, hãy xem các trang khác trong phần hướng dẫn sử dụng này.

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
Trình phân tích năng lượng
Trình 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 phát sinh rất ít chi phí hiệu suất. Về cơ bản, APK có thể phân tích là APK phát hành có thêm dòng <profileable android:shell="true"/> trong phần <application> của tệp kê khai.

Tự động tạo và chạy một ứng dụng có thể phân tích

Bạn có thể định cấu hình, tạo và chạy một ứng dụng có thể phân tích chỉ bằng một lần nhấp. Tính năng này yêu cầu thiết bị kiểm thử ảo hoặc thực tế chạy API cấp 29 trở lên và đã có Google Play. Để sử dụng tính năng này, hãy nhấp vào mũi tên bên cạnh biểu tượng Phân tích ứng dụng và chọn một trong hai tuỳ chọn sau:

Trình đơn bản dựng có thể phân tích bằng một lần nhấp.
  • Tính năng Profile 'app' with low overhead (Phân tích "'ứng dụng" có mức hao tổn thấp) sẽ khởi động trình phân tích CPU và bộ nhớ. Trong Trình phân tích bộ nhớ, chỉ tính năng Record Native Allocations (Ghi lại quá trình phân bổ gốc) được bật.

    Profiling with low overhead (Phân tích với mức hao tổn thấp).
  • Tính năng Profile 'app' with complete data (Phân tích ứng dụng với dữ liệu đầy đủ) sẽ khởi động các Trình phân tích CPU, bộ nhớ và năng lượng.

    Phân tích với dữ liệu đầy đủ.

Tạo và chạy một ứng dụng có thể phân tích theo cách thủ công

Để tạo một ứng dụng có thể phân tích theo cách thủ công, 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ể phân tích. Sau khi bạn định cấu hình ứng dụng có thể phân tích, hãy chạy trình phân tích rồi chọn một quy trình có thể phân tích để phân tích.

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 trong <application>. Để biết thêm thông tin chi tiết, 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

Phiên

Bạn có thể lưu dữ liệu Trình phân tích tài nguyên dưới dạng phiên. Các phiên này sẽ được giữ lại cho đến khi bạn thoát khỏi Android Studio. Bằng cách ghi lại thông tin lập hồ sơ trong nhiều phiên và chuyển đổi giữa các phiên đó, bạn có thể so sánh mức sử dụng tài nguyên trong nhiều tình huống.

  • Để bắt đầu một phiên mới, hãy nhấp vào nút Start a new profiling session (Bắt đầu một phiên lập hồ sơ mới) rồi chọn một quá trình ứng dụng trong trình đơn thả xuống sẽ xuất hiện.
  • Khi bạn ghi lại một dấu vết hoặc ghi lại một vùng nhớ khối xếp, Android Studio sẽ thêm dữ liệu đó (cùng với hoạt động mạng của ứng dụng) dưới dạng một mục riêng biệt dành cho phiên hiện tại.
  • Để dừng thêm dữ liệu vào phiên hiện tại, hãy nhấp vào Stop the current profiling session (Dừng phiên lập hồ sơ hiện tại) .
  • Để nhập dấu vết được xuất từ lần chạy Android Studio trước, hãy nhấp vào Start new profiler session (Bắt đầu phiên trình phân tích tài nguyên mới) rồi chọn Load from file (Tải từ tệp).

Bật tính năng hỗ trợ bổ sung dành cho các thiết bị cũ (cấp API < 26)

Để hiển thị dữ liệu lập hồ sơ bổ sung khi chạy thiết bị Android 7.1 trở xuống, Android Studio phải chèn logic theo dõi vào ứng dụng được biên dịch. Những dữ liệu lập hồ sơ bổ sung này bao gồm:

  • Dòng thời gian sự kiện trên tất cả các cửa sổ trình phân tích tài nguyên
  • Số lượng đối tượng được phân bổ trong Memory Profiler (Trình phân tích bộ nhớ)
  • Các sự kiện thu gom rác trong Trình phân tích bộ nhớ
  • Thông tin chi tiết về tất cả các tệp được truyền trong Trình phân tích mạng

Để bật tính năng hỗ trợ bổ sung dành cho các thiết bị cũ, hãy làm theo các bước sau:

  1. Chọn Run > Edit Configurations (Chạy > Chỉnh sửa cấu hình).
  2. Chọn mô-đun ứng dụng của bạn trong ngăn bên trái.
  3. Nhấp vào thẻ Profiling (Lập hồ sơ), sau đó chọn Enable additional support for older devices (API level < 26) (Bật tính năng hỗ trợ bổ sung dành cho các thiết bị cũ (cấp API < 26)).
  4. Tạo bản dựng và chạy lại ứng dụng của bạn.

Việc bật thêm tính năng hỗ trợ dành cho các thiết bị cũ sẽ làm cho quá trình tạo bản dựng trở nên chậm hơn. Vì vậy, chỉ nên bật tính năng này khi muốn bắt đầu lập hồ sơ ứng dụng.

Chạy các trình phân tích tài nguyên độc lập

Các Trình phân tích tài nguyên độc lập trên Android Studio cho phép bạn lập hồ sơ cho ứng dụng của mình mà không cần chạy IDE Android Studio đầy đủ.

Để chạy các trình phân tích tài nguyên độc lập, hãy làm như sau:

  1. Đảm bảo trình phân tích tài nguyên hiện không chạy trong Android Studio.
  2. Chuyển đến thư mục cài đặt và chuyển đến thư mục bin:

    Windows/Linux: studio-installation-folder/bin

    macOS: Việc sử dụng trình phân tích tài nguyên độc lập không được hỗ trợ trên macOS.

  3. Tuỳ thuộc vào hệ điều hành của bạn, hãy chạy profiler.exe hoặc profiler.sh. Màn hình chờ của Android Studio sẽ xuất hiện. Sau khi màn hình chờ biến mất, một cửa sổ trình phân tích tài nguyên sẽ mở ra.