Giám sát hiệu suất của các bản giới thiệu tính năng

1. Khái quát chung

Trong phòng thí nghiệm lập trình này, bạn sẽ tìm hiểu cách theo dõi hiệu suất của ứng dụng trong quá trình giới thiệu tính năng. Ứng dụng mẫu của chúng tôi sẽ có chức năng cơ bản và được thiết lập để hiển thị hình nền khác dựa trên cờ Cấu hình từ xa của Firebase. Chúng tôi sẽ xem xét các dấu vết của công cụ để theo dõi hiệu suất của ứng dụng, triển khai thay đổi cấu hình cho ứng dụng, theo dõi tác động và xem cách chúng tôi có thể cải thiện hiệu suất.

Bạn sẽ học được gì

  • Cách thêm Giám sát hiệu suất Firebase vào ứng dụng dành cho thiết bị di động của bạn để nhận các số liệu vượt trội (như thời gian bắt đầu ứng dụng và khung hình chậm hoặc bị treo)
  • Cách thêm dấu vết tùy chỉnh để hiểu đường dẫn mã quan trọng trong hành trình người dùng của bạn
  • Cách sử dụng bảng điều khiển Giám sát hiệu suất để hiểu số liệu của bạn và theo dõi các thay đổi quan trọng như triển khai một tính năng
  • Cách thiết lập cảnh báo hiệu suất để theo dõi các số liệu chính của bạn
  • Cách triển khai thay đổi Cấu hình từ xa Firebase

điều kiện tiên quyết

  • Android Studio 4.0 trở lên
  • Trình giả lập Android có API cấp 16 trở lên.
  • Phiên bản Java 8 trở lên
  • Hiểu biết cơ bản về Firebase Remote Config

2. Thiết lập dự án mẫu

Tải xuống mã

Chạy lệnh sau để sao chép mã mẫu cho phòng thí nghiệm mã này. Thao tác này sẽ tạo một thư mục có tên codelab-perf-rc-android trên máy của bạn:

$ git clone https://github.com/FirebaseExtended/codelab-feature-rollout-performance.git

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

Nhập dự án trong thư mục firebase-perf-rc-android-start vào Android Studio. Bạn có thể sẽ thấy một số ngoại lệ trong thời gian chạy hoặc có thể là cảnh báo về tệp google-services.json bị thiếu. Chúng tôi sẽ sửa lỗi này trong phần tiếp theo.

Trong phòng học mã này, bạn sẽ sử dụng plugin Trợ lý Firebase để đăng ký ứng dụng Android của mình với dự án Firebase và thêm các tệp cấu hình Firebase, plugin và phần phụ thuộc cần thiết vào dự án Android của bạn — tất cả từ trong Android Studio !

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

  1. Truy cập Android Studio / Trợ giúp > Kiểm tra các bản cập nhật để đảm bảo rằng bạn đang sử dụng các phiên bản mới nhất của Android Studio và Trợ lý Firebase.
  2. Chọn Công cụ > Firebase để mở ngăn Trợ lý .

c0e42ef063d21eab.png

  1. 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 với Giám sát hiệu suất .
  2. Nhấp vào Kết nối với Firebase để kết nối dự án Android của bạn với Firebase (thao tác này sẽ mở bảng điều khiển Firebase trong trình duyệt của bạn) .
  3. Trong bảng điều khiển Firebase, nhấp vào Thêm dự án , sau đó nhập tên dự án Firebase (nếu bạn đã có dự án Firebase, bạn có thể chọn dự án hiện có đó) . Nhấp vào Tiếp tục và chấp nhận các điều khoản để tạo dự án Firebase và Ứng dụng Firebase mới.

Tiếp theo, bạn sẽ thấy hộp thoại Kết nối ứng dụng Firebase mới với dự án Android Studio của mình.

51a549ebde2fe57a.png

  1. Nhấp vào Kết nối .
  2. Mở AndroidStudio. Trong ngăn Trợ lý , bạn sẽ thấy xác nhận rằng ứng dụng của bạn được kết nối với Firebase.

40c24c4a56a45990.png

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

