Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Một ứng dụng có hiệu suất kém nếu ứng dụng đó phản hồi chậm, hiện ả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 phân tích tài nguyên ứng dụng hoặ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ạ hoặc pin thiết bị). Chủ đề này mô tả các công cụ và kỹ thuật của Android Studio để khắc phục các sự cố hiệu suất thường gặp.
Để tìm hiểu cách chạy trình phân tích tài nguyên độc lập mà không cần chạy toàn bộ IDE Android Studio (chỉ dành cho Windows hoặc Linux), hãy xem phần Chạy trình phân tích tài nguyên độc lập.
Yêu cầu
Để phân tích tài nguyên cho ứng dụng, bạn nên có những thông tin sau:
Ứng dụng có biến thể bản phát hành đã bật cấu hình tệp kê khai profileable, còn gọi là ứng dụng có thể phân tích. Theo mặc định, các ứng dụng sẽ đặt cấu hình này thành true. Để kiểm tra hoặc thay đổi cấu hình này, hãy mở tệp kê khai hoặc tệp AndroidManifest.xml của ứng dụng rồi tìm trong phần <application> để biết cấu hình tệp kê khai profileable:
<profileable android:shell="true" />
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.
Trình bổ trợ Android cho Gradle 7.3 trở lên.
Ứng dụng có thể phân tích so với ứng dụng có thể gỡ lỗi
Ứng dụng có thể định cấu hình cho phép bạn thực hiện hầu hết các tác vụ phân tích tài nguyên phổ biến, nhưng bạn nên sử dụng ứng dụng có thể gỡ lỗi nếu cần ghi lại hoạt động phân bổ Java/Kotlin hoặc chụp tệp báo lỗi. Một quy trình ứng dụng có thể gỡ lỗi và thiết bị chạy API cấp 26 trở lên cũng cho phép bạn xem tiến trình Tương tác, trong đó hiển thị các sự kiện tương tác của người dùng và sự kiện trong vòng đời ứng dụng, trong các chế độ xem tác vụ cung cấp tiến trình đó.
Ứng dụng có thể gỡ lỗi dựa trên biến thể bản dựng debug của ứng dụng và cho phép bạn sử dụng các công cụ phát triển như trình gỡ lỗi; tuy nhiên, ứng dụng này sẽ gây ra một số chi phí về hiệu suất. Ứng dụng có thể phân tích tài nguyên dựa trên biến thể bản dựng release của ứng dụng và cho phép một tập hợp con các tác vụ phân tích tài nguyên phổ biến mà không gây hao tổn hiệu suất của bản gỡ lỗi.
Tạo và chạy một ứng dụng có thể phân tích
Để tạo và chạy một ứng dụng có thể định cấu hình trong Android Studio, hãy làm theo các bước sau:
Chọn biến thể bản phát hành (Build > Select Build Variant (Tạo > Chọn biến thể bản dựng)).
Nhấp vào Thao tác khác
> Phân tích "ứng dụng" có mức hao tổn thấp
hoặc Phân tích "ứng dụng" có dữ liệu đầy đủ
("ứng dụng" là tên của cấu hình chạy, vì vậy, tên này có thể khác với tên của bạn). Để chọn giữa hai tuỳ chọn này, hãy xem phần Yêu cầu.
Ứng dụng sẽ mở trên thiết bị kiểm thử và ngăn Profiler (Trình phân tích tài nguyên) sẽ mở trong Android Studio.
Để bắt đầu một tác vụ phân tích tài nguyên, hãy làm theo các bước sau:
Chọn một quy trình trong danh sách trên thẻ Trang chủ trong ngăn Trình phân tích tài nguyên. Trong hầu hết các trường hợp, bạn nên chọn quy trình hàng đầu đại diện cho ứng dụng của mình.
Chọn một tác vụ phân tích tài nguyên trong mục Tasks (Tác vụ). Để biết thêm thông tin về các tác vụ, hãy xem các trang khác trong phần này. Không phải mọi quy trình đều có thể sử dụng mọi tác vụ phân tích tài nguyên. Nếu bạn không biết nên bắt đầu từ đâu, hãy xem tổng quan về hoạt động hiệu suất bằng cách kiểm tra ứng dụng của bạn trực tiếp.
Sử dụng trình đơn thả xuống Start profiler task from (Bắt đầu tác vụ trình phân tích tài nguyên từ) để chọn bắt đầu tác vụ trình phân tích tài nguyên từ khi khởi động hay đính kèm vào quy trình khi đang chạy. Nếu đang cố gắng cải thiện thời gian khởi động ứng dụng hoặc ghi lại một quy trình diễn ra trong quá trình khởi động ứng dụng, bạn nên bao gồm cả quá trình khởi động; nếu không, bạn có thể bắt đầu lập hồ sơ ở trạng thái hiện tại của ứng dụng.
Nhấp vào Bắt đầu tác vụ trình phân tích tài nguyên. Tác vụ sẽ bắt đầu trong thẻ riêng.
Tương tác với ứng dụng để các hoạt động được kích hoạt.
Dừng ghi (nếu có), đợi quá trình phân tích cú pháp và xem kết quả.
So sánh, xuất và nhập dấu vết
Khi bạn dừng một tác vụ phân tích tài nguyên, tác vụ đó sẽ tự động được lưu trong thẻ Bản ghi trước đây trong ngăn Trình phân tích tài nguyên. Bạn có thể sử dụng các bản ghi đã lưu này để so sánh mức sử dụng tài nguyên trong nhiều tình huống. Các bản ghi sẽ được lưu trong suốt phiên Android Studio hiện tại; nếu bạn muốn giữ lại các bản ghi đó lâu hơn, hãy xuất các bản ghi đó bằng cách nhấp vào biểu tượng Export recording (Xuất bản ghi) .
Không phải loại dấu vết nào cũng có thể xuất.
Để nhập dấu vết, chẳng hạn như từ một lần chạy Android Studio trước, hãy nhấp vào biểu tượng Import recording (Nhập bản ghi) trong thẻ Past Recordings (Bản ghi trước) rồi chọn tệp dấu vết. Bạn cũng có thể nhập tệp bằng cách kéo tệp đó vào cửa sổ trình chỉnh sửa Android Studio.
Chỉnh sửa cấu hình bản ghi
Để chỉnh sửa cấu hình ghi tác vụ của trình phân tích tài nguyên, hãy nhấp vào chế độ cài đặt trình phân tích tài nguyên .
Bạn có thể bật/tắt hai chế độ cài đặt chính:
Đối với các tác vụ liên quan đến hoạt động lấy mẫu, Khoảng thời gian lấy mẫu thể hiện thời gian giữa mỗi mẫu. Khoảng thời gian bạn chỉ định càng ngắn thì bạn càng nhanh đạt được
giới hạn kích thước tệp cho dữ liệu được ghi lại.
Giới hạn kích thước tệp thể hiện lượng dữ liệu có thể ghi vào thiết bị đã kết nối. Khi bạn dừng ghi, Android Studio sẽ phân tích cú pháp dữ liệu này và hiển thị dữ liệu trong cửa sổ trình phân tích tài nguyên. Nếu bạn tăng giới hạn và ghi lại một lượng lớn dữ liệu, Android Studio sẽ mất nhiều thời gian hơn để phân tích cú pháp tệp và có thể không phản hồi.
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2024-11-22 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2024-11-22 UTC."],[],[],null,["# Profile your app performance\n\nAn app has poor performance if it responds slowly, shows choppy animations,\nfreezes, or consumes too much power. Fixing performance problems involves\n*profiling* your app, or identifying areas in which your app makes inefficient\nuse of resources such as the CPU, memory, graphics, or the device\nbattery. This topic describes the Android Studio tools and techniques to use to\nfix common performance problems.\n\nTo learn how to run standalone profilers without running the entire Android\nStudio IDE (Windows or Linux only), see\n[Run the standalone profiler](/studio/profile/standalone-profiler).\n\nRequirements\n------------\n\nTo profile your app, we recommend having the following:\n\n- An app with a release build variant that has the `profileable` manifest\n configuration enabled, also known as a profileable app. By default, apps have\n this configuration set to true. To check or change this configuration open\n your app's manifest or `AndroidManifest.xml` file and look in the\n `\u003capplication\u003e` section for the\n [`profileable`](/guide/topics/manifest/profileable-element) manifest\n configuration:\n\n \u003cprofileable android:shell=\"true\" /\u003e\n\n | **Note:** Use a [debuggable](/studio/debug) app instead of a profileable app if you need to record Java/Kotlin allocations, capture a heap dump, or see the **Interaction** timeline in task views that provide it.\n- A virtual or physical test device that runs API level 29 or higher and has\n Google Play.\n\n- Android Gradle Plugin 7.3 or higher.\n\n### Profileable v. debuggable apps\n\nA profileable app lets you do most common profiling tasks, but you should use a\n[debuggable](/studio/debug) app instead if you need to record Java/Kotlin\nallocations or capture a heap dump. A debuggable app process and device running\nAPI level 26 or higher also lets you see the **Interaction** timeline, which\nshows user interaction and app lifecycle events, in task views that provide it.\n\nA debuggable app is based on the `debug` build variant of your app and lets you\nuse development tools such as the [debugger](/studio/debug); however, it comes\nwith some performance costs. A profileable app is based on the `release` build\nvariant of your app and enables a subset of common profiling tasks without the\nperformance overhead of the debug build.\n| **Note:** In Android Studio, click **Profile 'app' with low overhead** to use a profileable app and click **Profile 'app' with complete data** to use a debuggable app.\n\nBuild and run a profileable app\n-------------------------------\n\nTo build and run a profileable app in Android Studio, follow these steps:\n\n1. [Create a run/debug configuration](/studio/run/rundebugconfig) if you don't already have one.\n2. Select your release build variant (**Build \\\u003e Select Build Variant**).\n3. Click **More actions\n \\\u003e Profile 'app' with low overhead** or **Profile 'app' with complete data** (\"app\" is the name of the run configuration, so it might be different for you). To choose between the two options, see [Requirements](#requirements). The app opens on your test device and the **Profiler** pane opens in Android Studio.\n\nIf these instructions don't work for you, see [Build and run a profileable app\nmanually](/studio/profile/build-run-manually).\n\nStart profiling\n---------------\n\nTo start a profiling task, follow these steps:\n\n1. Select a process from the list in the **Home** tab within the **Profiler**\n pane. In most cases, you'll want to select the top process that represents\n your app.\n\n2. Select a profiling task from the **Tasks** section. For more info about the\n tasks, see the other pages in this section. Not all profiling tasks are\n available for every process. If you don't know where to start, get an overall\n view of performance activity by\n [inspecting your app live](/studio/profile/inspect-app-live).\n\n3. Use the **Start profiler task from** drop-down to select whether to start the\n profiler task from startup or attach to the process as it's running. If you're\n trying to improve your app startup time or capture a process that happens\n during app startup, you should include startup; otherwise, you can start\n profiling at your app's current state.\n\n4. Click **Start profiler task**. The task starts in its own tab.\n\n5. Interact with your app so activities are triggered.\n\n6. Stop the recording (if applicable), wait for it to parse, and see the\n results.\n\nCompare, export, and import traces\n----------------------------------\n\nWhen you stop a profiling task, it's automatically saved in the **Past\nRecordings** tab within the **Profiler** pane. You can use these saved\nrecordings to compare resource usage in different scenarios. The recordings are\nsaved for the duration of the current Android Studio session; if you want to\nkeep them for longer, export them by clicking **Export recording**\n.\nNot all trace types can be exported.\n\nTo import a trace, for example from a previous run of Android Studio, click\n**Import recording**\n\nin the **Past Recordings** tab and select your trace file. You can also import a\nfile by dragging it into the Android Studio editor window.\n\nEdit the recording configuration\n--------------------------------\n\nTo edit your profiler task recording configuration, click the profiler settings\n.\nThere are two main settings you can toggle:\n\n- For tasks that involve sampling, the **Sample interval** represents the time between each sample. The shorter the interval you specify, the faster you reach the file size limit for the recorded data.\n- The **File size limit** represents the amount of data that can be written to the connected device. When you stop recording, Android Studio parses this data and displays it in the profiler window. If you increase the limit and record a large amount of data, Android Studio takes much longer to parse the file and might become unresponsive.\n\n| **Note:** If you use a connected device running Android 8.0 (API level 26) or higher, there isn't a limit on the file size of the trace data, and the **File\n| size limit** value is ignored. However, you still need to be careful about how much data the device collects after each recording because large trace files are difficult to parse. For example, if you're recording either a sampled trace with a short sampling interval or an instrumented trace while your app calls many methods in a short time, you'll generate large trace files quickly."]]