Blog

Kilitli ekranda konum neden düşer, native servis ne kazandırır

Tarayıcı tabanlı kurye paneli kilitli ekranda dört buçuk dakika sonra susuyordu. Native foreground service ile aynı koşulda on dakika boyunca kesintisiz veri aldık — ölçümle birlikte.

6 dakika okuma

Saha uygulamalarında en sinsi hata, çalışıyor görünüp sessizce duran koddur. Kurye telefonu cebe girer, ekran kilitlenir ve panel hiçbir hata vermeden konum göndermeyi bırakır. Sorun ancak akşam, teslimatların haritada boş kalmasıyla fark edilir.

Ölçmeden önce varsayma

Bu sorunu ilk duyduğumuzda akla gelen çözüm, gönderim aralığını sıklaştırmaktı. Ama bunu yapmadan önce taban çizgisini ölçtük: aynı cihazda, aynı koşullarda, tarayıcı tabanlı panel kilitli ekranda dört dakika kırk üç saniye sonra tamamen sustu ve üç yüz yirmi saniye boyunca tek bir istek gelmedi. Aralığı sıklaştırmak bu sessizliği kısaltmazdı — yalnızca susmadan önce biraz daha veri gelmesini sağlardı.

Sebep basit: mobil işletim sistemleri arka plandaki tarayıcı sekmesini zamanlayıcılarıyla birlikte askıya alır. Bu bir hata değil, pil ömrü için bilinçli bir tasarım kararıdır. Tarayıcının içinde kalarak bunu aşmaya çalışmak, işletim sisteminin sizden daha inatçı olduğu bir yarışa girmektir.

Doğru katman: foreground service

Çözüm, konum gönderimini tarayıcıdan çıkarıp native bir foreground service'e taşımak oldu. Foreground service, kullanıcıya kalıcı bir bildirim gösterdiği için sistem tarafından öldürülmeye karşı korunur. Arayüz hâlâ web görünümünde çalışabilir; kritik olan tek şey, konumu gönderenin web görünümü olmamasıdır.

Aynı cihazda, aynı kilitli ekran koşulunda ölçüm: on dakika kırk iki saniye boyunca kırk üç istek, en uzun boşluk on beş virgül sekiz saniye. Taban çizgisi önceden alındığı için bu farkın gerçek olduğunu söyleyebiliyoruz.

Ölçüm bittiğinde iş bitmez

Bu sonuç emülatörde alındı. Üretici katmanı olan cihazlarda (agresif pil yönetimi uygulayan markalar) davranış değişebilir; o yüzden aynı ölçüm gerçek cihazda tekrarlanmadan özellik tamamlanmış sayılmaz. Emülatörde yeşil yanan bir kapı, sahada yeşil kalacağının garantisi değildir.

Projenizi konuşalım

Ne yapmak istediğinizi anlatın, size ne kadar sürede ve nasıl yapılabileceğini söyleyelim. İlk görüşme ücretsiz.