Trong ngăn Trợ lý trong Android Studio, nhấp vào Thêm giám sát hiệu suất vào ứng dụng của bạn .

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

3046f3e1f5fea06f.png

Cuối cùng, bạn sẽ thấy thông báo thành công trong khung Trợ lý trong Android Studio rằng tất cả các thành phần phụ thuộc đã được thiết lập chính xác.

62e79fd18780e320.png

Là một bước bổ sung, bật ghi nhật ký gỡ lỗi bằng cách làm theo hướng dẫn trong bước "(Tùy chọn) Bật ghi nhật ký gỡ lỗi". Các hướng dẫn tương tự cũng có sẵn trong tài liệu công cộng .

3. Chạy ứng dụng

Bây giờ, bạn sẽ thấy tệp google-services.json trong thư mục mô-đun (cấp ứng dụng) của ứng dụng và ứng dụng của bạn sẽ được biên dịch. Trong Android Studio, nhấp vào Chạy > Chạy 'ứng dụng' để xây dựng và chạy ứng dụng trên trình giả lập Android của bạn.

Khi ứng dụng đang chạy, trước tiên bạn sẽ thấy một màn hình giật gân như thế này:

ffbd413a6983b205.png

Sau đó, sau vài giây, trang chính với hình ảnh mặc định sẽ hiển thị:

d946cab0df319e50.png

Điều gì đang xảy ra dưới mui xe?

Màn hình giật gân được triển khai trong SplashScreenActivity và thực hiện như sau:

  1. Trong onCreate() , chúng tôi khởi tạo cài đặt Cấu hình từ xa Firebase và tìm nạp các giá trị cấu hình mà bạn sẽ đặt trong bảng điều khiển Cấu hình từ xa sau này trong phòng học mã này.
  2. Trong executeTasksBasedOnRC() , chúng tôi đọc giá trị cấu hình của cờ seasonal_image_url . Nếu một URL được cung cấp bởi giá trị cấu hình, chúng tôi sẽ tải xuống hình ảnh một cách đồng bộ.
  3. Khi quá trình tải xuống hoàn tất, ứng dụng sẽ điều hướng đến MainActivity và gọi finish() để kết thúc SplashScreenActivity .

Trong MainActivity , nếu seasonal_image_url được xác định thông qua Cấu hình từ xa, tính năng này sẽ được bật và hình ảnh đã tải xuống sẽ được hiển thị dưới dạng nền của trang chính. Nếu không, hình ảnh mặc định (hiển thị ở trên) sẽ được hiển thị.

4. Thiết lập cấu hình từ xa

Bây giờ ứng dụng của bạn đang chạy, bạn có thể thiết lập cờ tính năng mới.

  1. Trong bảng điều khiển bên trái của bảng điều khiển Firebase , tìm phần Tương tác , sau đó nhấp vào Cấu hình từ xa .
  2. Nhấp vào nút Tạo cấu hình để mở biểu mẫu cấu hình và thêm seasonal_image_url làm khóa tham số.
  3. Nhấp vào Thêm mô tả , sau đó nhập mô tả này: Shows a seasonal image (replaces default) in the main page when the restaurant list is empty.
  4. Bấm Thêm mới -> Giá trị điều kiện -> Tạo điều kiện mới .
  5. Đối với tên điều kiện, hãy nhập Seasonal image rollout .
  6. Đối với phần Applies if... , hãy chọn User in random percentile <= 0% . (Bạn muốn tắt tính năng này cho đến khi bạn sẵn sàng triển khai ở bước sau.)
  7. Nhấp vào Tạo điều kiện . Bạn sẽ sử dụng điều kiện này sau để triển khai tính năng mới cho người dùng của mình.

7a07526eb9e81623.png

  1. Mở biểu mẫu Tạo tham số đầu tiên của bạn và tìm trường Giá trị cho triển khai hình ảnh theo Mùa . Nhập URL nơi hình ảnh theo mùa sẽ được tải xuống: https://images.unsplash.com/photo-1552691021-7043334e0b51
  2. Để lại giá trị mặc định là một chuỗi rỗng. Điều này có nghĩa là hình ảnh mặc định trong cơ sở mã sẽ được hiển thị thay vì hình ảnh được tải xuống từ URL.
  3. Nhấp vào Lưu .

