JioSaavn tăng số người dùng hoạt động hằng ngày bằng cách cải thiện thời gian khởi động ứng dụng thêm 30%

Được thành lập vào năm 2007, JioSaavn là một dịch vụ phát trực tuyến âm thanh hàng đầu về âm nhạc và podcast. Họ có hơn 900 đối tác là hãng thu âm và phát trực tuyến hơn 80 triệu bản nhạc bằng 16 ngôn ngữ. Ứng dụng JioSaavn cũng hỗ trợ 6 ngôn ngữ khu vực tại Ấn Độ.

Với một bộ công nghệ hỗ trợ hơn 100 triệu người dùng hoạt động hằng tháng, JioSaavn hoạt động ở quy mô lớn và tốc độ cao. Đối tượng này thường dùng điện thoại Android có tài nguyên hạn chế, vì vậy, trải nghiệm người dùng là yếu tố quan trọng nhất đối với nhóm JioSaavn.

Thách thức

Việc tối ưu hoá trong môi trường có nhiều hạn chế, chẳng hạn như trên các thiết bị di động tầm trung và cấp thấp, có thể vừa là thách thức vừa là cơ hội thú vị đối với kỹ thuật. Thách thức mà JioSaavn phải đối mặt là tối ưu hoá trải nghiệm người dùng cho đối tượng mục tiêu chính bằng cách sử dụng thiết bị di động từ phân khúc thấp đến trung bình và chủ yếu ở các thành phố cấp 2 và 3 của Ấn Độ.

Khi phân tích phễu, chúng tôi nhận thấy có một bộ phận đáng kể người dùng sẽ khởi chạy ứng dụng nhưng không nghe bài hát. Nhóm đã xác định thời gian khởi động ứng dụng là nguyên nhân gây ra vấn đề này. Do đó, việc cải thiện thời gian khởi động ứng dụng có liên quan đến việc tăng số lượng người nghe trên ứng dụng.

Họ đã làm như thế nào

JioSaavn dựa vào hoạt động phân tích toàn diện và một bộ công cụ mạnh mẽ như Perfetto, dumpsys, v.v. để phân tích vấn đề này và đưa ra một giải pháp bền vững. Nhóm đã tiếp cận thử thách này bằng cách sử dụng hai nguyên tắc: song song hoá công việc và lười biếng.

Với sự trợ giúp của hoạt động phân tích của Google, nhóm đã ưu tiên các nhiệm vụ –

  • Sử dụng systrace và perfetto để nghiên cứu quy trình của ứng dụng, phân tích các điểm khó khăn, xác thực những điểm cải thiện về thời gian khởi động ứng dụng.
  • Khởi tạo bị trì hoãn: Xác định quá trình khởi tạo các mảnh/thực thể/lớp có thể bị trì hoãn cho đến khi trang chủ xuất hiện –
    • Quảng cáo
    • Dịch vụ âm nhạc (Dịch vụ trên nền trước) và Tài nguyên trình phát (ví dụ: Exoplayer, hàng đợi trình phát được lưu vào bộ nhớ đệm, v.v.)
    • Phân đoạn trình phát được thu nhỏ tại thời điểm khởi chạy.
  • Khởi chạy theo nhu cầu: của nhiều thư viện khi cần (ví dụ: thư viện Facebook).
  • viewStubs: Việc tăng cường Khung hiển thị và tải tài nguyên diễn ra quá nhiều. Nhóm đã làm phẳng bố cục bằng cách sử dụng viewStub và chuyển đổi hình ảnh sang webP.
  • Luồng worker: Một số tác vụ không yêu cầu luồng giao diện người dùng đã được chuyển sang luồng nền để giải phóng luồng giao diện người dùng.
  • Chia dữ liệu trong bộ nhớ đệm – Việc đọc và phân tích cú pháp dữ liệu lớn trong bộ nhớ đệm từ một tệp mất rất nhiều thời gian. Nhóm đã chia dữ liệu thành dữ liệu quan trọng (cần thiết để hiển thị trang chủ) và dữ liệu không quan trọng.
  • Async LayoutInflater: Một số khung hiển thị cần thiết cho recyclerview trên trang chủ đã được tạo trước bằng Async LayoutInflater.

Các công cụ được sử dụng – Perfetto, Systrace, Google Play Vitals, Trình phân tích tài nguyên Android Studio, SDK hiệu suất Firebase

Kết quả

Nhóm JioSaavn đã phát hành những thay đổi này qua nhiều phiên bản của ứng dụng để duy trì tính ổn định của ứng dụng. Họ đã đạt được những kết quả sau:

  • Thời gian khởi động ứng dụng được cải thiện 30% trên tất cả các thiết bị và 35 – 40% trên các thiết bị cấp thấp đến trung bình.
  • Tăng 5% số người xem trên màn hình chính/ số người dùng hằng ngày, từ đó giảm tỷ lệ thoát.

Bài tập tối ưu hoá này đã giúp toàn bộ nhóm gắn kết với nhau. Chúng tôi đã thực hiện các hướng dẫn chi tiết để giúp nhóm làm quen với những thay đổi và áp dụng một phương pháp tập trung vào hiệu suất cho ứng dụng.

"JioSaavn hướng đến việc cải thiện trải nghiệm nghe nhạc của người dùng đến từ nhiều khu vực
và thành phố ở Ấn Độ, đồng thời trải rộng trên nhiều phân khúc về khả năng chi trả. Do đó, việc vượt qua cơ sở hạ tầng kết nối di động của khu vực và tối ưu hoá trải nghiệm người dùng trên các chức năng của thiết bị người dùng là một thách thức liên tục mà chúng tôi phải đối mặt. Nhờ hướng dẫn về mối quan hệ với nhà phát triển của Google, chúng tôi đã có thể thực hiện một bước đi rõ ràng theo hướng này".

– Nhóm sản phẩm JioSaavn