Cách nhóm Lịch Android cải thiện tình trạng khởi động ứng dụng và hiện tượng giật bằng Hồ sơ cơ sở

Hồ sơ cơ sở cải thiện tốc độ thực thi mã lên tới 30% bằng cách tránh phiên dịch và biên dịch đúng thời điểm (JIT) các bước cho hành trình phổ biến của người dùng. Hồ sơ cơ sở cho phép bạn chọn hành trình của người dùng mà bạn muốn tối ưu hoá và có thể giúp cải thiện quá trình khởi động ứng dụng, giảm hiện tượng giật, v.v. từ đó giúp cải thiện các chỉ số kinh doanh, chẳng hạn như tỷ lệ giữ chân người dùng và điểm xếp hạng. Tìm hiểu thêm về đường cơ sở Trang doanh nghiệp.

Nhóm Lịch Android đã triển khai Hồ sơ cơ sở và quan sát thấy khoảng 20% ứng dụng thời gian khởi động và giảm khoảng 50% số khung hình chậm hoặc bị treo. Sau đây là họ đã làm gì để đạt được các chiến thắng hiệu suất này, từ đó cho biết lý do đã quyết định sử dụng Hồ sơ cơ sở để đo lường mức độ tác động.

Hồ sơ trên đám mây so với Hồ sơ cơ sở

Nhóm Lịch Android trước đây đã sử dụng Cloud Hồ sơ, trong đó là một phương thức khác Tối ưu hoá theo hướng dẫn của hồ sơ (PGO) dựa trên người dùng thực tế số lần tương tác với ứng dụng. Dưới đây là cách Hồ sơ trên đám mây và Hồ sơ cơ sở so sánh:

Loại hồ sơ Thiết lập Bao gồm hành trình của người dùng Hoạt động hiệu quả nhất khi cơ sở người dùng là Tác động đã thực hiện Phiên bản Android được hỗ trợ

Hồ sơ trên đám mây

Bật theo mặc định

Được chọn tự động dựa trên dữ liệu người dùng trong thế giới thực

Lớn

Trong vòng vài ngày

Android 9 (API cấp 28) trở lên

Hồ sơ cơ sở

Do bạn thiết lập

Do bạn chọn

Tất cả kích thước

Tức thì

Android 7 (API cấp 24) trở lên

Một lý do quan trọng khiến nhóm Lịch Android quyết định thêm Hồ sơ cơ sở vào cơ sở mã của họ là vì họ đã chuyển sang chu kỳ phát hành hằng tuần nhanh hơn. Mặc dù Hồ sơ trên đám mây mang lại hiệu suất đáng kể, nhưng phải mất 1 đến 2 ngày sau khi ra mắt ứng dụng để họ đạt được tác động cao nhất vì họ dựa vào tổng hợp dữ liệu người dùng trong thế giới thực. Bổ sung Hồ sơ trên đám mây bằng cơ sở Hồ sơ giúp người dùng có thêm thời gian để trải nghiệm những điểm cải tiến cao nhất về hiệu suất trước khi phiên bản ứng dụng tiếp theo ra mắt.

Ngoài ra, điều quan trọng là nhóm Lịch Android phải có thể chọn hành trình trọng yếu của người dùng (CUJ) cụ thể được đưa vào mà bạn có thể thực hiện bằng Hồ sơ cơ sở.

Nhìn chung, bạn nên sử dụng Hồ sơ cơ sở ngoài Hồ sơ trên đám mây, được bật theo mặc định, để có kết quả hiệu suất tốt nhất.

Bao gồm hành trình của người dùng

Nhóm Lịch Android chọn đưa 2 CUJ vào Hồ sơ cơ sở của họ:

  • Mở ứng dụng trong chế độ xem lịch biểu: ban đầu là chế độ xem mặc định, rất quan trọng tối ưu hóa cho người dùng lần đầu sử dụng ứng dụng hoặc những người không thay đổi cài đặt mặc định.
  • Mở ứng dụng trong chế độ xem theo tháng: chế độ xem mà nhiều người dùng đã chọn, dựa trên người dùng . Để theo dõi cách người dùng sử dụng ứng dụng, bạn có thể sử dụng các công cụ như Firebase.