99e6cd2ebcdced.png

Bạn có thể thấy rằng cấu hình mới được tạo dưới dạng bản nháp.

  1. Nhấp vào Xuất bản thay đổi và xác nhận các thay đổi ở trên cùng để cập nhật ứng dụng của bạn.

39cd3e96d370c7ce.png

5. Thêm giám sát thời gian tải dữ liệu

Ứng dụng của bạn tải trước một số dữ liệu trước khi hiển thị MainActivity và hiển thị màn hình giật gân để ẩn quá trình này. Bạn không muốn người dùng của mình đợi quá lâu trên màn hình này, vì vậy, thông thường, việc theo dõi thời gian hiển thị màn hình giật gân sẽ rất hữu ích.

Giám sát hiệu suất Firebase cung cấp một cách để làm điều đó. Bạn có thể cung cấp các dấu vết mã tùy chỉnh để theo dõi hiệu suất của mã cụ thể trong ứng dụng của mình – như thời gian tải dữ liệu và thời gian xử lý tính năng mới của bạn.

Để theo dõi khoảng thời gian màn hình giật gân được hiển thị, bạn sẽ thêm dấu vết mã tùy chỉnh vào SplashScreenActivity , là Activity triển khai màn hình giật gân.

  1. Khởi tạo, tạo và bắt đầu theo dõi mã tùy chỉnh có tên là splash_screen_trace :

SplashScreenActivity.java

// ...
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.Trace;
// ...

public class SplashScreenActivity extends AppCompatActivity {

    private static final String TAG = "SplashScreenActivity";
    private static final String SEASONAL_IMAGE_URL_RC_FLAG = "seasonal_image_url";

    // TODO: Initialize splash_screen_trace
    private final Trace splashScreenTrace = FirebasePerformance.startTrace("splash_screen_trace");
    
    // ...
}
  1. Kết thúc dấu vết trong phương thức onDestroy() của SplashScreenActivity :

SplashScreenActivity.java

@Override
protected void onDestroy() {
    super.onDestroy();

    // TODO: Stop the splash_screen_trace here
    splashScreenTrace.stop();
}

Vì tính năng mới của bạn tải xuống và xử lý một hình ảnh, nên bạn sẽ thêm một dấu vết mã tùy chỉnh thứ hai sẽ theo dõi thời gian bổ sung mà tính năng của bạn đã thêm vào SplashScreenActivity .

  1. Khởi tạo, tạo và bắt đầu theo dõi mã tùy chỉnh có tên là splash_seasonal_image_processing :

SplashScreenActivity.java

private void executeTasksBasedOnRC(FirebaseRemoteConfig rcConfig) {
    String seasonalImageUrl = rcConfig.getString(SEASONAL_IMAGE_URL_RC_FLAG);
    Log.d(TAG, SEASONAL_IMAGE_URL_RC_FLAG + ": " + seasonalImageUrl);

    if (!seasonalImageUrl.isEmpty()) {
        // TODO: Start the splash_seasonal_image_processing here
        final Trace seasonalImageProcessingTrace = FirebasePerformance
            .startTrace("splash_seasonal_image_processing");

        // ...
    }
}
  1. Kết thúc theo dõi trong cả hai phương thức onLoadFailed()onResourceReady() của RequestListener :

SplashScreenActivity.java

Glide.with(SplashScreenActivity.this.getApplicationContext())
    .asBitmap()
    .load(seasonalImageUrl)
    .signature(new ObjectKey(Utils.getCacheUUID()))
    .listener(new RequestListener<Bitmap>() {
        @Override
        public boolean onLoadFailed(
            @Nullable GlideException e,
            Object model, Target<Bitmap> target,
            boolean isFirstResource) {

            // TODO: Stop the splash_seasonal_image_processing here
            seasonalImageProcessingTrace.stop();

            launchMainActivity();
            return true;
        }

        @Override
        public boolean onResourceReady(Bitmap resource, Object model,
            Target<Bitmap> target, DataSource dataSource,
            boolean isFirstResource) {

            // TODO: Stop the splash_seasonal_image_processing here
            seasonalImageProcessingTrace.stop();

            launchMainActivity();
            return true;
        }
     })
     .preload();

Giờ đây, bạn đã thêm dấu vết mã tùy chỉnh để theo dõi thời lượng màn hình giật gân ( splash_screen_trace) và thời gian xử lý của tính năng mới ( splash_seasonal_image_processing ), hãy chạy lại ứng dụng trong Android Studio. Bạn sẽ thấy một thông báo ghi nhật ký có chứa Logging trace metric: splash_screen_trace , theo sau là thời lượng của theo dõi. Bạn sẽ không thấy thông báo nhật ký cho splash_seasonal_image_processing vì bạn chưa bật tính năng mới.

6. Thêm thuộc tính tùy chỉnh vào dấu vết

Đối với dấu vết mã tùy chỉnh, Giám sát hiệu suất tự động ghi lại các thuộc tính mặc định (siêu dữ liệu phổ biến như phiên bản ứng dụng, quốc gia, thiết bị, v.v.) để bạn có thể lọc dữ liệu cho dấu vết trong bảng điều khiển Firebase . Bạn cũng có thể thêm và theo dõi các thuộc tính tùy chỉnh .

Trong ứng dụng của mình, bạn vừa thêm hai dấu vết mã tùy chỉnh để theo dõi thời lượng màn hình giật gân và thời gian xử lý của tính năng mới. Một yếu tố có thể ảnh hưởng đến các khoảng thời gian này là liệu hình ảnh được hiển thị là hình ảnh mặc định hay hình ảnh phải được tải xuống từ một URL. Và ai biết được - cuối cùng bạn có thể có các URL khác nhau để tải xuống một hình ảnh.

Vì vậy, hãy thêm một thuộc tính tùy chỉnh đại diện cho URL hình ảnh theo mùa vào các dấu vết mã tùy chỉnh này. Bằng cách đó, bạn có thể lọc dữ liệu thời lượng theo các giá trị này sau này.

  1. Thêm thuộc tính tùy chỉnh ( seasonal_image_url_attribute ) cho splash_screen_trace vào đầu phương thức executeTasksBasedOnRC :

SplashScreenActivity.java

private void executeTasksBasedOnRC(FirebaseRemoteConfig rcConfig) {
    String seasonalImageUrl = rcConfig.getString(SEASONAL_IMAGE_URL_RC_FLAG);
    Log.d(TAG, SEASONAL_IMAGE_URL_RC_FLAG + ": " + seasonalImageUrl);

    // TODO: Add a custom attribute "seasonal_image_url_attribute" to splash_screen_trace
    if (seasonalImageUrl.isEmpty()) {
        splashScreenTrace.putAttribute("seasonal_image_url_attribute", "unset");
    } else {
        splashScreenTrace.putAttribute("seasonal_image_url_attribute", seasonalImageUrl);
    }

    // ...
}
  1. Thêm thuộc tính tùy chỉnh tương tự cho splash_seasonal_image_processing ngay sau lệnh gọi startTrace("splash_seasonal_image_processing") :

SplashScreenActivity.java

if (!seasonalImageUrl.isEmpty()) {
    // TODO: Start the splash_seasonal_image_processing here
    final Trace seasonalImageProcessingTrace = FirebasePerformance
        .startTrace("splash_seasonal_image_processing");

    // TODO: Add a custom attribute "seasonal_image_url_attribute" to splash_seasonal_image_processing
    seasonalImageProcessingTrace
        .putAttribute("seasonal_image_url_attribute", seasonalImageUrl);

    // ...
}

Bây giờ, bạn đã thêm một thuộc tính tùy chỉnh ( seasonal_image_url_attribute ) cho cả hai dấu vết tùy chỉnh của mình ( splash_screen_tracesplash_seasonal_image_processing ), hãy chạy lại ứng dụng trong Android Studio. Bạn sẽ thấy một thông báo ghi nhật ký có chứa Setting attribute 'seasonal_image_url_attribute' to 'unset' on trace 'splash_screen_trace'. Bạn chưa bật tham số Cấu hình từ xa theo mùaImageUrl , đó là lý do tại sao giá trị thuộc tính không được unset .

