Android 6.0, uygulamalarınızın platformun sonraki sürümüyle çalışacağından emin olmanızı sağlar. Bu sürüm, API'ye Genel Bakış ve Davranış Değişiklikleri bölümünde açıklandığı gibi uygulamanızı etkileyebilecek çeşitli API'ler ve davranış değişiklikleri 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 bazı sistem değişiklikleri vardır.
Bu kılavuzda, Android 6.0 özelliklerinin uygulamanızla nasıl test edileceği açıklanmaktadır. Uygulamanızın davranışı üzerinde potansiyel olarak yüksek bir etkiye sahip olduklarından, aşağıdaki özelliklerin testine öncelik vermelisiniz:
İzinleri test etme
Yeni İzinler modeli, izinlerin kullanıcı tarafından uygulamanıza atanmasını değiştirir. Uygulamanızın, yükleme prosedürü sırasında tüm izinleri vermek yerine, çalışma zamanında kullanıcıdan bağımsız izinler istemesi gerekir. Bu davranış, kullanıcılara her uygulamanın etkinlikleri üzerinde daha ayrıntılı kontrol sağlar ve uygulamanın belirli bir izni neden istediğini anlamalarına yardımcı olur. Kullanıcılar, bir uygulamaya verilen izinleri istedikleri zaman ayrı ayrı verebilir veya iptal edebilir. Sürümün bu özelliğinin, uygulamanızın davranışını etkileme olasılığı yüksektir ve uygulama özelliklerinizin bazılarının çalışmasını engelleyebilir veya bu özellikler düşük performansla ç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 uygulamanızın güncellenmiş bir sürümünü resmi platform lansmanında yayınlamak amacıyla uygulamanızın yeni izin modeline geçişini şimdiden planlamaya başlamanız gerekir.
Test ipuçları
Uygulamanızın yeni izin davranışıyla testini planlamanıza ve yürütmenize yardımcı olması için aşağıdaki test ipuçlarını kullanın.
- Uygulamanızın mevcut izinlerini ve ilgili kod yollarını belirleyin.
- İzin korumalı hizmetler ve veriler genelinde kullanıcı akışlarını test edin.
- Verilen/iptal edilen izinlerin çeşitli kombinasyonlarını test edin.
- İ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 izin verin ya da iptal edin:
adb shell pm [grant|revoke] <permission.name> ...
- İzinleri ve durumu gruba göre listeleyin:
- Uygulamanızı, izin kullanan hizmetler açısından analiz edin.
Test stratejisi
İzin değişikliği, uygulamanızın yapısını ve tasarımını, ayrıca kullanıcılara sunduğunuz kullanıcı deneyimini ve akışları etkiler. Uygulamanızın mevcut izin kullanımını değerlendirmeniz ve sunmak istediğiniz yeni akışları planlamaya başlamanız gerekir. Platformun resmi sürümü uyumluluk davranışı sağlar ancak uygulamanızı güncellemeyi planlamanız ve bu davranışlara güvenmemeniz gerekir.
Uygulamanızın gerçekten ihtiyaç duyduğu ve kullandığı izinleri belirleyin, ardından izin korumalı hizmetleri kullanan çeşitli kod yollarını bulun. Bunu, yeni platformda test edip kod analizini kullanarak yapabilirsiniz. Test sırasında, uygulamanın targetSdkVersion
değerini API düzeyi 23 olarak değiştirerek çalışma zamanında izinleri etkinleştirmeye odaklanmanız gerekir.
İzinlere bağlı kullanıcı akışlarını öne çıkarmak için iptal edilen ve eklenen çeşitli izin kombinasyonlarıyla test yapın. Bir bağımlılık açık veya mantıklı değilse bağımlılıktan kurtulmak ya da iznin neden gerekli olduğunu netleştirmek için bu akışı yeniden yapılandırmayı veya bölümlere ayırmayı düşünebilirsiniz.
Çalışma zamanında izinlerin davranışı, test ve en iyi uygulamalar hakkında daha fazla bilgi için Sistem izinleriyle çalışma geliştirici makalesine bakın.
Doz ve Uygulamayı Beklemeye Alma özelliklerini test etme
Doze ve Uygulama Bekleme modlarının güç tasarrufu özellikleri, cihaz boştayken veya uygulamanız odakta değilken uygulamanızın yapabileceği arka plan işleme miktarını sınırlar. Sistemin uygulamalara uygulayabileceği kısıtlamalar arasında sınırlı veya hiç ağ erişimi olmaması, askıya alınmış arka plan görevleri, askıya alınmış bildirimler, yoksayılan uyanma istekleri ve alarmlar yer alır. Uygulamanızın bu güç tasarrufu optimizasyonlarıyla düzgün şekilde davrandığından emin olmak 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:
- Android 7.0 (API düzeyi 24) sistem görüntüsüne sahip bir donanım cihazı veya sanal cihaz yapılandırın.
- Cihazı geliştirme makinenize bağlayın ve uygulamanızı yükleyin.
- Uygulamanızı çalıştırın ve etkin bırakın.
- Aşağıdaki komutları çalıştırarak cihazın Doz moduna girmesini simüle edin:
$ adb shell dumpsys battery unplug $ adb shell dumpsys deviceidle step $ adb shell dumpsys deviceidle -h
- Cihaz yeniden etkinleştirildiğinde uygulamanızın davranışını gözlemleyin. Cihaz Uyku modundan çıktığında düzgün bir şekilde kurtarıldığından emin olun.
Uygulamaları Uygulama Bekleme ile test etme
Uygulamanızın bekleme modunu test etmek için:
- Android 7.0 (API düzeyi 24) sistem görüntüsüne sahip bir donanım cihazı veya sanal cihaz yapılandırın.
- Cihazı geliştirme makinenize bağlayın ve uygulamanızı yükleyin.
- Uygulamanızı çalıştırın ve etkin bırakın.
- Aşağıdaki komutları çalıştırarak uygulamanın bekleme moduna geçmesini simüle edin:
$ adb shell am broadcast -a android.os.action.DISCHARGING $ adb shell am set-idle <packageName> true
- Aşağıdaki komutu kullanarak uygulamanızın uyandırılmasını simüle edin:
$ adb shell am set-idle <packageName> false
- Uygulamanız uyandırıldığında uygulamanızın davranışını gözlemleyin. Cihazınızın bekleme modundan sorunsuz bir şekilde çıktığından emin olun. Özellikle de uygulamanızın bildirimlerinin ve arka plan işlerinin beklendiği gibi çalışmaya devam edip etmediğini kontrol etmeniz gerekir.
Uygulamalar ve Cihazlara Özel Tanımlayıcılar İçin Otomatik Yedekleme
Uygulamanız, Google Cloud Mesajlaşma kayıt kimliği gibi cihaza özgü tanımlayıcıları dahili depolama alanında saklıyorsa Otomatik Yedekleme ile Kullanıcı Verilerini Yedeklem bölümünde açıklandığı gibi, depolama konumunu otomatik yedekleme kapsamı dışında bırakmak için en iyi uygulamaları uyguladığınızdan emin olun.