Thông thường, bạn nên thêm những CUJ mang lại lợi nhuận cho doanh nghiệp (nếu (có thể áp dụng) và CUJ phổ biến nhất. Để tìm hiểu thêm về cách chọn CUJ để tối ưu hoá, hãy xem bài viết Điều cần làm bao gồm.

Triển khai

Nhóm Lịch Android sử dụng một trình bao bọc nội bộ cho Thư viện Jetpack Macrobenchmark tạo Hồ sơ cơ sở để dễ dàng tích hợp với các công cụ nội bộ và khả năng có thể mở rộng chung.

Dưới đây là cấu hình kiểm thử Macrobenchmark để mở ứng dụng theo lịch chế độ xem:

@Test
fun generateProfile() =
    baselineProfileRule.collect(PACKAGE_NAME, includeInStartupProfile = true) {
        startActivityAndWait()
        // Verify pre-existing recurring events and tasks are shown.
        device.waitAndFindObject(By.text("Recurring event"), 20_000)
        device.waitAndFindObject(By.text("Recurring task"), 20_000)

        // Open drawer and verify selected view.
        device.findObject(By.desc("Show Calendar List and Settings drawer")).click()
        device.waitAndFindObject(By.desc("Schedule view, Selected"), 1_000)
    }

Đo lường tác động bằng bản phát hành được kiểm soát

Vì Hồ sơ cơ sở được kết hợp chặt chẽ với APK đi kèm hồ sơ cơ sở và được tích hợp trước khi ứng dụng chạy, nên bạn không thể chạy A/B chuẩn thử nghiệm để hiểu tác động của chúng. Tuy nhiên, nhóm Lịch Android đo lường chính xác mức độ tác động thông qua bản phát hành có kiểm soát, trong đó bạn về cơ bản, chỉ phát hành phiên bản ứng dụng mới cho một nhóm nhỏ người dùng và so sánh chúng với những người dùng sử dụng phiên bản tương tự với bản phát hành trước đó.

Với Hồ sơ cơ sở, họ nhận thấy ngay sau đây là những thông tin quan trọng cải tiến trong nhiều lĩnh vực. Các số liệu thống kê này được tổng hợp trên phạm vi rộng trên thiết bị và trên tất cả người dùng — những người bắt đầu trong chế độ xem theo lịch và chế độ xem theo tháng có thể nhận được lợi ích lớn nhất, nhưng những người dùng khác cũng được hưởng lợi do tối ưu hóa các quy trình dùng chung, chẳng hạn như tải dữ liệu lịch từ cơ sở dữ liệu.

  • Độ trễ khởi động ứng dụng tương tác trung bình (trường hợp phổ biến nhất) đã giảm từ 775 mili giây đến 644 mili giây (17%)
  • Độ trễ trung bình khi khởi động nguội giảm từ 1.058 mili giây xuống 901 mili giây (15%)
  • Độ trễ trung bình khi khởi động ấm giảm từ 453 mili giây xuống còn 378 mili giây (17%)
  • Tỷ lệ khung hình bị giật trung bình đã giảm 42 đến 60% trong lịch biểu và lượt xem theo tháng

Xin lưu ý rằng nếu bạn sử dụng Hồ sơ trên đám mây cùng với Cơ sở Những hồ sơ bạn có thể sẽ thấy mức độ cải thiện sẽ giảm nhẹ trong khoảng thời gian tuần đầu tiên, khi Hồ sơ trên đám mây được tạo. Tuy nhiên, bạn vẫn nên quan sát thấy mức tăng hiệu suất đáng kể nhờ Hồ sơ cơ sở, ngoài các hồ sơ khác các tính năng tối ưu hoá mà bạn đã triển khai.

Để tìm hiểu thêm về các công cụ và tính năng, hãy xem các tài nguyên sau: