Giám sát hiệu suất triển khai tính năng

1. Khái quát chung

Trong lớp học 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 triển khai 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 Firebase. Chúng tôi sẽ xem xét các dấu vết thiết bị để 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 hiệu ứ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 sẵn có (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 các đườ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 trang tổng quan Giám sát hiệu suất để hiểu số liệu của bạn và theo dõi những 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 mô phỏng 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ề Cấu hình từ xa Firebase

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

Tải mã xuống

Chạy 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 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, bạn cũng có thể tải mã xuống 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ố trường hợp 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 lớp học lập trình này, bạn sẽ sử dụng plugin Hỗ trợ 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, plugin và phần phụ thuộc Firebase cần thiết vào dự án Android của bạn — tất cả đều từ trong Android Studio !

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

  1. Đi tới 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 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, hãy 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ó đó thay thế) . 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ở Android Studio. 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, hãy 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 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 ngăn Trợ lý trong Android Studio cho biết tất cả các phần phụ thuộc đã được thiết lập chính xác.

62e79fd18780e320.png

Là một bước bổ sung, hãy 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 bây giờ sẽ 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 mô phỏng Android của bạn.

Khi ứng dụng đang chạy, trước tiên bạn sẽ thấy 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 thông tin Cấu hình từ xa sau trong lớp học lập trình 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. Sau 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 Remote Config, tính năng này sẽ được bật và hình ảnh đã tải xuống sẽ được hiển thị làm 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 Engage , sau đó nhấp vào Remote Config .
  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. Nhấn vào Thêm mới -> Giá trị có đ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... , chọn User in random percentile <= 0% . (Bạn muốn tắt tính năng này cho đến khi 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 dưới dạng một chuỗi trố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 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 chờ để ẩn quá trình này. Bạn không muốn người dùng của mình phải đợ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 chờ sẽ rất hữu ích.

Giám sát hiệu suất Firebase cung cấp một cách để thực hiện điều đó. Bạn có thể thiết lậ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.

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

  1. Khởi tạo, tạo và bắt đầu theo dõi mã tùy chỉnh có tên 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ý hình ảnh nên bạn sẽ thêm dấu vết mã tùy chỉnh thứ hai để 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 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 dấu vết 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();

Bây giờ bạn đã thêm dấu vết mã tùy chỉnh để theo dõi thời lượng màn hình chờ ( 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 thông báo ghi nhật ký chứa Logging trace metric: splash_screen_trace , theo sau là thời lượng của dấu vết. Bạn sẽ không thấy thông báo tường trình 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 sẽ 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à giám sát 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 chờ và thời gian xử lý tính năng mới. Yếu tố có thể ảnh hưởng đến thời lượng này là liệu hình ảnh được hiển thị có phải 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 hình ảnh xuống.

Vì vậy, hãy thêm 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 khi bắt đầ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 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 thông báo ghi nhật ký 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 chưa đượ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 Trang tổng quan hiệu suất của bảng điều khiển Firebase. Dữ liệu này chúng tôi sẽ giải thích chi tiết trong bước tiếp theo của lớp học lập trình.

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 trang tổng quan để theo dõi tính năng của bạn

Trong bảng điều khiển Firebase , hãy 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 Release & Monitor , sau đó nhấp vào Performance .

Bạn sẽ thấy trang tổng quan Hiệu suất với các điểm dữ liệu đầu tiên trong bảng số liệu 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 số liệu này là nơi bạn có thể theo dõi các số liệu chính cho ứng dụng của mình. Chế độ xem mặc định bao gồm khoảng thời gian 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 số liệu mà bạn quan tâm nhất. Vì bạn đang theo dõi tính năng mới mà bạn đã 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 hộp Chọn số liệu trống.
  2. Trong cửa sổ hộp thoại, chọn loại dấu vết là Dấu vết tùy chỉnh và tên dấu vết 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 số liệu khác mà bạn quan tâm để có thể nhanh chóng xem hiệu suất của chúng thay đổi như thế nào theo thời gian và thậm chí với các bản phát hành khác nhau.

1d465c021e58da3b.png

Bảng số liệu là một công cụ mạnh mẽ để theo dõi hiệu suất của các số liệu chính mà người dùng của bạn trải nghiệm. Đối với lớp học 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 rõ hiệu suất của quá trình triển khai 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 tính năng 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 tỷ lệ phần trăm người dùng trong điều kiện nhắm mục tiêu của bạn. Thông thường, bạn sẽ triển khai các tính năng mới cho một bộ phận nhỏ người dùng và chỉ tăng tính năng này khi bạn tin chắc rằng không có vấn đề gì với nó. Tuy nhiên, trong lớp học lập trình này, bạn là người dùng duy nhất của ứng dụng nên bạn có thể thay đổi tỷ lệ 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. Bấm 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 mô phỏng 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 sự thay đổi 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 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 lớp học lập trình, bạn sẽ sử dụng các phần khác nhau của trang tổng quan để xem dữ liệu hiệu suất.

  1. Trên tab Trang tổng quan chính, cuộn xuống bảng dấu vết, 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 có sẵn .
  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 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 khoảng thời gian của dấu vết này vào bảng số liệu ở đầu tab Trang tổng quan .

Tương tự như trước, 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 dấu vết Dấu vết tùy chỉnh và tên dấu vết 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 của 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 ở phía dưới bên trái, bao gồm thuộc tính tùy chỉnh 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 chờ cho mỗi URL hình ảnh theo mùa ở bên phải:

8fa1a69019bb045e.png

  1. Giá trị thời lượng trên màn hình chờ của bạn có thể sẽ khác một chút so với 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 lớp học lập trình này, lý do dẫn đến thời lượng dài hơn này có thể rất đơn giản nhưng trong ứng dụng thực tế thì điều đó 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ệ 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à tình huống thực tế.

  1. Nhấp vào Hiệu suất ở đầu trang để quay lại tab chính Bảng điều khiển : 640b696b79d90103.png
  2. Trong bảng dấu vết ở cuối trang, hãy nhấp vào tab Yêu cầu mạng . Trong bảng này, bạn sẽ thấy tất cả yêu cầu mạng từ ứng dụng của mình được tổng hợp thành 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 (tức là thời lượng của dấu vết splash_seasonal_image_processing ), bạn có thể thấy rằng phần 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 đây đố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 cho splash_seasonal_image_processing là rất lớn.
  3. Sự chậm trễ là do thời gian phản hồi cho việc tải hình ảnh xuống 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 chờ 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 triển khai mà không cần 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 phản ứng nhanh với các vấn đề (như vấn đề về hiệu suất mà bạn đã phát hiện ở bước cuối cùng) 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ị triển khai về 0 để tất cả người dùng của bạn sẽ nhìn 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. Bấm 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 các vấn đề về hiệu suất

Trước đó, trong lớp học lập trình, bạn đã phát hiện ra rằng việc tải hình ảnh xuống màn hình chờ đã khiến ứng dụng của bạn bị chậm. Nhìn kỹ hơn vào 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 chóng cho vấn đề 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 tải xuống hơn.

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ị triển khai 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. Bấm 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 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 nên chú ý 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 dấu vết để điều hướng đến trang chi tiết. Trong bảng dấu vết, trong tab Dấu vết tùy chỉnh , hãy nhấp vào dấu vết tùy chỉnh splash_seasonal_image_processing để xem lại chế độ xem chi tiết hơn về số liệu thời lượng của dấu vết đó.

2d7aaca03112c062.png

  1. Nhấp vào thuộc tính tùy chỉnh seasonal_image_url_attribute để xem lại thông tin chi tiết về các thuộc tính tùy chỉnh. Nếu di chuột qua các URL, bạn sẽ thấy giá trị khớp với URL mới cho hình ảnh có kích thước giảm: 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ị của hình ảnh trước đó và dễ được người dùng của bạn chấp nhận hơn!

10e30c037a4237a2.png

  1. Bây giờ bạn đã cải thiện hiệu suất của màn hình chờ, 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 bạn đặt. Mở bảng điều khiển Hiệu suất và nhấp vào biểu tượng menu tràn (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 Khoảng thời gian . Đặ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 dấu vết , sau đó nhấp vào tab Dấu vết tùy chỉnh để xem cảnh báo của bạn đã được bật chưa!

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 lường hiệu suất của một tính năng mới! Bạn đã theo dõi các số liệu hiệu suất chính trong quá trình triển khai 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. Tất cả điều này đều có thể thực hiện được nhờ khả năng thực hiện thay đổi cấu hình bằng Cấu hình từ xa và giám sát các vấn đề về hiệu suất trong thời gian thực.

Những gì chúng tôi đã đề cập

  • 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 tính năng mới
  • Hiểu cách sử dụng bảng thông tin giám sát hiệu suất để xác định các vấn đề 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 ứng dụng của bạn vượt qua ngưỡng bạn đặt

Tìm hiểu thêm