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 đến 30% bằng cách tránh các bước thông dịch và bước biên dịch trong khi thực thi (JIT) biên dịch các bước cho các 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à nhiều tính năng khác. Nhờ đó, các chỉ số kinh doanh sẽ được cải thiện, 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ề Hồ sơ cơ sở Profiles.

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

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

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

Loại hồ sơ Thiết lập Hành trình của người dùng được đưa vào Phù hợp nhất khi cơ sở người dùng là Tác động nhận thấy Các phiên bản Android được hỗ trợ

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

Bật theo mặc định

Tự động chọn dựa trên dữ liệu thực tế của người dùng

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 định cấu hình

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 chính 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ọ đang chuyển sang chu kỳ phát hành nhanh hơn, hằng tuần. Mặc dù Hồ sơ trên đám mây mang lại hiệu suất tăng đáng kể, nhưng phải mất từ 1 đến 2 ngày sau khi ứng dụng ra mắt thì hồ sơ này mới đạt được tác động cao nhất vì chúng dựa vào việc tổng hợp dữ liệu thực tế của người dùng. Việc bổ sung Hồ sơ cơ sở cho Hồ sơ trên đám mây giúp người dùng có thêm thời gian để trải nghiệm những cải thiện về hiệu suất cao nhất trước khi phiên bản ứng dụng tiếp theo được phát hành.

Ngoài ra, nhóm Lịch Android cần có khả năng chọn cụ thể những hành trình trọng yếu của người dùng (CUJ) nào được đưa vào hồ sơ. Bạn có thể thực hiện việc này 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, để đạt được hiệu suất tốt nhất.

Hành trình của người dùng được đưa vào

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

  • Mở ứng dụng ở chế độ xem lịch biểu: ban đầu là chế độ xem mặc định, vì vậy, việc tối ưu hoá cho người dùng sử dụng ứng dụng lần đầu tiên hoặc những người không thay đổi chế độ cài đặt mặc định là rất quan trọng.
  • Mở ứng dụng ở chế độ xem tháng: chế độ xem được nhiều người dùng chọn, dựa trên dữ liệu 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.

Nhìn chung, bạn nên thêm các CUJ có lợi cho doanh nghiệp (nếu có) và các 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 phần Nội dung cần đưa vào.

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ở nhằm dễ dàng tích hợp với các công cụ nội bộ và khả năng mở rộng chung.

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

@Test
fun generateProfile() =
    baselineProfileRule.collect(PACKAGE_NAME, includeInStartupProfile = true) {
        uiAutomator {
            startApp(packageName = PACKAGE_NAME)
            // Verify pre-existing recurring events and tasks are shown.
            // onElement waits for the element by default
            onElement { textAsString() == "Recurring event" }
            onElement { textAsString() == "Recurring task" }

            // Open drawer and verify selected view.
            onElement { contentDescriptionAsString() == "Show Calendar List and Settings drawer" }.click()
            onElement { contentDescriptionAsString() == "Schedule view, Selected" }
        }
    }

Thay thế nội dung sau:

  • PACKAGE_NAME: Tên gói của ứng dụng mà bạn muốn tạo Hồ sơ cơ sở.

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

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

Với Hồ sơ cơ sở, họ đã thấy những cải thiện đáng kể và tức thì sau đây ở nhiều lĩnh vực. Các số liệu thống kê này được tổng hợp trên nhiều thiết bị và trên tất cả người dùng. Những người dùng bắt đầu ở chế độ xem lịch biểu và chế độ xem tháng có thể nhận được nhiều lợi ích nhất, nhưng những người dùng khác cũng được hưởng lợi nhờ việc tối ưu hoá 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ễ trung bình khi khởi động ứng dụng tương tác (trường hợp phổ biến nhất) giảm từ 775 mili giây xuống 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 378 mili giây (17%)
  • Tỷ lệ khung hình bị giật trung bình giảm từ 42% đến 60% ở chế độ xem lịch biểu và chế độ xem tháng

Xin lưu ý rằng nếu sử dụng Hồ sơ trên đám mây kết hợp với Hồ sơ cơ sở , bạn có thể thấy mức cải thiện giảm nhẹ trong tuần đầu tiên , vì Hồ sơ trên đám mây được tạo. Tuy nhiên, bạn vẫn nên quan sát thấy hiệu suất tăng đáng kể với Hồ sơ cơ sở ngoài các hoạt động tối ưu hoá khác 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: