2007'de kurulan JioSaavn, müzik ve podcast'ler için önde gelen bir ses akış hizmetidir. 900'den fazla plak şirketiyle iş ortaklığı kuran şirket, 16 dilde 80 milyondan fazla parçayı canlı oynatıyor. JioSaavn uygulaması ayrıca 6 bölgesel Hint dilinde kullanılabilir.
100 milyondan fazla aylık etkin kullanıcıyı (AEKS) destekleyen teknoloji yığınıyla JioSaavn, geniş ölçekte ve hızlı çalışır. Bu kitle genellikle kaynakları sınırlı Android telefonlara sahiptir. Bu nedenle kullanıcı deneyimi JioSaavn ekibi için son derece önemlidir.
Hedef
Orta seviye teknolojiye sahip mobil cihazlarda bulunanlar gibi kısıtlamaların olduğu bir ortamda optimizasyon yapmak, mühendislik açısından hem zor hem de heyecan verici olabilir. JioSaavn, orta seviye teknolojiye sahip mobil cihazları kullanarak temel hedef kitlesi için kullanıcı deneyimini optimize ederken karşılaştığı zorluk, Hindistan'ın 2. ve 3. kademe şehirlerinde tespit edildi.
Dönüşüm hunisi analiz edildiğinde, uygulamayı kullanıma sunan ancak şarkı dinlemeyen kullanıcıların önemli bir bölümünün bulunduğu ortaya çıktı. Ekip, bunun nedeninin uygulama başlatma süresi olduğunu belirledi. Bu nedenle, uygulama başlatma süresinin iyileştirilmesi, uygulamadaki dinleyici sayısındaki artışla ilişkiliydi.
Nasıl yaptılar?
JioSaavn, bu sorunu analiz etmek ve sürdürülebilir bir çözüm bulmak için kapsamlı analizlerden ve Perfetto, dumpsys gibi bir dizi güçlü araçtan yararlandı. Ekip bu zorluğun üstesinden gelmek için iki ilkeyi kullanıyor: işi paralel hale getirmek ve tembel olmak.
Google’ın yaptığı analizin yardımıyla ekip, -
- Uygulama akışını incelemek, sorunlu noktaları analiz etmek ve uygulama başlatma süresindeki iyileştirmeleri doğrulamak için systrace ve perfetto kullanıldı.
- Geciken başlatma: Ana sayfa görüntüleninceye kadar gecikebilecek tanımlanmış parçalar/örnekler/sınıflar başlatma:
- Reklamlar
- Müzik Hizmeti (Ön Plan Hizmeti) ve Oynatıcı Kaynakları (ör.Exo oynatıcı, önbelleğe alınmış oynatıcı sırası vb.)
- Başlatma sırasında küçültülen Oynatıcı Parçası.
- İsteğe bağlı başlatma: Kitaplık gerektiğinde ve gerektiğinde çeşitli kitaplıkların (ör. Facebook lib) başlatılması.
- viewStubs: Görüntüleme Enflasyonu ve kaynak yüklemesi yoğundu. Ekip, viewStub'ları kullanarak düzenlerini düzleştirdi ve resimleri webP'ye dönüştürdü.
- Çalışan iş parçacığı: Kullanıcı arayüzü iş parçacığı gerektirmeyen bazı görevler, kullanıcı arayüzü iş parçacığını boşaltmak için b/g ileti dizilerine taşındı.
- Önbellek Verilerini Böl - Bir dosyadan önbelleğe alınmış büyük verilerin okunması ve ayrıştırılması çok zaman alır. Ekip, verileri kritik (ana sayfanın gösterilmesi için gereklidir) ve kritik olmayan veriler olarak ikiye ayırdı.
- Eş zamansız LayoutInflater: Ana sayfa geri dönüşüm görünümü için gereken görünümlerden bazıları, Async LayoutInflater kullanılarak önceden şişirildi.
Kullanılan Araçlar - Perfetto, Systrace, Google play vitals, Android Studio Profilers, Firebase performans SDK'sı
Sonuçlar
JioSaavn ekibi, uygulama kararlılığını korumak için bu değişiklikleri uygulamanın birden fazla sürümünde yayınladı. Şu sonuçlara ulaştılar:
- Tüm cihazlarda uygulama başlatma süresinde% 30, orta kaliteye sahip cihazlarda ise% 35-40 oranında iyileşme sağlandı.
- Ana Ekran İzleyicileri/ GEKS'te% 5 iyileşme, böylece hemen çıkma oranında düşüş.
Bu optimizasyon alıştırması, tüm ekibi bir araya getirdi. Ekibin değişiklikler konusunda rahat hissetmesi ve uygulama için performans odaklı bir yaklaşım geliştirmesi için ayrıntılı kılavuzlar yapıldı.
"JioSaavn, Hindistan'ın çeşitli bölgelerinden ve şehirlerinden gelen ve uygun maliyetli olup dünyanın farklı yerlerinden
gelen kullanıcılarımızın dinleme deneyimini iyileştirmeyi hedefliyor. Bölgelerinin mobil bağlantı altyapısını aşmak ve kullanıcı deneyimini kullanıcıların cihaz özelliklerine göre optimize etmek, sürekli olarak çalıştığımız bir konu. Google'ın geliştirici ilişkileri rehberliği sayesinde bu doğrultuda somut bir adım atabildik."– JioSaavn Ürün Ekibi