Các nghiên cứu điển hình

Monzo tăng các chỉ số hiệu suất lên đến 35% bằng một bản cập nhật R8 đơn giản

2 phút đọc
Ben Weiss
Kỹ sư quan hệ với nhà phát triển

Monzo là một ngân hàng kỹ thuật số ở Vương quốc Anh với 15 triệu khách hàng và đang phát triển. Khi ứng dụng mở rộng quy mô, nhóm kỹ thuật đã xác định thời gian khởi động ứng dụng là một lĩnh vực quan trọng cần cải thiện, nhưng lo ngại rằng việc này sẽ đòi hỏi những thay đổi đáng kể đối với cơ sở mã của họ.

Bằng cách bật đầy đủ các tính năng tối ưu hoá R8, Monzo đã giảm đáng kể 35% tỷ lệ Ứng dụng không phản hồi (ANR). Thay đổi đơn giản này đã chứng minh rằng các tính năng tối ưu hoá có tác động không phải lúc nào cũng đòi hỏi nỗ lực kỹ thuật phức tạp.

Khai thác nhiều lợi ích về hiệu suất nhờ chế độ đầy đủ của R8

Monzo xác định chế độ đầy đủ của R8 là một giải pháp dễ dàng đáng để thử. Giải pháp này đã hoạt động và cải thiện hiệu suất trên mọi phương diện:

  • Độ tin cậy khi khởi động: Khởi động nguội cải thiện 30%, Khởi động ấm cải thiện 24% và Khởi động nóng cải thiện 14%.
  • Tốc độ khởi động: Thời gian khởi động P50 cải thiện 11% và thời gian khởi động P90 cải thiện 12%.
  • Hiệu suất: Kích thước tổng thể của ứng dụng giảm 9%.
  • Độ ổn định: Giảm 35% lỗi ANR.
AANDDM_Monzo_Quote-1.png
large_AANDDM_Monzo_Quote-2.png

Bật tính năng tối ưu hoá chỉ bằng một thay đổi

Nhiều ứng dụng Android sử dụng tệp cấu hình mặc định đã lỗi thời, vô hiệu hoá hầu hết các chức năng của trình tối ưu hoá R8. Thay đổi chính mà Monzo đã thực hiện để khai thác những cải thiện về hiệu suất này là thay thế tệp mặc định proguard-android.txt bằng proguard-android-optimize.txt. Thay đổi này sẽ xoá hướng dẫn -dontoptimize và cho phép R8 thực hiện đúng chức năng của mình.

  buildTypes {
  release {
    isMinifyEnabled = true
    isShrinkResources = true
    proguardFiles(
      getDefaultProguardFile("proguard-android-optimize.txt"),
    )
  }
}

Sau khi thực hiện thay đổi này, bạn nên xem xét các tệp cấu hình Keep. Các tệp này cho R8 biết những phần nào trong mã của bạn cần giữ nguyên (thường là vì các phần đó được gọi một cách linh động hoặc bằng các thư viện bên ngoài). Việc sắp xếp các quy tắc Keep không cần thiết có nghĩa là R8 có thể làm được nhiều việc hơn.

Cải thiện hiệu suất cuộn bằng Hồ sơ cơ sở

Để nâng cao hơn nữa trải nghiệm người dùng, Monzo đã triển khai Hồ sơ cơ sở, đặc biệt là nhắm mục tiêu đến hiệu suất cuộn và hiển thị trên nguồn cấp dữ liệu chính. Chiến lược này đảm bảo rằng các hành trình phổ biến nhất của người dùng (mở ứng dụng và cuộn nguồn cấp dữ liệu) được tối ưu hoá hoàn toàn. Tác động đến việc hiển thị là đáng kể: hiệu suất cuộn P90 nhanh hơn 71% và hiệu suất cuộn P95 cải thiện 87%. Giờ đây, việc cuộn ứng dụng mượt mà hơn trước.

Monzo đã tích hợp tính năng này vào quy trình phát hành để duy trì những cải thiện này theo thời gian. Chúng tôi kích hoạt quá trình tạo hồ sơ cơ sở mỗi ngày trong tuần (trước khi chạy bản dựng chạy vào ban đêm) và cam kết những thay đổi mới nhất sau khi hoàn tất

Cập nhật thông tin về cách phát triển Android hiện đại

Trải nghiệm của Monzo cho thấy những điều có thể thực hiện được khi bạn luôn cập nhật các đề xuất về công cụ xây dựng Android. Mặc dù các ứng dụng cũ thường gặp khó khăn khi sử dụng tính năng phản ánh phức tạp, nhưng Monzo nhận thấy quá trình chuyển đổi diễn ra đơn giản bằng cách ghi lại đúng cách Quy tắc Keep. "Chúng tôi luôn thêm một nhận xét giải thích lý do áp dụng Quy tắc Keep, để biết khi nào có thể xoá các quy tắc đó một cách an toàn", Neumayer lưu ý.

Lời khuyên của Neumayer dành cho các nhóm khác? Thường xuyên kiểm tra các phương pháp của bạn dựa trên các tiêu chuẩn hiện tại: "Hãy xem các đề xuất mới nhất của Google về hiệu suất của ứng dụng và kiểm tra xem bạn có đang tuân thủ tất cả lời khuyên mới nhất hay không".

Để bắt đầu và tìm hiểu thêm về R8, hãy truy cập vào https://d.android.com/r8

Tác giả:

Tiếp tục đọc