Đo lường thời gian tải và kết xuất màn hình bằng tính năng Giám sát hiệu suất Firebase

1. Giới thiệu

Lần cập nhật gần đây nhất: ngày 11 tháng 3 năm 2021

Tại sao chúng ta cần đo lường hiệu suất của Lượt xem?

Khung hiển thị là một phần quan trọng của các ứng dụng Android, ảnh hưởng trực tiếp đến trải nghiệm người dùng. Ví dụ: Hoạt động hoặc Mảnh của bạn chứa giao diện người dùng lưu giữ các thành phần Khung hiển thị mà người dùng tương tác. Người dùng không thể xem toàn bộ nội dung của giao diện người dùng cho đến khi nội dung đó được vẽ hoàn chỉnh trên màn hình. Màn hình tải chậm và bị treo sẽ ảnh hưởng trực tiếp đến hoạt động tương tác của người dùng với ứng dụng của bạn và tạo ra trải nghiệm người dùng kém.

Tính năng Giám sát hiệu suất Firebase không cung cấp sẵn các chỉ số hiệu suất này sao?

Tính năng Giám sát hiệu suất Firebase tự động ghi lại một số dữ liệu hiệu suất ngay khi bạn bắt đầu, chẳng hạn như thời gian khởi động ứng dụng (tức là chỉ thời gian tải cho Hoạt động đầu tiên) và hiệu suất kết xuất màn hình (tức là các khung hình chậm và bị treo cho Hoạt động nhưng không phải cho Phân đoạn). Tuy nhiên, các ứng dụng trong ngành thường không có nhiều Hoạt động mà chỉ có một Hoạt động và nhiều Mảnh. Ngoài ra, nhiều ứng dụng thường triển khai Chế độ xem tuỳ chỉnh của riêng mình cho các trường hợp sử dụng phức tạp hơn. Vì vậy, bạn nên tìm hiểu cách đo lường thời gian tải và hiệu suất kết xuất màn hình của cả Hoạt động và Mảnh bằng cách đo lường dấu vết mã tuỳ chỉnh trong ứng dụng. Bạn có thể dễ dàng mở rộng lớp học lập trình này để đo lường hiệu suất của các thành phần Chế độ xem tuỳ chỉnh.

Kiến thức bạn sẽ học được

  • Cách thêm tính năng Giám sát hiệu suất Firebase vào một ứng dụng Android
  • Tìm hiểu về quá trình tải một Hoạt động hoặc một Mảnh
  • Cách đo lường dấu vết mã tuỳ chỉnh để đo thời gian tải của một Hoạt động hoặc Mảnh
  • Tìm hiểu về quá trình kết xuất màn hình và khung hình bị chậm/bị treo
  • Cách đo lường dấu vết mã tuỳ chỉnh bằng các chỉ số để ghi lại màn hình bị chậm/đơ
  • Cách xem các chỉ số được thu thập trong bảng điều khiển của Firebase

Bạn cần

  • Android Studio phiên bản 4.0 trở lên
  • Trình mô phỏng/thiết bị Android
  • Java phiên bản 8 trở lên

2. Thiết lập

Lấy mã nguồn

Chạy các lệnh sau để sao chép mã mẫu cho lớp học lập trình này. Thao tác này sẽ tạo một thư mục có tên là codelab-measure-android-view-performance trên máy của bạn:

$ git clone https://github.com/FirebaseExtended/codelab-measure-android-view-performance.git
$ cd codelab-measure-android-view-performance

Nếu không có git trên máy, bạn cũng có thể tải mã xuống trực tiếp từ GitHub.

Nhập dự án measure-view-performance-start vào Android Studio. Bạn có thể thấy một số lỗi biên dịch hoặc có thể là cảnh báo về tệp google-services.json bị thiếu. Chúng ta sẽ khắc phục vấn đề này trong phần tiếp theo của bước này.

Trong lớp học lập trình này, chúng ta sẽ sử dụng trình bổ trợ Trợ lý Firebase để đăng ký ứng dụng Android với một dự án Firebase và thêm các tệp cấu hình, trình bổ trợ và phần phụ thuộc Firebase cần thiết vào dự án Android của chúng ta – tất cả đều nằm trong Android Studio!

Kết nối ứng dụng của bạn với Firebase

  1. Chuyển đến Android Studio/Trợ giúp > Kiểm tra bản cập nhật để đảm bảo bạn đang dùng phiên bản mới nhất của Android Studio và Trợ lý Firebase.
  2. Chọn Tools (Công cụ) > Firebase để mở ngăn Assistant (Trợ lý).
    e791bed0999db1e0.png
  3. Chọn Giám sát hiệu suất để thêm vào ứng dụng của bạn, sau đó nhấp vào Bắt đầu sử dụng tính năng Giám sát hiệu suất.
  4. Nhấp vào nút để tạo một dự án mới, sau đó nhập tên dự án (ví dụ: Measure Performance Codelab).
  5. Nhấp vào Tiếp tục.
  6. Nếu được nhắc, hãy xem xét và chấp nhận các điều khoản của Firebase, rồi nhấp vào Tiếp tục.
  7. (Không bắt buộc) Bật tính năng hỗ trợ của AI trong bảng điều khiển của Firebase (còn gọi là "Gemini trong Firebase").
  8. Đối với lớp học lập trình này, bạn không cần Google Analytics, vì vậy hãy tắt lựa chọn Google Analytics.
  9. Tiếp theo, bạn sẽ thấy một hộp thoại để Kết nối Ứng dụng Firebase mới với dự án Android Studio.
    42c498d28ead2b77.png
  10. Trong ngăn Assistant (Trợ lý) của Android Studio, bạn sẽ thấy thông báo xác nhận rằng ứng dụng của bạn đã kết nối với Firebase.
    dda8bdd9488167a0.png

Thêm tính năng Giám sát hiệu suất vào ứng dụng của bạn

Trong ngăn Assistant (Trợ lý) của Android Studio, hãy nhấp vào Add Performance Monitoring to your app (Thêm tính năng Giám sát hiệu suất vào ứng dụng của bạn).

Bạn sẽ thấy một hộp thoại Chấp nhận thay đổi. Sau đó, Android Studio sẽ đồng bộ hoá ứng dụng của bạn để đảm bảo rằng bạn đã thêm tất cả các phần phụ thuộc cần thiết.

9b58145acc4be030.png

Cuối cùng, bạn sẽ thấy thông báo thành công trong ngăn Assistant (Trợ lý) của Android Studio cho biết tất cả các phần phụ thuộc đều được thiết lập đúng cách.

aa0d46fc944e0c0b.png

Là một bước bổ sung, hãy bật tính năng ghi nhật ký gỡ lỗi bằng cách làm theo hướng dẫn trong bước "(Không bắt buộc) Bật tính năng ghi nhật ký gỡ lỗi". Bạn cũng có thể xem hướng dẫn tương tự trong tài liệu công khai.

3. Chạy ứng dụng

Nếu bạn đã tích hợp thành công ứng dụng với SDK Giám sát hiệu suất, thì dự án hiện sẽ biên dịch. Trong Android Studio, hãy nhấp vào Run (Chạy) > Run ‘app' (Chạy "ứng dụng") để tạo và chạy ứng dụng trên thiết bị/trình mô phỏng Android đã kết nối.

Ứng dụng này có 2 nút đưa bạn đến một Activity và Fragment tương ứng, như sau:

410d8686b4f45c33.png

Trong các bước tiếp theo của lớp học lập trình này, bạn sẽ tìm hiểu cách đo lường thời gian tải và hiệu suất kết xuất màn hình của Hoạt động hoặc Phân đoạn.

4. Tìm hiểu về quá trình tải một Hoạt động hoặc Mảnh

Trong bước này, chúng ta sẽ tìm hiểu những việc mà hệ thống đang làm trong quá trình tải một Hoạt động hoặc Mảnh.

Tìm hiểu về quá trình tải một Hoạt động

Đối với một Hoạt động, thời gian tải được xác định là thời gian bắt đầu từ khi đối tượng Hoạt động được tạo cho đến khi Khung hình đầu tiên được vẽ hoàn toàn trên màn hình (đây là thời điểm người dùng sẽ thấy giao diện người dùng hoàn chỉnh của Hoạt động lần đầu tiên). Để đo lường xem ứng dụng của bạn đã hiển thị đầy đủ hay chưa, bạn có thể sử dụng phương thức reportFullyDrawn() để đo lường thời gian giữa thời điểm chạy ứng dụng và thời điểm hiển thị toàn bộ tài nguyên cũng như hệ phân cấp khung hiển thị.

Nhìn chung, khi ứng dụng của bạn gọi startActivity(Intent), hệ thống sẽ tự động thực hiện các quy trình sau. Mỗi quy trình đều mất thời gian để hoàn tất, điều này làm tăng khoảng thời gian giữa thời điểm tạo Hoạt động và thời điểm người dùng nhìn thấy giao diện người dùng cho Hoạt động trên màn hình.

c20d14b151549937.png

Tìm hiểu về quá trình tải một Mảnh

Tương tự như Hoạt động, thời gian tải cho một Mảnh được xác định là thời gian bắt đầu từ khi Mảnh được đính kèm vào Hoạt động lưu trữ cho đến khi Khung hình đầu tiên cho Chế độ xem mảnh được vẽ hoàn toàn trên màn hình.

5. Đo thời gian tải của một Hoạt động

Độ trễ trong khung hình đầu tiên có thể dẫn đến trải nghiệm người dùng kém, vì vậy, bạn cần hiểu rõ độ trễ tải ban đầu mà người dùng đang gặp phải. Bạn có thể đo lường thời gian tải này bằng cách đo lường một dấu vết mã tuỳ chỉnh:

  1. Bắt đầu dấu vết mã tuỳ chỉnh (được đặt tên là TestActivity-LoadTime) trong lớp Hoạt động ngay khi đối tượng Hoạt động được tạo.

TestActivity.java

public class TestActivity extends AppCompatActivity {   
    // TODO (1): Start trace recording as soon as the Activity object is created.
    private final Trace viewLoadTrace = FirebasePerformance.startTrace("TestActivity-LoadTime");

    // ...

}
  1. Ghi đè lệnh gọi lại onCreate() và nhận Khung hiển thị do phương thức setContentView() thêm.
@Override     
public void onCreate(Bundle savedInstanceState) {    
    super.onCreate(savedInstanceState);          

    // Current Activity's main View (as defined in the layout xml file) is inflated after this            
    setContentView(R.layout.activity_test);          

    // ...

    // TODO (2): Get the View added by Activity's setContentView() method.         
    View mainView = findViewById(android.R.id.content);     

    // ...
}
  1. Chúng tôi đã đưa vào một quy trình triển khai FistDrawListener, có 2 lệnh gọi lại: onDrawingStart()onDrawingFinish() (xem phần tiếp theo bên dưới để biết thêm thông tin chi tiết về FirstDrawListener và những yếu tố có thể ảnh hưởng đến hiệu suất của lệnh gọi lại này). Đăng ký FirstDrawListener ở cuối lệnh gọi lại onCreate() của Hoạt động. Bạn nên dừng viewLoadTrace trong lệnh gọi lại onDrawingFinish().

TestActivity.java

    // TODO (3): Register the callback to listen for first frame rendering (see
    //  "OnFirstDrawCallback" in FirstDrawListener) and stop the trace when View drawing is
    //  finished.
    FirstDrawListener.registerFirstDrawListener(mainView, new FirstDrawListener.OnFirstDrawCallback() {              
        @Override             
        public void onDrawingStart() {       
          // In practice you can also record this event separately
        }

        @Override             
        public void onDrawingFinish() {
            // This is when the Activity UI is completely drawn on the screen
            viewLoadTrace.stop();             
        }         
    });
  1. Chạy lại ứng dụng. Sau đó, lọc logcat bằng "Logging trace metric" (Ghi nhật ký chỉ số theo dõi). Nhấn vào nút LOAD ACTIVITY rồi tìm các nhật ký như bên dưới:
I/FirebasePerformance: Logging trace metric: TestActivity-LoadTime (duration: XXXms)

🎉 Chúc mừng bạn! Bạn đã đo lường thành công thời gian tải của một Hoạt động và báo cáo dữ liệu đó cho tính năng Giám sát hiệu suất Firebase. Chúng ta sẽ xem chỉ số đã ghi trong bảng điều khiển Firebase ở phần sau của lớp học lập trình này.

Mục đích của FirstDrawListener

Trong phần ngay phía trên, chúng ta đã đăng ký một FirstDrawListener. Mục đích của FirstDrawListener là đo lường thời điểm khung hình đầu tiên bắt đầu và kết thúc vẽ.

Thành phần này triển khai ViewTreeObserver.OnDrawListener và ghi đè lệnh gọi lại onDraw() được gọi khi cây Khung hiển thị sắp được vẽ. Sau đó, nó sẽ bao bọc kết quả để cung cấp 2 lệnh gọi lại tiện ích onDrawingStart()onDrawingFinish().

Bạn có thể tìm thấy mã hoàn chỉnh cho FirstDrawListener trong mã nguồn của lớp học lập trình này.

6. Đo thời gian tải của một Mảnh

