1. Tổng quan
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 ra mắt tính năng. Ứng dụng mẫu của chúng ta sẽ có chức năng cơ bản và ứng dụng này được thiết lập để hiển thị một hình nền khác dựa trên cờ Cấu hình từ xa Firebase. Chúng ta sẽ xem xét các dấu vết đo lường để giám sát 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 cải thiện hiệu suất.
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 ứng dụng di động của bạn để khai thác các chỉ số có thể sử dụng (như thời gian khởi động ứng dụng và khung hình chậm hoặc bị treo)
- Cách thêm dấu vết tuỳ chỉnh để hiểu các đường dẫn mã quan trọng trong hành trình của người dùng
- Cách sử dụng trang tổng quan Giám sát hiệu suất để hiểu rõ các chỉ số của bạn và theo dõi các thay đổi quan trọng, chẳng hạn như việc triển khai một tính năng
- Cách thiết lập cảnh báo về hiệu suất để theo dõi các chỉ số chính
- 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 đoạn mã
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 không có Git trên máy của mình, bạn cũng có thể tải mã trực tiếp xuống từ GitHub.
Nhập dự án trong thư mục firebase-perf-rc-android-start
vào Android Studio. Có thể bạn sẽ thấy một số ngoại lệ đối với thời gian chạy hoặc cảnh báo về việc thiếu tệp google-services.json
. Chúng tôi sẽ khắc phục vấn đề 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 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 cần thiết của Firebase vào dự án Android – tất cả đều có trong Android Studio!
Kết nối ứng dụng với Firebase
- Chuyển đến Android Studio/Trợ giúp > Kiểm tra bản cập nhật để đảm bảo rằng bạn đang sử dụng phiên bản Android Studio và Trợ lý Firebase mới nhất.
- Chọn Tools (Công cụ) > Firebase để mở ngăn Assistant (Trợ lý).
- 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 Giám sát hiệu suất.
- 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 của Firebase trong trình duyệt của bạn).
- Trong bảng điều khiển của Firebase, hãy nhấp vào Thêm dự án, sau đó nhập tên dự án Firebase (nếu đã 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à một Ứng dụng Firebase mới.
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.
- Nhấp vào Kết nối.
- Mở Android Studio Trong ngăn Assistant (Trợ lý), bạn sẽ thấy thông báo xác nhận rằng ứng dụng của mình đã kết nối với Firebase.
Thêm tính năng Giám sát hiệu suất vào ứng dụng
Trong ngăn Assistant (Trợ lý) trong Android Studio, hãy nhấp vào Add Performance Monitoring to your app (Thêm giám sát hiệu suất vào ứng dụng).
Bạn sẽ thấy một hộp thoại Accept Changes (Chấp nhận các thay đổi), sau đó Android Studio sẽ đồng bộ hoá ứng dụng của bạn để đảm bảo đã thêm tất cả phần phụ thuộc cần thiết.
Cuối cùng, bạn sẽ thấy thông báo thành công trong ngăn Assistant (Trợ lý) trong Android Studio cho biết rằng tất cả các phần phụ thuộc đều được thiết lập đúng cách.
Bạn có thể 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". Hướng dẫn tương tự cũng có trong tài liệu công khai.
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, hãy nhấp vào Run (Chạy) > Chạy "ứng dụng" để tạo và chạy ứng dụng trên trình mô phỏng Android.
Khi ứng dụng đang chạy, trước tiên, bạn sẽ thấy một màn hình chờ như sau:
Sau đó, sau vài giây, trang chính có hình ảnh mặc định sẽ hiển thị:
Chuyện gì đang xảy ra?
Màn hình chờ được triển khai trong SplashScreenActivity và có những đặc điểm sau:
- Trong
onCreate()
, chúng ta sẽ khởi chạy chế độ 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ẽ thiết lập trong trang tổng quan Cấu hình từ xa trong phần sau của lớp học lập trình này. - Trong
executeTasksBasedOnRC()
, chúng ta đọc giá trị cấu hình của cờseasonal_image_url
. Nếu URL được cung cấp bởi giá trị config, chúng tôi sẽ tải hình ảnh xuống một cách đồng bộ. - Sau khi quá trình tải xuống hoàn tất, ứng dụng sẽ chuyển đến MainActivity và gọi
finish()
để kết thúcSplashScreenActivity
.
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ẽ hiển thị làm nền của trang chính. Nếu không, hình ảnh mặc định (như hình trên) sẽ được hiển thị.
4. Thiết lập Cấu hình từ xa
Hiện ứ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.
- Trong bảng điều khiển bên trái của bảng điều khiển của Firebase, hãy tìm mục Tương tác, sau đó nhấp vào Cấu hình từ xa.
- Nhấp vào nút Create configuration (Tạo cấu hình) để mở biểu mẫu cấu hình và thêm
seasonal_image_url
làm khoá thông số. - Nhấp vào Thêm nội dung mô tả rồi nhập nội dung mô tả sau:
Shows a seasonal image (replaces default) in the main page when the restaurant list is empty.
- Nhấp vào Thêm mới -> Giá trị có điều kiện -> Tạo điều kiện mới.
- Đối với tên điều kiện, hãy nhập
Seasonal image rollout
. - Đối với phần
Applies if...
, hãy chọnUser in random percentile <= 0%
. (Bạn muốn tắt tính năng này cho đến khi sẵn sàng ra mắt ở bước sau.) - Nhấp vào Tạo điều kiện. Bạn sẽ sử dụng điều kiện này vào lúc khác để ra mắt tính năng mới cho người dùng.
- Mở Tạo biểu mẫu thông số đầu tiên, rồi tìm trường Giá trị cho việc phát hành hình ảnh theo mùa. Nhập URL sẽ tải hình ảnh theo mùa xuống:
https://images.unsplash.com/photo-1552691021-7043334e0b51
- Hãy để trống giá trị mặc định. Đ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.
- Nhấp vào Lưu.
Bạn sẽ thấy cấu hình mới được tạo dưới dạng bản nháp.
- Nhấp vào Xuất bản các thay đổi rồi xác nhận nội dung thay đổi ở trên cùng để cập nhật ứng dụng.
5. Thêm tính năng theo dõi thời gian tải dữ liệu
Ứng dụng của bạn sẽ tải trước một số dữ liệu trước khi hiển thị MainActivity
và hiện màn hình chờ để ẩn quy trình này. Bạn không muốn người dùng phải chờ quá lâu trên màn hình này, vì vậy, thông thường, bạn nên theo dõi thời gian hiển thị màn hình chờ.
Tính năng Giám sát hiệu suất Firebase cung cấp cho bạn một giải pháp để làm được điều đó. Bạn có thể đo lường dấu vết mã tuỳ chỉnh để giám sát hiệu suất của mã cụ thể trong ứng dụng của mình – chẳng hạn như thời gian tải dữ liệu và thời gian xử lý của 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 một dấu vết mã tuỳ chỉnh vào SplashScreenActivity
, đây là Activity
triển khai màn hình chờ.
- Khởi động, tạo và bắt đầu một dấu vết mã tuỳ 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");
// ...
}
- Kết thúc dấu vết trong phương thức
onDestroy()
củaSplashScreenActivity
:
SplashScreenActivity.java
@Override
protected void onDestroy() {
super.onDestroy();
// TODO: Stop the splash_screen_trace here
splashScreenTrace.stop();
}
Vì tính năng mới này sẽ 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ã tuỳ 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
.
- Khởi động, tạo và bắt đầu một dấu vết mã tuỳ 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");
// ...
}
}
- Kết thúc dấu vết trong cả phương thức
onLoadFailed()
vàonResourceReady()
củaRequestListener
:
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ã tuỳ 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 một 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 điệp 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 tuỳ chỉnh vào dấu vết
Đối với các dấu vết mã tuỳ chỉnh, tính năng 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 của Firebase. Bạn cũng có thể thêm và theo dõi các thuộc tính tuỳ chỉnh.
Trong ứng dụng, bạn vừa thêm 2 dấu vết mã tuỳ chỉnh để theo dõi thời lượng màn hình chờ 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 thời lượng 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. Ai cũng biết – có thể cuối cùng bạn sẽ có các URL khác nhau để tải hình ảnh xuống.
Vì vậy, hãy thêm một thuộc tính tuỳ chỉnh đại diện cho URL hình ảnh theo mùa vào các dấu vết mã tuỳ 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.
- Thêm thuộc tính tuỳ chỉnh (
seasonal_image_url_attribute
) chosplash_screen_trace
ở đầu phương thứcexecuteTasksBasedOnRC
:
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);
}
// ...
}
- Thêm cùng một thuộc tính tuỳ chỉnh cho
splash_seasonal_image_processing
ngay sau lệnh gọistartTrace("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 tuỳ chỉnh (seasonal_image_url_attribute
) cho cả hai dấu vết tuỳ chỉnh (splash_screen_trace
và 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ý có chứa Setting attribute 'seasonal_image_url_attribute' to 'unset' on trace 'splash_screen_trace'.
. Bạn chưa bật thông số Cấu hình từ xa seasonalImageUrl. Do đó, giá trị thuộc tính là 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 của Firebase. Chúng tôi sẽ giải thích chi tiết về điều này trong bước tiếp theo của lớp học lập trình này.
7. Định cấu hình trang tổng quan Giám sát hiệu suất
Định cấu hình trang tổng quan để giám sát tính năng của bạn
Trong bảng điều khiển của 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, hãy tìm nút Phát hành & Giám sát, sau đó nhấp vào Hiệu suất.
Bạn sẽ thấy trang tổng quan Hiệu suất cùng với các điểm dữ liệu đầu tiên trên bảng chỉ số! 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.
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 của dấu vết thời gian bắt đầu ứng dụng, nhưng bạn có thể thêm những chỉ số mà mình quan tâm nhất. Vì đ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 để hiển thị thời lượng của dấu vết mã tuỳ chỉnh splash_screen_trace
.
- Nhấp vào một trong các hộp Chọn chỉ số trống.
- Trong cửa sổ hộp thoại, hãy chọn loại dấu vết là Custom trace (Dấu vết tuỳ chỉnh) và tên dấu vết là
splash_screen_trace
.
- Nhấp vào Chọn chỉ số, bạn sẽ thấy khoảng thời gian của
splash_screen_trace
được thêm vào trang tổng quan!
Bạn có thể làm theo các bước này để thêm những chỉ số khác mà bạn quan tâm, nhờ đó có thể nhanh chóng nắm bắt sự thay đổi về hiệu suất của những chỉ số đó theo thời gian, thậm chí cả trên các bản phát hành khác nhau.
Bảng chỉ số là một công cụ mạnh mẽ giúp 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 lớp học lập trình này, bạn có một tậ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 để nắm được hiệu suất của việc triển khai tính năng.
8. Triển khai tính năng
Bây giờ, sau khi thiết lập xong tính năng giám sát, bạn đã sẵn sàng triển khai thay đổi về 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 của 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 nhóm nhỏ người dùng và chỉ tăng hạn mức khi bạn tự tin rằng không có vấn đề gì với bản phát hành đó. 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ày, nên bạn có thể thay đổi phân vị thành 100%.
- Nhấp vào thẻ Điều kiện ở đầu trang.
- Nhấp vào điều kiện
Seasonal image rollout
mà bạn đã thêm trước đó. - Thay đổi phân vị thành 100%.
- Nhấp vào Lưu điều kiện.
- Nhấp vào Xuất bản các thay đổi rồi xác nhận nội dung thay đổi.
Quay lại Android Studio, hãy khởi động lại ứng dụng trong trình mô phỏng để xem tính năng mới. Sau màn hình chờ, bạn sẽ thấy màn hình chính có trạng thái trống mới!
9. Kiểm tra các thay đổi về hiệu suất
Bây giờ, hãy xem hiệu suất tải màn hình chờ bằng cách sử dụng trang tổng quan Hiệu suất trong bảng điều khiển của Firebase. Trong bước này của lớp học lập trình, bạn sẽ sử dụng nhiều phần của trang tổng quan để xem dữ liệu hiệu suất.
- Trên thẻ chính của Trang tổng quan, hãy di chuyển xuống bảng dấu vết, sau đó 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ã 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.
- Giờ đây, khi bạn đã bật tính năng mới, hãy tìm dấu vết mã tuỳ chỉnh
splash_seasonal_image_processing
. Dấu vết mã này đo thời gian cần để tải xuống và xử lý hình ảnh. Từ giá trị Duration của dấu vết, bạn có thể thấy rằng việc tải xuống và xử lý này mất một khoảng thời gian đáng kể.
- Vì bạn có dữ liệu về
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ố ở đầu thẻ Trang tổng quan.
Tương tự như trước, hãy nhấp vào một trong các hộp trống Chọn chỉ số. Trong cửa sổ hộp thoại, hãy chọn loại dấu vết là Custom trace (Dấu vết tuỳ chỉnh) và tên dấu vết là splash_seasonal_image_processing
. Cuối cùng, hãy nhấp vào Chọn chỉ số để thêm chỉ số này vào bảng chỉ số.
- Để xác nhận rõ hơn sự khác biệt, bạn có thể xem xét kỹ hơn dữ liệu về
splash_screen_trace
. Nhấp vào thẻsplash_screen_trace
trong bảng chỉ số, rồi nhấp vào Xem chi tiết về chỉ số.
- Trong trang chi tiết, bạn sẽ thấy danh sách các thuộc tính ở dưới cùng bên trái, bao gồm cả thuộc tính tuỳ chỉnh mà bạn đã tạo trước đó. Nhấp vào thuộc tính tuỳ chỉnh
seasonal_image_url_attribute
để xem thời lượng màn hình chờ cho từng URL hình ảnh theo mùa ở bên phải:
- Giá trị thời lượng màn hình chờ 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. Tuy nhiên, bạn nên sử dụng thời lượng dài hơn khi tải hình ảnh xuống từ một URL thay vì sử dụng hình ảnh mặc định (được biểu thị bằng "chưa đặt").
Trong lớp học lập trình này, có thể lý do dẫn đến việc này lâu hơn, nhưng trong một ứng dụng thực tế, điều này có thể không rõ ràng đến vậy. Dữ liệu về thời lượng được thu thập sẽ đến từ nhiều thiết bị, chạy ứng dụng trong nhiều điều kiện kết nối mạng và những điều kiện này có thể tệ hơn mong đợi của bạn. Hãy cùng xem cách bạn điều tra vấn đề này nếu đây là tình huống thực tế.
- Nhấp vào Hiệu suất ở đầu trang để quay lại thẻ chính của Trang tổng quan:
- Trong bảng theo dõi ở cuối trang, hãy nhấp vào thẻ 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 đều được tổng hợp thành các mẫu URL, bao gồm cả mẫu URL
images.unsplash.com/**
. Nếu 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ếtsplash_seasonal_image_processing
), thì 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.
Kết quả về hiệu suất
Khi sử dụng tính năng Giám sát hiệu suất của Firebase, bạn nhậ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 này:
- Thời gian sử dụng
SplashScreenActivity
đã tăng lên. - Thời lượng của
splash_seasonal_image_processing
rất lớn. - Sự chậm trễ này là do thời gian phản hồi đối với 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 này
Tăng số lượng người dùng thời gian chờ trên màn hình chờ. 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 phát hành mà không phải phát hành một phiên bản khác cho người dùng. Điều này cho phép bạn nhanh chóng phản ứng với các vấn đề (như vấn đề về hiệu suất mà bạn phát hiện được trong 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ị 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:
- Quay lại trang Cấu hình từ xa trong bảng điều khiển của Firebase.
- Nhấp vào Điều kiện ở đầu trang.
- Nhấp vào điều kiện
Seasonal image rollout
mà bạn đã thêm trước đó. - Thay đổi phân vị thành 0%.
- Nhấp vào Lưu điều kiện.
- Nhấp vào Xuất bản các thay đổi rồi xác nhận nội dung thay đổi.
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:
11. Khắc phục các vấn đề về hiệu suất
Trong lớp học lập trình trước đó, bạn đã khám phá 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 hoạt động chậm. Xem xét kỹ hơn hình ảnh đã tải xuống, bạn thấy rằng bạn đang sử dụng độ phân giải gốc của hình ảnh là hơn 2 MB! Một cách khắc phục nhanh cho vấn đề về hiệu suất là giảm chất lượng xuống độ phân giải phù hợp hơn để thời gian tải hình ảnh xuống ngắn hơn.
Triển khai lại giá trị Cấu hình từ xa
- Quay lại trang Cấu hình từ xa trong bảng điều khiển của Firebase.
- Nhấp vào biểu tượng Chỉnh sửa cho tham số
seasonal_image_url
. - Cập nhật Giá trị cho việc phát hành hình ảnh theo mùa thành
https://images.unsplash.com/photo-1552691021-7043334e0b51?w=640
, rồi nhấp vào Lưu.
- Nhấp vào thẻ Điều kiện ở đầu trang.
- Nhấp vào Phát hành hình ảnh theo mùa, sau đó đặt lại phân vị thành 100%.
- Nhấp vào Lưu điều kiện.
- Nhấp vào nút Xuất bản các thay đổi.
12. Kiểm thử bản sửa lỗi và thiết lập cảnh báo
Chạy ứng dụng trên máy
Khi giá trị cấu hình mới được đặt để sử dụng một 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 thời gian dành cho màn hình chờ ngắn hơn trước.
Xem hiệu suất của các thay đổi
Quay lại trang tổng quan về Hiệu suất trong bảng điều khiển của Firebase để xem các chỉ số này trông như thế nào.
- 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 thẻ Dấu vết tuỳ chỉnh, hãy nhấp vào dấu vết tuỳ 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 chỉ số đó.
- Nhấp vào thuộc tính tuỳ chỉnh
seasonal_image_url_attribute
để xem lại thông tin chi tiết về các thuộc tính tuỳ chỉnh. Nếu di chuột qua các URL này, bạn sẽ thấy một 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). Giá trị thời lượng được liên kết với hình ảnh này ngắn hơn nhiều so với giá trị cho hình ảnh trước đó và có thể chấp nhận được đối với người dùng của bạn!
- Giờ đây, 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ở trang tổng quan về Hiệu suất rồi nhấp vào biểu tượng trình đơn mục bổ sung (ba dấu chấm) cho splash_screen_trace rồi nhấp vào Cài đặt thông báo.
- Nhấp vào nút bật/tắt để bật cảnh báo Thời lượng. Đặt giá trị ngưỡng cao hơn giá trị mà bạn đang thấy một chút để nếu splash_screen_trace của bạn vượt quá ngưỡng, bạn sẽ nhận được email.
- Nhấp vào Lưu để tạo thông báo của bạn. Cuộn xuống bảng dấu vết, sau đó nhấp vào thẻ Dấu vết tuỳ chỉnh để xem cảnh báo của bạn đã được bật chưa!
13. Xin chúc mừng!
Xin 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 chỉ số chính về hiệu suất để triển khai một tính năng mới và đã phản ứng nhanh chóng khi phát hiện thấy một vấn đề về hiệu suất. Tất cả đều có thể thực hiện được nhờ thay đổi cấu hình bằng tính năng Cấu hình từ xa và theo dõi các vấn đề về hiệu suất theo thời gian thực.
Nội dung đã đề 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ã tuỳ chỉnh vào mã của bạn để đo lường một tính năng cụ thể
- Thiết lập thông số Cấu hình từ xa và giá trị có điều kiện để kiểm soát/ra mắt một tính năng mới
- Tìm hiểu cách sử dụng trang tổng quan theo dõi hiệu suất để xác định các vấn đề trong quá trình phát hành
- Thiết lập cảnh báo về hiệu suất để thông báo cho bạn khi hiệu suất của ứng dụng vượt quá ngưỡng mà bạn đặt ra