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 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.
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 | Có | Không |
Trình phân tích năng lượng | Có | Không |
Kiểm soát sự kiện | Có | 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:

Profile 'app' with low overhead (Phân tích ứng dụng với mức hao tổn thấp) sẽ khởi động các 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.
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.
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:
-
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 } }
-
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
-
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"/>
-
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:
-
Khởi động ứng dụng trên trình mô phỏng hoặc thiết bị phát triển.
-
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).
-
Sau khi chạy ứng dụng, hãy nhấp vào nút
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 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ớ.