Android 6.0 Test Kılavuzu

Android 6.0, uygulamalarınızın platformun yeni sürümüyle çalışması için size bir fırsat sunar. Bu sürüm, API'lere Genel Bakış ve Davranış Değişiklikleri bölümlerinde açıklandığı gibi uygulamanızı etkileyebilecek bir dizi API ve davranış değişikliği içerir. Uygulamanızı bu sürümle test ederken kullanıcıların iyi bir deneyim yaşamasını sağlamak için odaklanmanız gereken belirli sistem değişiklikleri vardır.

Bu kılavuzda, uygulamanızla Android 6.0 özelliklerinin neyi ve nasıl test edileceği açıklanmaktadır. Uygulamanızın davranışı üzerindeki yüksek olası etkileri nedeniyle bu özellikleri test etmeye öncelik vermelisiniz:

İzinleri Test Etme

Yeni İzin modeli, izinlerin kullanıcılar tarafından uygulamanıza nasıl dağıtılacağını değiştirir. Yükleme prosedürü sırasında tüm izinleri vermek yerine uygulamanızın çalışma zamanında kullanıcıdan bağımsız izinler istemesi gerekir. Kullanıcılar için bu davranış, her uygulamanın etkinlikleri üzerinde daha ayrıntılı kontrol ve uygulamanın neden belirli bir izin istediğini anlamak için daha iyi bağlam sağlar. Kullanıcılar diledikleri zaman bir uygulamaya tek tek verilen izinleri verebilir veya iptal edebilir. Sürümünüzün bu özelliği, büyük olasılıkla uygulamanızın davranışını etkiler ve bazı uygulama özelliklerinizin çalışmasını engelleyebilir ya da bozuk bir durumda çalışabilir.

Bu değişiklik, yeni platform sürümünü hedeflemeyenler dahil olmak üzere yeni platformda çalışan tüm uygulamaları etkiler. Platform, eski uygulamalar için sınırlı bir uyumluluk davranışı sağlar. Ancak resmi platform lansmanında uygulamanızın güncellenmiş bir sürümünü yayınlamak hedefiyle uygulamanızın yeni izin modeline taşınmasını hemen planlamaya başlamalısınız.

Test ipuçları

Uygulamanızı yeni izin davranışıyla test etmeyi planlamanıza ve yürütmenize yardımcı olacak aşağıdaki test ipuçlarını kullanın.

  • Uygulamanızın mevcut izinlerini ve ilgili kod yollarını tanımlayın.
  • İzinle korunan hizmetler ve veriler arasındaki kullanıcı işlemleri akışını test edin.
  • Verilen/iptal edilen çeşitli izin kombinasyonlarıyla test yapın.
  • İzinleri komut satırından yönetmek için adb aracını kullanın:
    • İzinleri ve durumu gruba göre listeleyin:
      adb shell pm list permissions -d -g
    • Aşağıdaki söz dizimini kullanarak bir veya daha fazla izni verin ya da iptal edin:
      adb shell pm [grant|revoke] <permission.name> ...
  • Uygulamanızı izinleri kullanan hizmetler için analiz edin.

Test stratejisi

İzin değişikliği, uygulamanızın yapısı ve tasarımının yanı sıra kullanıcılara sunduğunuz kullanıcı deneyimini ve akışları etkiler. Uygulamanızın mevcut izin kullanımını değerlendirmeli ve sunmak istediğiniz yeni akışlar için planlamaya başlamalısınız. Platformun resmi sürümü, uyumluluk davranışı sağlar. Ancak bu davranışlara güvenmemek, uygulamanızı güncellemeyi planlamanız gerekir.

Uygulamanızın gerçekten ihtiyaç duyduğu ve kullandığı izinleri belirleyin, ardından izne korunan hizmetleri kullanan çeşitli kod yollarını bulun. Bunu yeni platform üzerinde testler yaparak ve kod analizini kullanarak yapabilirsiniz. Test sırasında, uygulamanın targetSdkVersion değerini API düzeyi 23 olarak değiştirerek çalışma zamanı izinlerini etkinleştirmeye odaklanmanız gerekir.

