Các nghiên cứu điển hình
Instagram và Facebook mang đến trải nghiệm phát tức thì và tăng cường mức độ tương tác của người dùng bằng PreloadManager của Media3
4 phút đọc
Trong thế giới năng động của mạng xã hội, sự chú ý của người dùng có thể đến và đi rất nhanh. Các ứng dụng của Meta (Facebook và Instagram) là một trong những nền tảng xã hội lớn nhất thế giới và phục vụ hàng tỷ người dùng trên toàn cầu. Đối với Meta, việc cung cấp video một cách liền mạch không chỉ là một tính năng mà còn là cốt lõi của trải nghiệm người dùng. Video dạng ngắn, đặc biệt là Bảng tin Facebook và Instagram Reels, đã trở thành động lực chính thúc đẩy mức độ tương tác. Chúng cho phép người dùng thể hiện sự sáng tạo và nhanh chóng thưởng thức nội dung, kết nối và giải trí cho mọi người trên khắp thế giới.
Bài đăng trên blog này sẽ đưa bạn đi qua hành trình Meta chuyển đổi trải nghiệm phát video cho hàng tỷ người dùng bằng cách mang đến trải nghiệm phát tức thì thực sự.
Khoảng cách về độ trễ trong video dạng ngắn
Video dạng ngắn dẫn đến các hoạt động tương tác có nhịp độ rất nhanh khi người dùng nhanh chóng lướt qua nguồn cấp dữ liệu của họ. Việc mang đến quá trình chuyển đổi liền mạch giữa các video trong một nguồn cấp dữ liệu luôn thay đổi sẽ tạo ra những rào cản riêng cho trải nghiệm phát tức thì. Do đó, chúng ta cần các giải pháp vượt xa bộ nhớ đệm trên đĩa truyền thống và các chiến lược phát phản ứng tiêu chuẩn.
Con đường phía trước với PreloadManager của Media3
Để giải quyết những thay đổi trong thói quen thưởng thức nội dung do sự gia tăng của nội dung dạng ngắn và những hạn chế của cấu trúc phát nội dung dạng dài truyền thống, Jetpack Media3 đã giới thiệu PreloadManager. Thành phần này cho phép nhà phát triển vượt ra ngoài bộ nhớ đệm của ổ đĩa, cung cấp khả năng kiểm soát và tuỳ chỉnh chi tiết để giữ cho nội dung nghe nhìn luôn sẵn sàng trong bộ nhớ trước khi người dùng nhấn nút phát. Hãy đọc loạt bài đăng trên blog này để hiểu rõ các chi tiết kỹ thuật về trải nghiệm phát nội dung nghe nhìn bằng PreloadManager.
Cách Meta đạt được trải nghiệm phát tức thì thực sự
Sự phức tạp hiện có
Trước đây, Meta đã sử dụng kết hợp tính năng khởi động (để chuẩn bị trình phát) và tìm nạp trước (để lưu nội dung vào bộ nhớ đệm trên đĩa) cho việc phân phối video. Mặc dù các phương thức này giúp cải thiện hiệu quả của mạng, nhưng chúng lại gây ra những thách thức đáng kể. Tính năng khởi động yêu cầu khởi tạo nhiều thực thể trình phát theo trình tự, điều này tiêu tốn nhiều bộ nhớ và giới hạn việc tải trước chỉ cho một vài video. Nhu cầu cao về tài nguyên này có nghĩa là có thể áp dụng một giải pháp mạnh mẽ có khả năng mở rộng hơn để mang đến trải nghiệm phát tức thì như mong đợi trên các nguồn cấp dữ liệu xã hội hiện đại, có khả năng cuộn nhanh.
Tích hợp PreloadManager của Media3
Để đạt được trải nghiệm phát tức thì thực sự, nhóm Media Foundation Client của Meta đã tích hợp PreloadManager của Jetpack Media3 vào Facebook và Instagram. Họ đã chọn DefaultPreloadManager để hợp nhất hệ thống tải trước và phát. Quá trình tích hợp này yêu cầu tái cấu trúc kiến trúc hiện có của Meta để cho phép chia sẻ tài nguyên hiệu quả giữa các thực thể PreloadManager và ExoPlayer. Sự thay đổi chiến lược này mang lại một lợi thế kiến trúc quan trọng: khả năng song song hoá các tác vụ tải trước và quản lý nhiều video bằng một thực thể trình phát duy nhất. Điều này giúp tăng đáng kể khả năng tải trước đồng thời loại bỏ những phức tạp về bộ nhớ cao của phương pháp trước đây.
Tối ưu hoá và điều chỉnh hiệu suất
Sau đó, nhóm đã tiến hành kiểm thử và lặp lại nhiều lần để tối ưu hoá hiệu suất trên hệ sinh thái thiết bị toàn cầu đa dạng của Meta. Việc tải trước tích cực ban đầu đôi khi gây ra các vấn đề, bao gồm tăng mức sử dụng bộ nhớ và làm chậm hiệu suất cuộn. Để giải quyết vấn đề này, họ đã tinh chỉnh việc triển khai bằng cách sử dụng các phép đo bộ nhớ cẩn thận, xem xét tình trạng phân mảnh thiết bị và điều chỉnh hệ thống cho phù hợp với các mẫu giao diện người dùng cụ thể.
Tinh chỉnh việc triển khai cho phù hợp với các mẫu giao diện người dùng cụ thể
Meta đã áp dụng các chiến lược tải trước khác nhau và điều chỉnh hành vi cho phù hợp với các mẫu giao diện người dùng cụ thể của từng ứng dụng:
- Bảng tin Facebook: Giao diện người dùng ưu tiên video hiện đang hiển thị. Trình quản lý chỉ tải trước video hiện tại để đảm bảo video bắt đầu phát ngay khi người dùng tạm dừng thao tác cuộn. Việc tập trung vào "chỉ video hiện tại" giúp giảm thiểu lượng dữ liệu và bộ nhớ trong môi trường mà người dùng có thể thấy nhiều bài đăng tĩnh giữa các video. Mặc dù hệ thống hiện được thiết kế để chỉ tải trước video đang hiển thị, nhưng bạn có thể điều chỉnh để tải trước cả các video sắp tới (trong tương lai).
- Instagram Reels: Đây là một môi trường chỉ có video, nơi người dùng vuốt theo chiều dọc. Đối với giao diện người dùng này, nhóm đã triển khai chiến lược "tải trước video liền kề". PreloadManager giữ cho các video ngay sau video Reels hiện tại luôn sẵn sàng trong bộ nhớ. Phương pháp hai chiều này đảm bảo rằng dù người dùng vuốt lên hay xuống, quá trình chuyển đổi vẫn diễn ra tức thì và mượt mà. Kết quả là chất lượng trải nghiệm (QoE) được cải thiện đáng kể, bao gồm cả việc cải thiện thời gian bắt đầu phát và thời gian hiển thị khung hình đầu tiên cho người dùng.
Mở rộng quy mô cho hệ sinh thái thiết bị toàn cầu đa dạng
Việc mở rộng quy mô ngăn xếp video hiệu suất cao trên hàng tỷ thiết bị đòi hỏi nhiều hơn là chỉ tải trước tích cực; mà còn đòi hỏi trí thông minh. Meta gặp phải những thách thức ban đầu về áp lực bộ nhớ và độ trễ khi cuộn, đặc biệt là trên phần cứng tầm trung đến tầm thấp. Để giải quyết vấn đề này, họ đã xây dựng một hệ thống Phát hiện mức độ căng thẳng của thiết bị xung quanh việc triển khai Media3. Giờ đây, các ứng dụng sẽ theo dõi tín hiệu I/O và CPU theo thời gian thực. Nếu một thiết bị đang chịu tải nặng, quá trình tải trước sẽ bị tạm dừng để ưu tiên khả năng phản hồi của giao diện người dùng.
Việc tối ưu hoá nhận biết thiết bị này đảm bảo rằng lợi ích của trải nghiệm phát tức thì không phải trả giá bằng sự ổn định của hệ thống, cho phép ngay cả những người dùng trên phần cứng cũ hơn cũng có thể trải nghiệm nguồn cấp dữ liệu mượt mà và không bị gián đoạn.
Lợi ích về kiến trúc và tình trạng mã
Ngoài các chỉ số hướng đến người dùng, việc di chuyển sang PreloadManager của Media3 còn mang lại những lợi ích lâu dài về kiến trúc. Mặc dù quá trình tích hợp và điều chỉnh cần nhiều lần lặp lại để cân bằng hiệu suất, nhưng cơ sở mã kết quả lại dễ bảo trì hơn. Nhóm nhận thấy rằng API PreloadManager được tích hợp một cách rõ ràng với hệ sinh thái Media3 hiện có, cho phép chia sẻ tài nguyên tốt hơn. Đối với Meta, việc áp dụng PreloadManager của Media3 là một khoản đầu tư chiến lược vào tương lai của việc thưởng thức video.
Bằng cách áp dụng tính năng tải trước và thêm các cổng thông minh nhận biết thiết bị, họ đã tăng thành công tổng thời gian xem trên các ứng dụng của mình và cải thiện mức độ tương tác tổng thể của cộng đồng toàn cầu.
Tác động đến Instagram và Facebook
Kiến trúc chủ động mang lại những cải tiến tức thì và có thể đo lường được trên cả hai nền tảng.
- Facebook có thời gian bắt đầu phát nhanh hơn, giảm tỷ lệ phát bị giật và giảm số lượng phiên không tốt (như tải lại bộ nhớ đệm, thời gian bắt đầu bị trễ, chất lượng thấp hơn, v.v.), điều này dẫn đến tổng thời gian xem cao hơn.
- Instagram có thời gian bắt đầu phát nhanh hơn và tăng tổng thời gian xem. Việc loại bỏ độ trễ khi tham gia (khoảng thời gian từ hành động của người dùng đến khung hình đầu tiên hiển thị) đã trực tiếp làm tăng các chỉ số tương tác. Việc giảm số lần gián đoạn do giảm bộ nhớ đệm có nghĩa là người dùng xem nhiều nội dung hơn, điều này thể hiện qua các chỉ số tương tác.
Những bài học kỹ thuật quan trọng ở quy mô lớn
Khi thói quen thưởng thức nội dung nghe nhìn phát triển, nhu cầu về trải nghiệm tức thì sẽ tiếp tục tăng. Việc triển khai tính năng quản lý bộ nhớ chủ động và tối ưu hoá cho quy mô và sự đa dạng của thiết bị đảm bảo rằng ứng dụng của bạn có thể đáp ứng những kỳ vọng này một cách hiệu quả.
- Ưu tiên tính năng tải trước thông minh
Tập trung vào việc mang đến trải nghiệm đáng tin cậy bằng cách giảm thiểu tình trạng giật và thời gian tải thông qua tính năng tải trước. Thay vì chỉ lưu vào bộ nhớ đệm trên đĩa đơn giản, việc tận dụng tính năng tải trước ở cấp độ bộ nhớ đảm bảo rằng nội dung luôn sẵn sàng ngay khi người dùng tương tác với nội dung đó.
- Điều chỉnh việc triển khai cho phù hợp với các mẫu giao diện người dùng
Tuỳ chỉnh hành vi tải trước theo giao diện người dùng của ứng dụng. Ví dụ: sử dụng tính năng tập trung vào "chỉ video hiện tại" cho các nguồn cấp dữ liệu hỗn hợp như Facebook để tiết kiệm bộ nhớ và chiến lược "tải trước video liền kề" cho các môi trường dọc như Instagram Reels.
- Tận dụng Media3 để đảm bảo tình trạng mã lâu dài
Việc tích hợp với các API Media3 thay vì giải pháp lưu vào bộ nhớ đệm tuỳ chỉnh cho phép chia sẻ tài nguyên tốt hơn giữa trình phát và PreloadManager, cho phép bạn quản lý nhiều video bằng một thực thể trình phát duy nhất. Điều này dẫn đến một cơ sở mã có khả năng thích ứng với tương lai, giúp các nhóm kỹ thuật không chỉ dễ dàng duy trì và tối ưu hoá theo thời gian mà còn hưởng lợi từ các bản cập nhật tính năng mới nhất.
- Triển khai các biện pháp tối ưu hoá nhận biết thiết bị
Mở rộng phạm vi tiếp cận thị trường bằng cách kiểm thử trên nhiều thiết bị, bao gồm cả các mẫu tầm trung đến tầm thấp. Sử dụng các tín hiệu theo thời gian thực như CPU, bộ nhớ và I/O để điều chỉnh các tính năng và mức sử dụng tài nguyên một cách linh hoạt.
Tìm hiểu thêm
Để bắt đầu và tìm hiểu thêm, hãy truy cập vào
- Khám phá tài liệu về PreloadManager của Media3.
- Xem ứng dụng mẫu để xem tính năng tải trước hoạt động.
Giờ bạn đã biết những bí mật để phát tức thì. Hãy thử chúng!
Tiếp tục đọc
-
Các nghiên cứu điển hình
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ọ.
Ben Weiss • 2 phút đọc
-
Các nghiên cứu điển hình
TikTok là một nền tảng video ngắn toàn cầu nổi tiếng với cơ sở người dùng khổng lồ và các tính năng cải tiến.
Ben Trengrove, Ajesh Pai • 2 phút đọc
-
Các nghiên cứu điển hình
Việc xây dựng một ứng dụng Android cho thiết bị đeo có nghĩa là công việc thực sự bắt đầu khi màn hình tắt.
Breana Tate • 4 phút đọc
Nhận thông tin cập nhật
Nhận thông tin chi tiết mới nhất về quá trình phát triển Android được gửi đến hộp thư đến của bạn hằng tuần.