Uygulaman arka plandayken Android, belleği boşaltmak için sürecini uyarı ya da çökme raporu olmadan sonlandırabilir. Kullanıcı geri döner ve kaldığı yerden devam etmeyi bekler. Durumun yalnızca bellekte tutulduysa, kullanıcı başlangıç ekranına düşer ve girdiği bilgiler kaybolur. Bu hata yaygındır, çünkü bir geliştirici telefonunda bellek bol olduğu için asla görülmez; ama istendiğinde kolayca yeniden üretilebilir.
Bunu simüle etmenin iki yolu
Seçenek 1: Etkinlikleri koruma. Geliştirici seçeneklerinde (Telefon hakkında bölümünde Derleme numarasına yedi kez dokunarak açılır) Etkinlikleri koruma seçeneğini aç. Terk ettiğin her ekran yok edilir. İşin bitince bunu kapatmayı unutma. Süreç sonlandırmanın yakın bir akrabası olan ekran yeniden oluşturmayı test eder.
Seçenek 2: Süreci öldür. Uygulamayı arka plana al (ana ekran tuşu, son uygulamalardan kaydırarak kapatma değil), sonra bilgisayardan adb ile çalıştır:
adb shell am kill <your.package.name>
Ardından uygulamayı son uygulamalardan yeniden aç. Komut yalnızca arka plandaki bir süreci sonlandırır; bir şey olmazsa uygulama ön plandaydı demektir. Son uygulamalarda uygulamayı kaydırarak kapatmak kullanıcı tarafından zorla durdurmadır; bu farklı bir durumdur ve sistem bundan sonra durumu geri yüklemez.
Kontrol listesi
Her durumu çalıştır, süreci öldür, geri dön ve karşılaştır.
- Yazılmış metinli form. Beklenen: girdi hâlâ orada ya da kullanıcıya neyin kaybolduğu açıkça söylenmiş.
- Derin bir ekran. Üç seviye aşağıdaki bir ayrıntı ekranını aç. Beklenen: başlangıca değil, o ekrana dönersin.
- Kaydırma konumu ve sekme. Beklenen: aynı sekme, yaklaşık aynı konum.
- Seçili öğeler ve filtreler. Beklenen: seçim ve etkin filtre kalır.
- Çok adımlı akış, örneğin tanıtım, ödeme ya da kurulum sihirbazı. Beklenen: adım ve önceki yanıtlar kalır. Kullanıcıların en çok kaybettiği yer burasıdır.
- Açık diyalog ya da alt panel. Beklenen: ya geri yüklenir ya da temiz bir şekilde kapanır, asla yarım çizilmiş olmaz.
- Oturum açık durumu. Beklenen: kullanıcı oturumunu açık tutar.
- Çalışan görevler. Yükleme, indirme, zamanlayıcı. Beklenen: devam eder, güvenli şekilde yeniden başlar ya da net bir hata gösterir; kopya oluşturmadan.
- İzin ya da sistem ekranına sapma. Bir sistem diyaloğuna git, süreci öldür, geri dön. Beklenen: uygulama akışına devam eder.
- Derin bağlantı ya da paylaşım niyeti. Bir bağlantıdan başlat, öldür, geri dön. Beklenen: doğru ekran.
- Uzun bir süre sonra soğuk başlatma. Uygulamayı saatlerce bırak, geri dön. Beklenen: eski verilerden kaynaklı çökme olmadan başlar.
Ne rapor edilmeli
Öldürmeden önceki adımlar, kullanılan yöntem, geri dönüşte kullanıcının ne gördüğü ve ekran adı. Cihazın düşük belleğe sahip olup olmadığını da belirt; bu, süreç sonlandırmayı doğal olarak tetikleyebilir.
Düzeltme
Kullanıcının kaybedeceği şeyleri, Android'in bunun için sağladığı kayıtlı durum alanlarında sakla ve kalıcı verileri bellekte değil depolamada tut. Aynı adımlarla yeniden test et.
Sınırlar
Gerçek düşük bellek davranışı cihazlar arasında farklılık gösterir. Simülasyon senin işleyişini kontrol eder, sistemin bunu ne sıklıkla yapacağını değil.
Genel bakış: Android uygulama testi. İlgili: döndürme ve yapılandırma değişiklikleri ve pil tasarrufu ve Doze.
AppReviewX'te ücretsiz başla ve test edicilerin bu adımları çalıştırıp yapılandırılmış bir şekilde rapor etmesini sağla.