Việc đo thời gian tải của một Mảnh tương tự như cách chúng ta đo thời gian tải của một Hoạt động, nhưng có một số điểm khác biệt nhỏ. Một lần nữa, chúng ta sẽ đo lường một dấu vết mã tuỳ chỉnh:

  1. Ghi đè lệnh gọi lại onAttach() và bắt đầu ghi fragmentLoadTrace. Chúng ta sẽ đặt tên cho dấu vết này là Test-Fragment-LoadTime.

Như đã giải thích ở bước trước, đối tượng Mảnh có thể được tạo bất cứ lúc nào, nhưng chỉ hoạt động khi được đính kèm vào Hoạt động lưu trữ.

TestFragment.java

public class TestFragment extends Fragment {

   // TODO (1): Declare the Trace variable.
   private Trace fragmentLoadTrace;

   @Override
   public void onAttach(@NonNull Context context) {
       super.onAttach(context);

       // TODO (2): Start trace recording as soon as the Fragment is attached to its host Activity.
       fragmentLoadTrace = FirebasePerformance.startTrace("TestFragment-LoadTime");
   }
  1. Đăng ký FirstDrawListener trong lệnh gọi lại onViewCreated(). Sau đó, tương tự như ví dụ về Hoạt động, hãy dừng dấu vết trong onDrawingFinish().

TestFragment.java

@Override
public void onViewCreated(@NonNull View mainView, Bundle savedInstanceState) {
   super.onViewCreated(mainView, savedInstanceState);

   // ...

   // TODO (3): Register the callback to listen for first frame rendering (see
   //  "OnFirstDrawCallback" in FirstDrawListener) and stop the trace when view drawing is
   //  finished.
   FirstDrawListener.registerFirstDrawListener(mainView, new FirstDrawListener.OnFirstDrawCallback() {

       @Override
       public void onDrawingStart() {
           // In practice you can also record this event separately
       }

       @Override
       public void onDrawingFinish() {
           // This is when the Fragment UI is completely drawn on the screen
           fragmentLoadTrace.stop();
       }
   });
  1. Chạy lại ứng dụng. Sau đó, lọc logcat bằng "Logging trace metric" (Ghi nhật ký chỉ số theo dõi). Nhấn vào nút LOAD FRAGMENT rồi tìm các nhật ký như bên dưới:
I/FirebasePerformance: Logging trace metric: TestFragment-LoadTime (duration: XXXms)

🎉 Chúc mừng bạn! Bạn đã đo lường thành công thời gian tải của một Mảnh và báo cáo dữ liệu đó cho tính năng Giám sát hiệu suất Firebase. Chúng ta sẽ xem chỉ số đã ghi trong bảng điều khiển Firebase ở phần sau của lớp học lập trình này.

7. Tìm hiểu về quá trình kết xuất màn hình và khung hình bị chậm/bị treo

Kết xuất giao diện người dùng là hành động tạo một khung hình từ ứng dụng và hiển thị khung hình đó trên màn hình. Để đảm bảo quá trình tương tác của người dùng với ứng dụng diễn ra suôn sẻ, ứng dụng cần kết xuất các khung hình trong khoảng thời gian dưới 16 mili giây để đạt được 60 khung hình/giây ( vì sao lại là 60 khung hình/giây?). Nếu ứng dụng của bạn gặp lỗi trong khi hiển thị giao diện người dùng chậm, thì hệ thống buộc phải bỏ qua các khung hình và người dùng sẽ cảm nhận hiện tượng giật khung hình trong ứng dụng của bạn. Chúng tôi gọi đây là hiện tượng giật.

Tương tự, khung hình bị treo là những khung giao diện người dùng mất hơn 700 mili giây để kết xuất. Độ trễ này là một vấn đề vì ứng dụng của bạn dường như bị nghẽn và không phản hồi hoạt động đầu vào của người dùng gần một giây trong khi khung hình đang hiển thị.

8. Đo lường số lượng khung hình Chậm/Bị treo của một Mảnh

Tính năng Giám sát hiệu suất Firebase tự động ghi lại các khung hình bị chậm/đứng cho một Hoạt động (nhưng chỉ khi Hoạt động đó được Tăng tốc phần cứng). Tuy nhiên, tính năng này hiện không dùng được cho các Đoạn. Khung hình chậm/bị treo của một Mảnh được xác định là khung hình chậm/bị treo cho toàn bộ Hoạt động giữa các lệnh gọi lại onFragmentAttached()onFragmentDetached() trong vòng đời của Mảnh.

Lấy cảm hứng từ lớp AppStateMonitor (là một phần của SDK Giám sát hiệu suất, chịu trách nhiệm ghi lại dấu vết màn hình cho Hoạt động), chúng tôi đã triển khai lớp ScreenTrace (là một phần của kho lưu trữ mã nguồn lớp học lập trình này). Bạn có thể kết nối lớp ScreenTrace với lệnh gọi lại trong vòng đời của FragmentManager để ghi lại các khung hình bị chậm/đứng. Lớp này cung cấp 2 API công khai:

  • recordScreenTrace(): Bắt đầu ghi lại dấu vết trên màn hình
  • sendScreenTrace(): Dừng ghi lại dấu vết màn hình và đính kèm chỉ số tuỳ chỉnh vào nhật ký Tổng số, Số khung hình chậm và Số khung hình bị treo

Bằng cách đính kèm các chỉ số tuỳ chỉnh này, bạn có thể xử lý dấu vết màn hình cho các Mảnh theo cách tương tự như dấu vết màn hình cho một Hoạt động và có thể hiển thị cùng với các dấu vết kết xuất màn hình khác trong trang tổng quan Hiệu suất của bảng điều khiển Firebase.

Sau đây là cách ghi lại dấu vết trên màn hình cho Fragment:

  1. Khởi động lớp ScreenTrace trong Hoạt động lưu trữ Mảnh.

MainActivity.java

// Declare the Fragment tag
private static final String FRAGMENT_TAG = TestFragment.class.getSimpleName();

// TODO (1): Declare the ScreenTrace variable.
private ScreenTrace screenTrace;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // TODO (2): Initialize the ScreenTrace variable.
    screenTrace = new ScreenTrace(this, FRAGMENT_TAG);

    // ...
}
  1. Khi bạn tải Fragment, hãy đăng ký FragmentLifecycleCallbacks và ghi đè các lệnh gọi lại onFragmentAttached()onFragmentDetached(). Chúng tôi đã thực hiện việc này cho bạn. Bạn cần bắt đầu ghi lại dấu vết trên màn hình trong lệnh gọi lại onFragmentAttached() và dừng ghi trong lệnh gọi lại onFragmentDetached().

MainActivity.java

private final FragmentManager.FragmentLifecycleCallbacks fragmentLifecycleCallbacks =
       new FragmentManager.FragmentLifecycleCallbacks() {

           @Override
           public void onFragmentAttached(@NonNull FragmentManager fm, @NonNull Fragment f, @NonNull Context context) {
               super.onFragmentAttached(fm, f, context);

               // TODO (3): Start recording the screen traces as soon as the Fragment is
               //  attached to its host Activity.
               if (FRAGMENT_TAG.equals(f.getTag()) && screenTrace.isScreenTraceSupported()) {
                   screenTrace.recordScreenTrace();
               }
           }

           @Override
           public void onFragmentDetached(@NonNull FragmentManager fm, @NonNull Fragment f) {
               super.onFragmentDetached(fm, f);

               // TODO (4): Stop recording the screen traces as soon as the Fragment is
               //  detached from its host Activity.
               if (FRAGMENT_TAG.equals(f.getTag()) && screenTrace.isScreenTraceSupported()) {
                   screenTrace.sendScreenTrace();
               }

               // Unregister Fragment lifecycle callbacks after the Fragment is detached
               fm.unregisterFragmentLifecycleCallbacks(fragmentLifecycleCallbacks);
           }
       };
  1. Chạy lại ứng dụng, sau đó nhấn vào nút LOAD FRAGMENT. Đợi vài giây, sau đó nhấp vào biểu tượng back button trên thanh điều hướng ở dưới cùng.

Lọc logcat bằng "Logging trace metric" (Ghi nhật ký chỉ số theo dõi), sau đó tìm nhật ký như bên dưới:

I/FirebasePerformance: Logging trace metric: _st_MainActivity-TestFragment (duration: XXXms)

Lọc logcat bằng "FireperfViews", sau đó tìm nhật ký như bên dưới:

D/FireperfViews: sendScreenTrace MainActivity-TestFragment, name: _st_MainActivity-TestFragment, total_frames: XX, slow_frames: XX, frozen_frames: XX

🎉 Chúc mừng bạn! Bạn đã đo lường thành công các khung hình bị chậm/đứng cho một Mảnh và báo cáo dữ liệu đó cho tính năng Giám sát hiệu suất Firebase. Chúng ta sẽ xem các chỉ số đã ghi lại trong bảng điều khiển của Firebase ở phần sau của lớp học lập trình này.

9. Kiểm tra các chỉ số trong bảng điều khiển của Firebase