SDK giám sát hiệu suất sẽ thu thập dữ liệu theo dõi và gửi chúng đến Firebase. Bạn có thể xem dữ liệu trong bảng điều khiển Hiệu suất của bảng điều khiển Firebase. Chúng tôi sẽ giải thích chi tiết dữ liệu này trong bước tiếp theo của phòng thí nghiệm mã.

7. Định cấu hình bảng điều khiển Giám sát hiệu suất của bạn

Định cấu hình bảng điều khiển của bạn để theo dõi tính năng của bạn

Trong bảng điều khiển Firebase , chọn dự án có ứng dụng Friendly Eats của bạn.

Trong bảng điều khiển bên trái, tìm phần Phát hành & Giám sát , sau đó nhấp vào Hiệu suất .

Bạn sẽ thấy bảng điều khiển Hiệu suất với các điểm dữ liệu đầu tiên trong bảng chỉ số của mình! SDK giám sát hiệu suất thu thập dữ liệu hiệu suất từ ​​ứng dụng của bạn và hiển thị dữ liệu đó trong vòng vài phút sau khi thu thập.

f57e5450b70034c9.png

Bảng chỉ số này là nơi bạn có thể theo dõi các chỉ số chính cho ứng dụng của mình. Chế độ xem mặc định bao gồm thời lượng theo dõi thời gian bắt đầu ứng dụng của bạn nhưng bạn có thể thêm các chỉ số mà bạn quan tâm nhất. Vì bạn đang theo dõi tính năng mới mà mình đã thêm, nên bạn có thể điều chỉnh trang tổng quan của mình để hiển thị thời lượng của dấu vết mã tùy chỉnh splash_screen_trace .

  1. Nhấp vào một trong các ô Select a metric trống.
  2. Trong cửa sổ hộp thoại, chọn loại theo dõi là Dấu vết tùy chỉnh và tên theo dõi là splash_screen_trace .

1fb81f4dba3220e0.png

  1. Nhấp vào Chọn số liệu và bạn sẽ thấy thời lượng của splash_screen_trace được thêm vào trang tổng quan của mình!

Bạn có thể sử dụng các bước tương tự này để thêm các chỉ số khác mà bạn quan tâm để có thể nhanh chóng thấy hiệu suất của chúng thay đổi như thế nào theo thời gian và ngay cả với các bản phát hành khác nhau.

1d465c021e58da3b.png

Bảng chỉ số là một công cụ mạnh mẽ để theo dõi hiệu suất của các chỉ số chính mà người dùng của bạn đã trải nghiệm. Đối với phòng thí nghiệm lập trình này, bạn có một tập hợp dữ liệu nhỏ trong một khoảng thời gian hẹp, vì vậy, bạn sẽ sử dụng các chế độ xem trang tổng quan khác để giúp bạn hiểu hiệu suất của việc giới thiệu tính năng.

8. Triển khai tính năng của bạn

Bây giờ bạn đã thiết lập giám sát của mình, bạn đã sẵn sàng triển khai thay đổi Cấu hình từ xa Firebase ( seasonal_image_url) mà bạn đã thiết lập trước đó.

Để triển khai thay đổi, bạn sẽ quay lại trang Cấu hình từ xa trong bảng điều khiển Firebase để tăng phần trăm người dùng trong điều kiện nhắm mục tiêu của mình. Thông thường, bạn sẽ tung ra các tính năng mới cho một bộ phận nhỏ người dùng và chỉ tăng nó khi bạn tự tin rằng không có vấn đề gì với nó. Tuy nhiên, trong phòng thí nghiệm lập trình này, bạn là người dùng duy nhất của ứng dụng, vì vậy bạn có thể thay đổi phần trăm thành 100%.

  1. Nhấp vào tab Điều kiện ở đầu trang.
  2. Nhấp vào điều kiện Seasonal image rollout mà bạn đã thêm trước đó.
  3. Thay đổi phần trăm thành 100%.
  4. Nhấp vào Lưu điều kiện .
  5. Nhấp vào Xuất bản thay đổi và xác nhận thay đổi.

70f993502b27e7a0.png

Quay lại Android Studio, khởi động lại ứng dụng trong trình giả lập của bạn để xem tính năng mới. Sau màn hình giật gân, bạn sẽ thấy màn hình chính trạng thái trống mới!

b0cc91b6e48fb842.png

9. Kiểm tra các thay đổi về hiệu suất

Bây giờ, hãy kiểm tra hiệu suất tải màn hình giật gân bằng cách sử dụng bảng điều khiển Hiệu suất trong bảng điều khiển Firebase. Trong bước này của codelab, bạn sẽ sử dụng các phần khác nhau của bảng điều khiển để xem dữ liệu hiệu suất.

  1. Trên tab Trang tổng quan chính, cuộn xuống bảng theo dõi, sau đó nhấp vào tab Dấu vết tùy chỉnh . Trong bảng này, bạn sẽ thấy các dấu vết mã tùy chỉnh mà bạn đã thêm trước đó cùng với một số dấu vết sẵn dùng .
  2. Bây giờ bạn đã bật tính năng mới, hãy tìm dấu vết mã tùy chỉnh splash_seasonal_image_processing , đo thời gian cần thiết để tải xuống và xử lý hình ảnh. Từ giá trị Thời lượng của dấu vết, bạn có thể thấy rằng quá trình tải xuống và xử lý này mất một lượng thời gian đáng kể.

439adc3ec71805b7.png

  1. Vì bạn có dữ liệu cho splash_seasonal_image_processing nên bạn có thể thêm thời lượng của dấu vết này vào bảng chỉ số của mình ở đầu tab Trang tổng quan .

Tương tự như trước đây, nhấp vào một trong các hộp Chọn số liệu trống. Trong cửa sổ hộp thoại, chọn loại theo dõi Dấu vết tùy chỉnh và tên theo dõi là splash_seasonal_image_processing . Cuối cùng, nhấp vào Chọn số liệu để thêm số liệu này vào bảng số liệu.

7fb64d2340410576.png

  1. Để xác nhận thêm sự khác biệt, bạn có thể xem xét kỹ hơn dữ liệu cho splash_screen_trace . Nhấp vào thẻ splash_screen_trace trong bảng chỉ số, sau đó nhấp vào Xem chi tiết chỉ số .

b1c275c30679062a.png

  1. Trong trang chi tiết, bạn sẽ thấy danh sách thuộc tính ở dưới cùng bên trái, bao gồm thuộc tính tùy chỉnh mà bạn đã tạo trước đó. Nhấp vào thuộc tính tùy chỉnh seasonal_image_url_attribute để xem thời lượng màn hình giật gân cho mỗi URL hình ảnh theo mùa ở bên phải:

8fa1a69019bb045e.png

  1. Các giá trị thời lượng màn hình giật gân của bạn có thể sẽ khác một chút so với các giá trị trong ảnh chụp màn hình ở trên, nhưng bạn nên có thời lượng dài hơn khi hình ảnh được tải xuống từ một URL so với việc sử dụng hình ảnh mặc định (được biểu thị bằng "không đặt").

Trong phòng thí nghiệm lập trình này, lý do cho thời lượng dài hơn này có thể đơn giản, nhưng trong một ứng dụng thực, nó có thể không quá rõ ràng. Dữ liệu thời lượng được thu thập sẽ đến từ các thiết bị khác nhau, chạy ứng dụng trong các điều kiện kết nối mạng khác nhau và những điều kiện này có thể tồi tệ hơn mong đợi của bạn. Hãy xem bạn sẽ điều tra vấn đề này như thế nào nếu đây là một tình huống thực tế.

  1. Nhấp vào Hiệu suất ở đầu trang để quay lại tab chính của Trang tổng quan : 640b696b79d90103.png
  2. Trong bảng dấu vết ở cuối trang, nhấp vào tab Yêu cầu mạng . Trong bảng này, bạn sẽ thấy tất cả các yêu cầu mạng từ ứng dụng của mình được tổng hợp thành các mẫu URL , bao gồm cả mẫu URL images.unsplash.com/** . Nếu bạn so sánh giá trị của thời gian phản hồi này với tổng thời gian cần thiết để tải xuống và xử lý hình ảnh (nghĩa là thời lượng của dấu vết xử lý splash_seasonal_image_processing lý), bạn có thể thấy rằng một lượng lớn thời gian được dành cho việc tải xuống hình ảnh.

6f92ce0f23494507.png

Kết quả hiệu suất

Khi sử dụng Giám sát hiệu suất Firebase, bạn đã thấy tác động sau đối với người dùng cuối khi bật tính năng mới:

  1. Thời gian dành cho SplashScreenActivity đã tăng lên.
  2. Thời lượng dành cho splash_seasonal_image_processing là rất lớn.
  3. Sự chậm trễ là do thời gian phản hồi để tải xuống hình ảnh và thời gian xử lý tương ứng cần thiết cho hình ảnh.

Trong bước tiếp theo, bạn sẽ giảm thiểu tác động đến hiệu suất bằng cách khôi phục tính năng này và xác định cách bạn có thể cải thiện việc triển khai tính năng này.

10. Khôi phục tính năng

Việc tăng thời gian chờ đợi của người dùng trong màn hình giật gân là điều không mong muốn. Một trong những lợi ích chính của Cấu hình từ xa là khả năng tạm dừng và đảo ngược quá trình giới thiệu của bạn mà không phải phát hành phiên bản khác cho người dùng của bạn. Điều này cho phép bạn nhanh chóng phản ứng với các vấn đề (chẳng hạn như các vấn đề về hiệu suất mà bạn đã phát hiện ở bước trước) và giảm thiểu số lượng người dùng không hài lòng.

Để giảm thiểu nhanh chóng, bạn sẽ đặt lại phân vị phát hành về 0 để tất cả người dùng của bạn sẽ thấy lại hình ảnh mặc định:

  1. Quay lại trang Cấu hình từ xa trong bảng điều khiển Firebase.
  2. Nhấp vào Điều kiện ở đầu trang.
  3. Nhấp vào điều kiện Seasonal image rollout bạn đã thêm trước đó.
  4. Thay đổi phần trăm thành 0%.
  5. Nhấp vào Lưu điều kiện .
  6. Nhấp vào Xuất bản thay đổi và xác nhận thay đổi.

18c4f1cbac955a04.png

Khởi động lại ứng dụng trong Android Studio và bạn sẽ thấy màn hình chính ở trạng thái trống ban đầu:

d946cab0df319e50.png

11. Khắc phục sự cố về hiệu suất

Bạn đã phát hiện ra trước đó trong phòng thí nghiệm lập trình rằng việc tải xuống một hình ảnh cho màn hình giật gân đang gây ra sự chậm chạp cho ứng dụng của bạn. Xem xét kỹ hơn hình ảnh đã tải xuống, bạn sẽ thấy rằng bạn đang sử dụng độ phân giải gốc của hình ảnh là hơn 2MB! Một cách khắc phục nhanh cho sự cố hiệu suất của bạn là giảm chất lượng xuống độ phân giải phù hợp hơn để hình ảnh mất ít thời gian hơn để tải xuống.

Triển khai lại giá trị Cấu hình từ xa

  1. Quay lại trang Cấu hình từ xa trong bảng điều khiển Firebase.
  2. Nhấp vào biểu tượng Chỉnh sửa cho thông số seasonal_image_url .
  3. Cập nhật Giá trị cho giới thiệu hình ảnh theo Mùa thành https://images.unsplash.com/photo-1552691021-7043334e0b51?w=640 , sau đó nhấp vào Lưu .

828dd1951a2ec4a4.png

  1. Nhấp vào tab Điều kiện ở đầu trang.
  2. Nhấp vào Triển khai hình ảnh theo mùa , sau đó đặt phần trăm trở lại 100%.
  3. Nhấp vào Lưu điều kiện .

1974fa3bb789f36c.png

  1. Nhấp vào nút Xuất bản thay đổi .

12. Kiểm tra bản sửa lỗi và thiết lập cảnh báo

Chạy ứng dụng cục bộ

Với giá trị cấu hình mới được đặt để sử dụng URL hình ảnh tải xuống khác, hãy chạy lại ứng dụng. Lần này, bạn sẽ nhận thấy rằng thời gian dành cho màn hình giật gân ngắn hơn trước.

b0cc91b6e48fb842.png

Xem hiệu suất của các thay đổi

Quay lại trang tổng quan Hiệu suất trong bảng điều khiển Firebase để xem các chỉ số trông như thế nào.

  1. Lần này, bạn sẽ sử dụng bảng theo dõi để điều hướng đến trang chi tiết. Trong bảng theo dõi, trong tab Dấu vết tùy chỉnh , nhấp vào theo dõi tùy chỉnh splash_seasonal_image_processing để xem lại chế độ xem chi tiết hơn về chỉ số thời lượng của nó.

2d7aaca03112c062.png

  1. Nhấp vào thuộc tính tùy chỉnh seasonal_image_url_attribute để xem lại bảng phân tích các thuộc tính tùy chỉnh. Nếu bạn di chuột qua các URL, bạn sẽ thấy một giá trị khớp với URL mới cho hình ảnh đã giảm kích thước: https://images.unsplash.com/photo-1552691021-7043334e0b51?w=640 (với ?w=640 cuối cùng). Giá trị thời lượng được liên kết với hình ảnh này ngắn hơn đáng kể so với giá trị cho hình ảnh trước đó và dễ chấp nhận hơn đối với người dùng của bạn!

10e30c037a4237a2.png

  1. Bây giờ bạn đã cải thiện hiệu suất của màn hình giật gân, bạn có thể thiết lập cảnh báo để thông báo cho bạn khi dấu vết vượt quá ngưỡng mà bạn đã đặt. Mở bảng điều khiển Hiệu suất và nhấp vào biểu tượng menu mục bổ sung (ba dấu chấm) cho splash_screen_trace và nhấp vào Cài đặt cảnh báo .

4bd0a2a1faa14479.png

  1. Nhấp vào nút chuyển đổi để bật cảnh báo Thời lượng . Đặt giá trị ngưỡng cao hơn một chút so với giá trị bạn đang thấy để nếu splash_screen_trace của bạn vượt quá ngưỡng, bạn sẽ nhận được email.
  1. Nhấp vào Lưu để tạo cảnh báo của bạn. Cuộn xuống bảng theo dõi , sau đó nhấp vào tab Dấu vết tùy chỉnh để biết rằng cảnh báo của bạn đã được bật!

2bb93639e2218d1.png

13. Xin chúc mừng!

Chúc mừng! Bạn đã bật SDK giám sát hiệu suất Firebase và thu thập dấu vết để đo hiệu suất của một tính năng mới! Bạn đã theo dõi các chỉ số hiệu suất chính để triển khai một tính năng mới và phản ứng nhanh chóng khi phát hiện ra vấn đề về hiệu suất. Điều này hoàn toàn khả thi với khả năng thực hiện các thay đổi cấu hình với Cấu hình từ xa và theo dõi các vấn đề về hiệu suất trong thời gian thực.

Những gì chúng tôi đã bảo hiểm

  • Thêm SDK giám sát hiệu suất Firebase vào ứng dụng của bạn
  • Thêm dấu vết mã tùy chỉnh vào mã của bạn để đo lường một tính năng cụ thể
  • Thiết lập tham số Cấu hình từ xa và giá trị có điều kiện để kiểm soát/triển khai một tính năng mới
  • Hiểu cách sử dụng bảng điều khiển giám sát hiệu suất để xác định các sự cố trong quá trình triển khai
  • Thiết lập cảnh báo hiệu suất để thông báo cho bạn khi hiệu suất của ứng dụng vượt qua ngưỡng mà bạn đã đặt

Tìm hiểu thêm