İzinlere bağlı kullanıcı akışlarını vurgulamak için iptal edilen ve eklenen çeşitli izin kombinasyonlarıyla test yapın. Bir bağımlılığın bariz veya mantıklı olmadığı durumlarda bağımlılığı ortadan kaldırmak veya iznin neden gerekli olduğunu netleştirmek için bu akışı yeniden düzenlemeyi ya da bölümlere ayırmayı düşünmelisiniz.

Çalışma zamanı izinlerinin davranışı, testler ve en iyi uygulamalar hakkında daha fazla bilgi için Sistem İzinleri ile çalışma geliştiricisine bakın.

Doz ve Uygulamayı Beklemeye Alma özelliklerini test etme

Doz ve Uygulamayı Beklemeye Alma özelliklerinin güç tasarrufu özellikleri, bir cihaz boştayken veya uygulamanız odakta değilken uygulamanızın gerçekleştirebileceği arka plan işlemi miktarını sınırlar. Sistemin uygulamalara uygulayabileceği kısıtlamalar arasında ağ erişiminin sınırlı olması veya hiç olmaması, askıya alınmış arka plan görevleri, askıya alınan Bildirimler, yoksayılan uyanık kalma istekleri ve alarmlar bulunur. Uygulamanızın bu güç tasarrufu optimizasyonlarıyla düzgün şekilde çalışmasını sağlamak için bu düşük güç durumlarını simüle ederek uygulamanızı test etmeniz gerekir.

Uygulamanızı Doz ile test etme

Doz'u uygulamanızla test etmek için:

  1. Android 7.0 (API düzeyi 24) sistem görüntüsüyle bir donanım cihazını veya sanal cihazı yapılandırın.
  2. Cihazı geliştirme makinenize bağlayın ve uygulamanızı yükleyin.
  3. Uygulamanızı çalıştırın ve etkin bırakın.
  4. Aşağıdaki komutları çalıştırarak Doz moduna geçen cihazı simüle edin:
    $ adb shell dumpsys battery unplug
    $ adb shell dumpsys deviceidle step
    $ adb shell dumpsys deviceidle -h
    
  5. Cihaz yeniden etkinleştirildiğinde uygulamanızın davranışını gözlemleyin. Cihaz Doz'dan çıktığında sorunsuz bir şekilde kurtarıldığından emin olun.

Uygulamaları Beklemeye Alma özelliğiyle uygulamaları test etme

Uygulamayı Beklemeye Alma modunu test etmek için:

  1. Android 7.0 (API düzeyi 24) sistem görüntüsüyle bir donanım cihazını veya sanal cihazı yapılandırın.
  2. Cihazı geliştirme makinenize bağlayın ve uygulamanızı yükleyin.
  3. Uygulamanızı çalıştırın ve etkin bırakın.
  4. Aşağıdaki komutları çalıştırarak uygulamayı bekleme moduna sokun:
    $ adb shell am broadcast -a android.os.action.DISCHARGING
    $ adb shell am set-idle <packageName> true
    
  5. Aşağıdaki komutu kullanarak uygulamanızı uyandırmayı simüle edin:
    $ adb shell am set-idle <packageName> false
  6. Uygulamanızın uyandırıldığı zamandaki davranışını gözlemleyin. Cihaz bekleme modundan sorunsuz bir şekilde düzeldiğinden emin olun. Özellikle, uygulamanızın Bildirimler ve arka plan işlerinin beklendiği gibi çalışmaya devam edip etmediğini kontrol etmeniz gerekir.

Uygulamalar ve Cihaza Özgü Tanımlayıcılar için Otomatik Yedekleme

Uygulamanız, dahili depolama alanında Google Cloud Messaging kayıt kimliği gibi cihaza özgü tanımlayıcılar saklıyorsa, Kullanıcı Verilerini Otomatik Yedekleme ile Yedekleme bölümünde açıklandığı gibi, depolama konumunu otomatik yedeklemeden hariç tutmak için en iyi uygulamaları izlediğinizden emin olun.