  1. Trong logcat, hãy nhấp vào URL bảng điều khiển Firebase để truy cập vào trang chi tiết của một dấu vết. ceb9d5ba51bb6e89.jpeg

Ngoài ra, trong bảng điều khiển của Firebase, hãy chọn dự án có ứng dụng của bạn. Trong bảng điều khiển bên trái, hãy tìm mục Phát hành và giám sát, sau đó nhấp vào Hiệu suất.

  • Trong thẻ Trang tổng quan chính, hãy di chuyển xuống bảng dấu vết, rồi nhấp vào thẻ Dấu vết tuỳ chỉnh. Trong bảng này, bạn sẽ thấy các dấu vết mã tuỳ chỉnh mà chúng ta đã thêm trước đó cùng với một số dấu vết có sẵn, chẳng hạn như dấu vết _app_start.
  • Tìm 2 dấu vết mã tuỳ chỉnh của bạn, TestActivity-LoadTimeTestFragment-LoadTime. Nhấp vào Thời lượng của một trong hai để xem thêm thông tin chi tiết về dữ liệu đã thu thập.

a0d8455c5269a590.png

  1. Trang chi tiết cho dấu vết mã tuỳ chỉnh cho bạn biết thông tin về thời lượng của dấu vết (tức là thời gian tải được đo).

5e92a307b7410d8b.png

  1. Bạn cũng có thể xem dữ liệu hiệu suất cho dấu vết màn hình tuỳ chỉnh.
  • Quay lại thẻ Trang tổng quan chính, di chuyển xuống bảng dấu vết rồi nhấp vào thẻ Kết xuất màn hình. Trong bảng này, bạn sẽ thấy các dấu vết màn hình tuỳ chỉnh mà chúng ta đã thêm trước đó, cùng với mọi dấu vết màn hình có sẵn, chẳng hạn như dấu vết MainActivity.
  • Tìm đường đánh dấu tuỳ chỉnh trên màn hình, MainActivity-TestFragment. Nhấp vào tên dấu vết để xem dữ liệu tổng hợp về quá trình kết xuất chậm và khung hình bị treo.

ee7890c7e2c28740.png

10. Xin chúc mừng

Xin chúc mừng! Bạn đã đo lường thành công thời gian tải và hiệu suất kết xuất màn hình của một Hoạt động và một Mảnh bằng cách sử dụng tính năng Giám sát hiệu suất của Firebase!

Những thành tích bạn đã đạt được

Bước tiếp theo

Firebase Performance cung cấp nhiều cách đo lường hiệu suất của ứng dụng ngoài dấu vết tuỳ chỉnh. Nền tảng này tự động đo lường dữ liệu về thời gian khởi động ứng dụng, ứng dụng ở nền trước và hiệu suất ứng dụng ở nền sau. Đã đến lúc bạn kiểm tra các chỉ số này trong Bảng điều khiển của Firebase.

Ngoài ra, Giám sát hiệu suất Firebase còn cung cấp tính năng giám sát tự động yêu cầu mạng HTTP/S. Nhờ đó, bạn có thể dễ dàng đo lường các yêu cầu mạng mà không cần viết một dòng mã nào. Bạn có thể thử gửi một số yêu cầu mạng từ ứng dụng của mình và tìm các chỉ số trong bảng điều khiển của Firebase không?

Điểm thưởng

Giờ đây, bạn đã biết cách đo lường thời gian tải và hiệu suất kết xuất màn hình của Hoạt động/Mảnh bằng cách sử dụng dấu vết mã tuỳ chỉnh. Bạn có thể khám phá cơ sở mã nguồn mở của chúng tôi để xem liệu bạn có thể ghi lại các chỉ số đó ngay lập tức cho bất kỳ Hoạt động/Mảnh nào là một phần của ứng dụng hay không? Bạn có thể gửi yêu cầu hợp nhất nếu muốn :-)

11. Học tập bổ sung

Việc nắm được những gì đang xảy ra trong quá trình tải một Hoạt động sẽ giúp bạn hiểu rõ hơn về các đặc điểm hiệu suất của ứng dụng. Trong một bước trước đó, chúng tôi đã mô tả ở mức độ tổng quan những gì xảy ra trong quá trình tải một Hoạt động, nhưng sơ đồ sau đây mô tả từng giai đoạn một cách chi tiết hơn nhiều.

cd61c1495fad7961.png