Kaliteli bir uygulama için sağlam bir temel oluşturmak üzere temel uygulama kalitesi yönergelerini uygulayın.
Yönergeler, tüm uygulamaların karşılaması gereken minimum kaliteyi tanımlar.
Uyarlanabilir uygulama kalitesi
Android uygulamaları; kompakt telefonlardan tabletlere, katlanabilir cihazlara, masaüstü bilgisayarlara, bağlı ekranlara, araç içi eğlence sistemlerine, TV'lere ve XR'lara kadar çok çeşitli cihazlarda çalışır. Bölünmüş ekran ve pencereli görüntüleme gibi pencere modları, uygulamaların ekranın yeniden boyutlandırılabilir bölümlerinde çalışmasını sağlar.
Aşağıdaki işlemleri yapmak için temel uygulama kalitesi yönergeleriyle birlikte uyarlanabilir uygulama kalitesi yönergelerini uygulayın:
- Tüm form faktörleri ve ekran boyutları için optimize edilmiş uygulamalar oluşturma
- Uygulamalarınızın Google Play listelerinde ve arama sonuçlarında daha üst sıralarda yer almasını sağlama
- Daha fazla kullanıcı edinme ve kullanıcıları elde tutma oranını artırma
Kurallar
Aşağıdaki temel yönergeler, basit ve yüksek kaliteli bir uygulama geliştirmenize yardımcı olur.
Kullanıcı deneyimi
Standart Android görsel tasarımı ve etkileşim kalıpları, tutarlı ve sezgisel bir kullanıcı deneyimi sağlar.
Mümkün olduğunda Android platformu bileşenleri yerine Materyal Tasarım bileşenlerini kullanarak uygulamanızın kullanıcı arayüzünü oluşturun. Materyal Tasarım, modern bir Android görünümü ve tarzının yanı sıra Android sürümleri arasında kullanıcı arayüzü tutarlılığı sağlar.
Kullanılabilirlik
| Kimlik | Testler | Açıklama |
|---|---|---|
| Consistent_UX | T-Consistent_UX, T-SD_Card |
Uygulama, tüm form faktörlerindeki tüm uygulama kullanım alanları için tutarlı bir kullanıcı deneyimi sunuyor. |
| App_Switcher | T-App_Switcher, T-SD_Card |
Odak başka bir uygulamaya geçtiğinde uygulama arka plana geçer. Son kullanılanlar Uygulama Değiştirme Aracı'ndan yeniden etkinleştirildiğinde uygulama ön plana döner. |
| Sleep_Resume | T-Sleep_Resume, T-SD_Card |
Uygulama, ön planda çalışan uygulama olduğunda cihaz uyku moduna geçtiğinde duraklatılır ve cihaz uyandığında devam ettirilir. |
| Lock_Resume | T-Lock_Resume, T-SD_Card |
Uygulama, ön planda çalışan uygulama olduğunda cihaz kilitlendiğinde duraklatılır ve cihazın kilidi açıldığında devam ettirilir. |
Kullanıcı arayüzü
| Kimlik | Testler | Açıklama |
|---|---|---|
| Display_State_Parity | T-Orientation_Transitions |
Ekran yönleri ve katlama durumları, temelde aynı özellikleri ve işlemleri sunar ve işlevsel eşitliği korur. |
| Fullscreen_Display | T-Orientation_Transitions |
Uygulama, her iki yönde de uygulama penceresini doldurur ve cihazın katlanması ve açılması gibi yapılandırma değişiklikleri nedeniyle sinemaskop efekti uygulanmaz. Ekran geometrisindeki küçük varyasyonları telafi etmek için küçük sinemaskoplar kabul edilebilir. |
| Orientation_Transitions | T-Orientation_Transitions | Uygulama, ekran yönleri arasındaki hızlı geçişleri ve cihazın katlanıp açılmasını, ekran oluşturma sorunları olmadan ve durumu kaybetmeden işler. |
Görsel kalite
| Kimlik | Testler | Açıklama |
|---|---|---|
| Graphic_Quality | T-Graphic_Quality |
Uygulama; grafikleri, metinleri, resimleri ve diğer kullanıcı arayüzü öğelerini belirgin bir bozulma, bulanıklık veya pikselleşme olmadan gösterir.
|
| Line_Length | T-Line_Length | Uygulama, desteklediği her dilde satır uzunluğunu 45-75 karakterle (boşluklar dahil) sınırlayarak metinlerin ve metin bloklarının okunabilirliğini sağlar. |
| Theme_Support | T-Theme_Support | Uygulamanın içeriği ve uygulama tarafından erişilen tüm web içerikleri hem açık hem de koyu temaları destekler. |
Gezinme
| Kimlik | Testler | Açıklama |
|---|---|---|
| Back_Button_Nav | T-Back_Nav | Uygulama, standart geri düğmesiyle gezinmeyi destekler ve ekranda özel geri düğmesi istemleri kullanmaz. |
| Back_Gesture_Nav | T-Back_Nav | Uygulama, geri gitmek ve ana ekrana dönmek için hareketle gezinmeyi destekler. |
| State_Preservation | T-State_Preservation, T-Back_Nav |
Uygulama, ön plandan ayrılırken kullanıcı veya uygulama durumunu korur ve geri gezinme ve diğer durum değişikliklerinden dolayı kazara yaşanan veri kaybını önler. Uygulama, ön plana döndüğünde korunan durumu ve bekleyen durum bilgisi olan işlemleri geri yükler. Düzenlenebilir alanlar, oyun ilerleme durumu, menüler, videolar ve uygulamanın diğer bölümlerinde yapılan değişiklikler buna örnek verilebilir.
|
Bildirimler
| Kimlik | Testler | Açıklama |
|---|---|---|
| Notification_Quality | T-Notification_Quality |
Bildirimler, uygulamanızla ilgili alakalı bilgiler sağlar.
|
| Conversation_Quality | T-Notification_Quality |
Mesajlaşma uygulamaları, sosyal uygulamalar ve görüşmeler için:
|
Erişilebilirlik
| Kimlik | Testler | Açıklama |
|---|---|---|
| Touch_Target_Size | T-Touch_Target_Size | Dokunma hedefleri en az 48 dp'dir. Materyal Tasarım Hedef boyutlar yönergelerine bakın. |
| Visual_Contrast | T-Visual_Contrast |
Uygulama metni ve ön plan içeriği, uygulama arka planıyla aşağıdaki kontrast oranlarını korur:
Renk ve kontrast hakkında daha fazla bilgi edinin. |
| Content_Description | T-Content_Description |
TextView hariç her kullanıcı arayüzü öğesini contentDescription kullanarak açıklayın. |
Uygulama işlevi
Uygulamanız aşağıdaki işlevsel davranışı uygulamalıdır.
Ses
| Kimlik | Testler | Açıklama |
|---|---|---|
| Audio_Playback_Start | T-Audio_Playback_Start |
Kullanıcı ses çalma işlemini başlattığında uygulama bir saniye içinde aşağıdakilerden birini yapmalıdır:
|
| Audio_Focus_Request | T-Audio_Focus_Request | Uygulama, ses çalmaya başladığında ses odağı istemeli ve oynatma durduğunda ses odağını bırakmalıdır. |
| Audio_Focus_Change | T-Audio_Focus_Change | Uygulama, diğer uygulamaların ses odağı isteklerini işlemelidir. Örneğin, başka bir uygulama konuşma sesi çalarken bir uygulama oynatma sesini azaltabilir. |
| Audio_Playback_Background | T-Audio_Playback_Background | Uygulama, arka planda oynatmayı desteklemelidir. Uygulama, artık görünür olmadığında sistemin uygulama işlemini sonlandırmasını önlemek için ön plan hizmeti kullanmalıdır. Uygulama ayrıca, çalıştığını kullanıcıya bildirmek için durum çubuğunda veya kilit ekranında kalıcı ve kapatılamayan bir bildirim göstermelidir. Kullanıcılar, bildirim veya kilit ekranı kontrollerini ya da bağlı bir aksesuarın kontrollerini kullanarak oynatmayı kontrol edebilmelidir. |
| Audio_Notification_Style | T-Audio_Notification_Style | Uygulama arka planda ses oynatırken MediaStyle ile biçimlendirilmiş bir bildirim oluşturmalıdır. |
| Audio_Playback_Resume | T-Audio_Playback_Resume | Uygulama arka plandaysa ve ses duraklatılmışsa uygulama ön plana döndüğünde ses devam eder veya uygulama, kullanıcıya oynatmanın duraklatıldığını belirtmelidir. |
Video
| Kimlik | Testler | Açıklama |
|---|---|---|
| Video_PiP | T-Video_PiP | Uygulama video oynatıyorsa pencere içinde pencere oynatmayı desteklemelidir. |
| Video_Encoding | T-Video_Encoding | Uygulama video kodluyorsa bunu HEVC video sıkıştırma standardını kullanarak yapmalıdır. |
| Video_Playback_Background | T-Video_Playback_Background | Uygulama, en üstte olmadığı durumlarda videonun arka planda oynatılmasını destekliyor. Bu durumlara uygulama penceresinin aşağıdaki halleri de dahildir:
|
Paylaşım
| Kimlik | Testler | Açıklama |
|---|---|---|
| System_Sharesheet | T-System_Sharesheet | Uygulama, içerik paylaşırken Android Sharesheet'i kullanmalıdır. Uygulama, özel çözümler için kullanılamayan hedefler önerebilir. |
Arka plan hizmetleri
| Kimlik | Testler | Açıklama |
|---|---|---|
| Background_Service_Optimization | T-Background_Service_Optimization |
Uygulama, kullanıcının cihazının sorunsuz çalışmasını sağlamak için arka planda gereksiz yere uzun hizmetler çalıştırmaktan kaçınır. Not: Sistem, arka plan hizmetlerine çeşitli kısıtlamalar uygular. Aşağıda, arka plan hizmetlerinin kötüye kullanımına örnekler verilmiştir:
Daha fazla bilgi için Arka plan görevlerine genel bakış başlıklı makaleyi inceleyin. |
Performans ve kararlılık
Uygulamanız optimum performans, kararlılık, uyumluluk ve yanıt verme hızı sunmalıdır.
Performans
| Kimlik | Testler | Açıklama |
|---|---|---|
| App_Startup_Time | T-App_Startup_Time | Uygulama hızlı bir şekilde yükleniyor veya yüklenmesi iki saniyeden uzun sürüyorsa kullanıcıya ekranda geri bildirim (ilerleme göstergesi veya benzer bir işaret) sağlıyor. |
| Rendering_Performance | T-Rendering_Performance | Uygulama, saniyede en az 60 saniyedeki kare sayısı (FPS) görüntülemek için her 16 milisaniyede bir (veya daha az) kare oluşturur. Oluşturma sorunlarıyla ilgili yardım için Yavaş oluşturma başlıklı makaleyi inceleyin. |
| StrictMode_Compliance | T-StrictMode_Compliance | StrictMode etkinleştirildiğinde (StrictMode test bölümüne bakın), uygulama test edilirken kırmızı yanıp sönme (StrictMode'den gelen performans uyarıları) görünmez. |
Kararlılık
| Kimlik | Testler | Açıklama |
|---|---|---|
| Stability_ANR | T-Stability_ANR | Uygulama kilitlenmiyor veya kullanıcı arayüzü iş parçacığını engelleyerek ANR (Android Yanıt Vermiyor) hatalarına neden olmuyor. Olası kararlılık sorunlarını belirlemek için Google Play lansman öncesi raporunu kullanın. Dağıtımdan sonra Google Play Console'daki Android vitals sayfasını izleyin. |
SDK
| Kimlik | Testler | Açıklama |
|---|---|---|
| Android_Platform_Compatibility | T-Android_Platform_Compatibility | Uygulama, Android platformunun herkese açık en son sürümünde kilitlenmeden veya temel işlevleri ciddi şekilde etkilemeden çalışır. |
| Target_SDK_Version | T-Target_SDK_Version | Uygulama, uygulamanın modül build.gradle dosyasında targetSdk değerini ayarlayarak Google Play şartlarına uymak için gereken en son Android SDK'sını hedefliyor. |
| Compile_SDK_Version | T-Target_SDK_Version | Uygulama, uygulamanın modül build.gradle dosyasında compileSdk değeri ayarlanarak en son Android SDK ile derlenir. |
| SDK_Maintenance | T-SDK_Maintenance, T-Non_SDK_Interfaces |
Kullanılan tüm Google veya üçüncü taraf SDK'ları günceldir. Bu SDK'larda kararlılık, uyumluluk veya güvenlikle ilgili yapılan tüm iyileştirmeler kullanıcılara zamanında sunulmalıdır. Google SDK'ları için mümkün olduğunda Google Play Hizmetleri tarafından desteklenen SDK'ları kullanın. Bu SDK'lar geriye dönük uyumludur, otomatik güncellemeler alır, uygulama paketi boyutunuzu küçültür ve cihaz üzerindeki kaynakları verimli bir şekilde kullanır. |
| 1. seçenek: SDK | T-Non_SDK_Interfaces | Uygulama, SDK dışı arayüzler kullanmıyor. |
| Production_Build_Quality | T-Production_Build_Quality | Üretim uygulamasında hata ayıklama kitaplığı bulunmamalıdır. Uygulamaya dahil edilen hata ayıklama kitaplıkları, performans ve güvenlik sorunlarına neden olabilir. |
Pil
| Kimlik | Testler | Açıklama |
|---|---|---|
| Power_Management | T-Power_Management |
Uygulama, Doze ve Uygulamayı Beklemeye Alma güç yönetimi özelliklerini düzgün bir şekilde destekler. Uygulamalar, güç bakımı muafiyeti isteyebilir. Doze ve Uygulamayı Beklemeye Alma için optimizasyon bölümündeki Diğer kullanım alanları için destek konusuna bakın. |
Gizlilik ve güvenlik
Uygulama, kullanıcı verilerini ve kişisel bilgileri güvenli bir şekilde işler ve uygun düzeyde izin sağlar.
Google Play Store'da yayınlanan uygulamalar, kullanıcı gizliliğini korumak için Google Play Kullanıcı Verileri politikalarına da uymalıdır.
İzinler
| Kimlik | Testler | Açıklama |
|---|---|---|
| Minimize_Permissions | T-Minimize_Permissions | Uygulama, yalnızca mevcut kullanım alanını desteklemek için gereken minimum izinleri ister. Konum gibi bazı izinler için uygulama, mümkünse tam yerine yaklaşık spesifikasyon kullanır. İzin isteklerinizi en aza indirme bölümüne bakın. |
| Sensitive_Permissions | T-Sensitive_Permissions |
Uygulama, yalnızca uygulamanın temel kullanım alanlarıyla doğrudan ilgili olduğunda hassas verilere (SMS veya Arama Kaydı izin grupları ya da konum gibi) veya ücretli hizmetlere (Çevirici veya SMS gibi) erişim izni ister. Bu izinlerle ilgili sonuçlar, kullanıcıya belirgin bir şekilde açıklanmalıdır. Uygulamanızın izinleri nasıl kullandığına bağlı olarak, hassas bilgilere erişim gerektirmeden uygulamanızın kullanım alanını karşılamanın alternatif bir yolu olabilir. Örneğin, kullanıcının kişileriyle ilgili izinler istemek yerine erişim istemek için dolaylı intent kullanın. |
| Runtime_Permissions | T-Runtime_Permissions | Uygulama, çalışma zamanında istenen izinleri uygulama başlatılırken değil, işlev istendiğinde talep ediyor. |
| Permission_Rationale | T-Permission_Rationale | Uygulama, izinlerin neden gerekli olduğunu net bir şekilde açıklıyor. |
| Graceful_Degradation | T-Graceful_Degradation | Kullanıcılar bir izni reddettiğinde veya iptal ettiğinde uygulama kontrollü azalma uygular. Uygulama, kullanıcı erişimini tamamen engellememelidir. |
Veriler ve dosyalar
| Kimlik | Testler | Açıklama |
|---|---|---|
| Sensitive_Data_Storage | T-Sensitive_Data_Storage, T-Sensitive_Data_Handling |
Tüm hassas veriler uygulamanın dahili depolama alanında saklanır. |
| Sensitive_Data_Logging | T-Sensitive_Data_Logging | Sistem günlüğüne veya uygulamaya özel bir günlüğe kişisel ya da hassas kullanıcı verileri kaydedilmez. |
| Hardware_IDs | T-Hardware_IDs | Uygulama, kimlik belirleme amacıyla IMEI gibi sıfırlanamayan donanım kimliklerini kullanmıyor. |
Veri yedekleme ve geri yükleme
| Kimlik | Testler | Açıklama |
|---|---|---|
| App_Data_Backup | T-App_Data_Backup |
Uygulama; bulut yedeklemeleri ve cihazdan cihaza (D2D) aktarımlar sırasında kullanıcı verilerini, ayarlarını ve uygulama durumunu koruyor. Yeni bir cihaz kurarken veya uygulamayı yeniden yüklerken verilerin sorunsuz bir şekilde geri yüklenmesini sağlamak için Otomatik Yedekleme'yi uygulayın ve |
| App_Logins_Restoration | T-App_Logins_Restoration |
Uygulama, kullanıcı yeni bir cihaz kurduğunda kullanıcı hesaplarını ve oturum açma durumunu otomatik olarak geri yükler. Kullanıcıları manuel giriş veya hesap kurtarma akışlarına zorlamadan otomatik olarak yeniden kimlik doğrulaması yapmak için Kimlik Bilgisi Yöneticisi'ni kullanarak Kimlik Bilgilerini Geri Yükle özelliğini uygulayın. |
Kimlik
| Kimlik | Testler | Açıklama |
|---|---|---|
| Autofill_Hints | T-Autofill_Hints | Uygulama, hesap kimlik bilgilerinin ve kredi kartı bilgileri, fiziksel adres ve telefon numarası gibi diğer hassas bilgilerin otomatik doldurulması için ipuçları sağlar. |
| Credential_Manager | T-Credential_Manager | Uygulama, geçiş anahtarları, birleştirilmiş kimlik ve şifreler için desteği birleştiren sorunsuz bir oturum açma deneyimi sunmak amacıyla Android için Kimlik Bilgisi Yöneticisi'ni entegre eder. |
| Biometric_Authentication | T-Biometric_Authentication | Uygulama, finansal işlemleri veya önemli kullanıcı belgeleri gibi hassas bilgileri korumak için biyometrik kimlik doğrulamayı destekler. |
Uygulama bileşenleri
| Kimlik | Testler | Açıklama |
|---|---|---|
| Component_Export | T-Component_Export |
Uygulama, tüm etkinlikler, hizmetler,yayın alıcıları ve özellikle içerik sağlayıcılar için Yalnızca diğer uygulamalarla veri paylaşan uygulama bileşenleri veya diğer uygulamalar tarafından çağrılması gereken bileşenler dışa aktarılır. |
| Component_Permissions | T-Component_Permissions |
Tüm intent'ler ve yayınlar en iyi uygulamalara uygundur:
|
| Component_Protection | T-Component_Protection |
Uygulamalar arasında içerik paylaşan tüm bileşenler, özel izinler için Uygulamalar, yüklü paketlerin listesine erişmeye bağlı olmamalıdır. |
Ağ İletişimi
| Kimlik | Testler | Açıklama |
|---|---|---|
| Network_Security_Traffic | T-Network_Security_Traffic | Tüm ağ trafiği SSL üzerinden gönderilir. |
| Network_Security_Configuration | T-Network_Security_Configuration | Uygulama, ağ güvenliği yapılandırması bildiriyor. |
| Security_Provider_Initialization | T-Security_Provider_Initialization | Uygulama Google Play Hizmetleri'ni kullanıyorsa güvenlik sağlayıcı, uygulama başlatılırken başlatılır. |
Web Görünümleri
| Kimlik | Testler | Açıklama |
|---|---|---|
| WebView_Asset_Loader | T-WebView_Asset_Loader, T-WebView_Navigation |
Yerel içeriğe erişmek için setAllowUniversalAccessFromFileURLs() kullanmayın. Bunun yerine WebViewAssetLoader kullanın. |
| WebView_JavaScript | T-WebView_JavaScript, T-WebView_Navigation |
Web görünümleri, güvenilir olmayan içeriklerle Android 6.0 (API düzeyi 23 ve sonraki sürümler) için HTML mesaj kanallarını kullanın. |
Yürütme
| Kimlik | Testler | Açıklama |
|---|---|---|
| App_Bundles | T-App_Bundles |
Uygulama, uygulamanın APK'sı dışından kodu dinamik olarak yüklemez. Play Feature Delivery ve Play Asset Delivery'yi içeren Android App Bundle'ları kullanın. Ağustos 2021'den itibaren Google Play Store'daki tüm yeni uygulamalarda Android App Bundle kullanımı zorunlu hale gelmiştir. |
Kriptografi
| Kimlik | Testler | Açıklama |
|---|---|---|
| Cryptographic_Algorithms | T-Cryptographic_Algorithms | Uygulama, platform tarafından sağlanan güçlü kriptografik algoritmalar ve rastgele sayı oluşturucu kullanıyor. Ayrıca uygulama, özel algoritmalar uygulamıyor. |
Google Play
Uygulamanızın Google Play'de yayınlanmasını sağlayın.
Politikalar
| Kimlik | Testler | Açıklama |
|---|---|---|
| Play_Content_Policies | T-Play_Content_Policies | Uygulama, Google Play Geliştirici İçerik Politikası şartlarına sıkı bir şekilde uymalı, uygunsuz içerik sunmamalı ve başkalarının fikri mülkiyetini veya markasını kullanmamalıdır. |
| Play_Content_Rating | T-Play_Content_Policies | Uygulamanın yetişkinlik düzeyi, İçerik Derecelendirme Yönergeleri'ne uygun şekilde ayarlanmalıdır. |
Uygulama ayrıntıları sayfası
| Kimlik | Testler | Açıklama |
|---|---|---|
| Play_Feature_Graphic | T-Play_Feature_Graphic, T-Play_Graphic_Assets |
Uygulama özellik grafiği, bu destek makalesinde belirtilen yönergelere uygun olmalıdır. Aşağıdakilerden emin olun:
|
| Play_Device_References | T-Play_Graphic_Assets | Uygulama ekran görüntüleri ve videolarında Android olmayan cihazlar gösterilmemeli veya bunlara atıfta bulunulmamalıdır. |
| Play_Misleading_Content | T-Play_Graphic_Assets | Uygulamanın ekran görüntüleri veya videoları, uygulamanızın içeriğini ve deneyimini yanıltıcı bir şekilde yansıtmamalıdır. |
Kullanıcı desteği
| Kimlik | Testler | Açıklama |
|---|---|---|
| Play_User_Reviews | T-Play_Content_Policies | Google Play sayfasının Yorumlar sekmesinde kullanıcılar tarafından bildirilen yaygın hatalar, tekrarlanabilir nitelikteyse ve birçok farklı cihazda meydana geliyorsa ele alınır. Bir hata yalnızca birkaç cihazda ortaya çıkıyorsa ancak bu cihazlar özellikle popüler veya yeniyse hatayı yine de düzeltmeniz gerekir. |
Test ortamı
Test ortamını aşağıdaki gibi ayarlayın:
Emülatör testi: Android Emulator, uygulamanızı farklı Android sürümleri ve ekran çözünürlüklerinde test etmek için mükemmel bir araçtır. Hedef kullanıcı tabanınız için en yaygın form faktörlerini ve donanım/yazılım kombinasyonlarını temsil edecek emüle edilmiş cihazlar (AVD'ler) oluşturun. Aşağıdaki emülatörleri kullanarak çeşitli form faktörlerini test edin (en azından):
- Katlanabilir cihazlar: Dış ekranlı 7,6 inç katlanabilir cihaz (AVD Yöneticisi'nde telefonlar bölümünde listelenir)
- Tablet: Pixel C 9,94 inç (2.560 piksel x 1.800 piksel)
- Mobil uygulama bildirim testi: Mobil cihazı / emülatörü Wear OS emülatörüyle eşleyin: Wear OS Round 1.84"
Donanım cihazları: Test ortamınızda, tüketicilerin kullanabileceği temel form faktörlerini ve donanım/yazılım kombinasyonlarını temsil eden az sayıda gerçek donanım cihazı bulunmalıdır. Piyasadaki her cihazda test yapmanız gerekmez. Temsili cihazlardan oluşan küçük bir gruba odaklanın. Her form faktörü için bir veya iki cihaz kullanabilirsiniz.
Cihaz test laboratuvarları: Uygulamanızı çok çeşitli cihazlarda test etmek için Firebase Test Lab gibi üçüncü taraf hizmetlerini de kullanabilirsiniz.
En yeni Android sürümüyle test edin: Hedef kullanıcı tabanınız için temsili Android sürümlerini test etmenin yanı sıra, en yeni davranış değişikliklerinin uygulamanızın kullanıcı deneyimini olumsuz etkilemediğinden emin olmak için her zaman en yeni Android sürümüyle test etmeniz gerekir.
Birim testi, entegrasyon testi ve kullanıcı arayüzü testi de dahil olmak üzere testle ilgili daha fazla bilgi için Android uygulamalarını test etmenin temel bilgileri başlıklı makaleyi inceleyin.
StrictMode
Performans testi için uygulamanızda StrictMode özelliğini etkinleştirin. Performansı, ağ erişimlerini ve dosya okuma ve yazma işlemlerini etkileyebilecek işlemleri yakalamak için StrictMode özelliğini kullanın. Hem ana iş parçacığında hem de diğer iş parçacıklarında sorunlu olabilecek işlemleri arayın.
StrictMode.ThreadPolicy.Builder kullanarak iş parçacığı başına izleme politikası oluşturun ve detectAll() kullanarak ThreadPolicy içinde desteklenen tüm izleme özelliklerini etkinleştirin.
penaltyFlashScreen() kullanarak ThreadPolicy için politika ihlallerinin görsel bildirimini etkinleştirin.
Testler
Temel uygulama kalitesi testleri, uygulamanızın temel kalitesini değerlendirmenize yardımcı olur. Testleri birleştirebilir veya test gruplarını test planınıza entegre edebilirsiniz.
Kullanıcı deneyimi
Tutarlı ve sezgisel bir kullanıcı deneyimi için test yapın.
Kullanılabilirlik
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-Consistent_UX | Consistent_UX |
Uygulamanın tüm bölümlerinde (tüm ekranlar, iletişim kutuları, ayarlar ve tüm kullanıcı işlemleri akışları) gezinin. Aşağıdakileri yapın:
|
| T-App_Switcher | App_Switcher | Her uygulama ekranından çalışan başka bir uygulamaya geçin ve ardından Son kullanılanlar uygulama değiştiriciyi kullanarak test edilen uygulamaya geri dönün. |
| T-Sleep_Resume | Sleep_Resume | Cihazı uyku moduna almak için güç düğmesine basın, ardından ekranı uyandırmak için güç düğmesine tekrar basın. |
| T-Lock_Resume | Lock_Resume | Cihazda ekran kilidi ayarlayın. Cihazı uyku moduna geçirmek (cihazı kilitlemek) için güç düğmesine basın. Ardından, ekranı uyandırmak ve cihazın kilidini açmak için güç düğmesine tekrar basın. |
SD kart
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-SD_Card | Consistent_UX |
Uygulama bir cihazın SD kartına yüklüyken temel işlev testleri yapın (uygulama bu yükleme yöntemini destekliyorsa). Uygulamayı SD karta taşımak için uygulamanın Ayarlar bölümüne bakın. |
Kullanıcı arayüzü
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-Orientation_Transitions | Display_State_Parity, Fullscreen_Display, Orientation_Transitions |
Her uygulama ekranında cihazı yatay ve dikey yönler ile katlanmış ve katlanmamış durumlar arasında en az üç kez döndürün. Uygulamanın aşağıdakileri yaptığını doğrulayın:
|
Görsel kalite
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-Graphic_Quality | Graphic_Quality | Uygulamanızın tüm özelliklerini kullanın. Grafikler, metinler, resimler ve diğer kullanıcı arayüzü öğeleri de dahil olmak üzere tüm görsellerde bozulma, bulanıklık veya pikselleşme olmadığından emin olun. |
| T-Line_Length | Line_Length |
Uygulamadaki tüm metin bloklarını inceleyin. Metin ve metin bloğu satır uzunluğunun, okunabilirlik açısından 45-75 karakterle (boşluklar dahil) sınırlı olduğunu doğrulayın. Aşağıdakileri doğrulayın:
|
| T-Theme_Support | Theme_Support | Tüm metinlerin açık ve koyu temalarda okunabilir olduğunu doğrulayın. Tüm görsellerin açık ve koyu temalarda net bir şekilde ayırt edilebildiğini ve estetik göründüğünü doğrulayın. |
Gezinme
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-Back_Nav | Back_Button_Nav, Back_Gesture_Nav |
Uygulamanın tüm bölümlerinde (tüm ekranlar, iletişim kutuları, ayarlar ve tüm kullanıcı işlemleri akışları) gezinin. Her uygulama ekranında Geri düğmesine basın veya geri kaydırma hareketini kullanın. Uygulama, önceki ekrana veya ana ekrana gitmelidir. |
| T-State_Preservation | State_Preservation | Her uygulama ekranında cihazın Ana Sayfa tuşuna basın veya hareketle gezinme modunda yukarı kaydırın, ardından uygulamayı Tüm Uygulamalar ekranından yeniden başlatın. |
Bildirimler
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-Notification_Quality | Notification_Quality, Conversation_Quality |
Uygulamanın gösterebileceği tüm bildirim türlerini tetikleyin ve bildirimler çekmecesinde gözlemleyin. Uygun olan yerlerde bildirimleri genişletin (Android 4.1 ve sonraki sürümler) ve mevcut tüm işlemlere dokunun. |
Erişilebilirlik
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-Touch_Target_Size | Touch_Target_Size | Dokunma hedeflerinin tüm ekran boyutları ve yapılandırmaları için tutarlı, erişilebilir bir boyut ve konumda olduğunu doğrulayın. Erişilebilirlik hakkında bilgi edinmek için Erişilebilirlik Tarayıcısı'na bakın. |
| T-Visual_Contrast | Visual_Contrast | Tüm görsel öğelerin kontrastını doğrulayın. |
| T-Content_Description | Content_Description | TextView dışındaki tüm kullanıcı arayüzü öğelerinin içerik açıklamaları olduğunu doğrulayın. |
Uygulama işlevi
Uygulamanızın aşağıdaki işlevsel davranışı uyguladığını doğrulayın.
Ses
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-Audio_Playback_Start | Audio_Playback_Start | Ses oynatmayı başlatma Uygulamanın bir saniye içinde sesi çalmaya başladığını veya ses verilerinin oynatılmaya hazırlandığını gösteren görsel bir gösterge sağladığını doğrulayın. |
| T-Audio_Focus_Request | Audio_Focus_Request | Ses oynatmayı başlatma Uygulama, ses odağı istemelidir. Ses çalma durduğunda uygulama, ses odağını bırakmalıdır (Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalarda bu işlem otomatik olarak gerçekleşir). |
| T-Audio_Focus_Change | Audio_Focus_Change | Ses oynatmayı başlatma Başka bir uygulamada ses çalma işlemini başlatın. Uygulamanız, ses odağındaki değişikliğe yanıt vermeli ve ses çalmayı durdurmalı veya çalma ses seviyesini azaltmalıdır. |
| T-Audio_Playback_Background | Audio_Playback_Background | Ses oynatmayı başlatma Ön planda çalışan uygulama olarak başka bir ses dışı uygulamayla etkileşim kurun. Uygulama, arka planda ses çalmaya devam etmeli ve durum çubuğunda bir bildirim göstermelidir. Bildirimde gösterilen kontrolleri kullanarak oynatmayı yönetebildiğinizi doğrulayın. Cihaz ekranını kilitleyin. Uygulama, arka planda ses çalmaya devam etmeli ve kilit ekranında bir bildirim göstermelidir. Bildirimde gösterilen kontrolleri kullanarak oynatmayı yönetebildiğinizi doğrulayın. |
| T-Audio_Notification_Style | Audio_Notification_Style | Ses oynatmayı başlatma Ön planda çalışan başka bir ses dışı uygulamayla etkileşim kurun. Uygulamanızın arka planda ses çalmaya devam ettiğini ve MediaStyle ile biçimlendirilmiş bir bildirim oluşturduğunu doğrulayın. Medya kontrolleriyle uyumlu çalışma başlıklı makaleyi inceleyin. |
| T-Audio_Playback_Resume | Audio_Playback_Resume | Ses oynatmayı başlatma Ön planda çalışan uygulama olarak ses içermeyen başka bir uygulamayla etkileşimde bulunun. Uygulamanızla etkileşimde bulunarak onu en üstteki uygulama yapın. Ses devam etmeli veya ses seviyesi geri yüklenmelidir. Aksi takdirde uygulama, kullanıcıya oynatmanın duraklatıldığını belirtmelidir. |
Video
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-Video_PiP | Video_PiP | Uygulamanın pencere içinde pencere modunda video oynatma özelliğini etkinleştirin. |
| T-Video_Encoding | Video_Encoding | Uygulamanın, HEVC video sıkıştırma standardını kullanarak videoyu kodladığını doğrulayın. |
| T-Video_Playback_Background | Video_Playback_Background | Video oynatmayı başlatın. Uygulama penceresini simge durumuna küçültün, uygulama penceresini arka plana taşımak için başka bir uygulama açın. Masaüstü özellikli cihazlarda uygulama penceresini görünür masaüstünün dışına taşıyın. Video oynatmanın her durumda kesintisiz devam ettiğini doğrulayın. |
Paylaşım
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-System_Sharesheet | System_Sharesheet | Bir intent oluşturun ve intent'i bağımsız değişken olarak kullanarak startActivity() yöntemini çağırıp bir etkinlik başlatın. Android Sharesheet'i kullanma başlıklı makaleyi inceleyin. Uygulamanızda Android Sharesheet gösterilmelidir. |
Arka plan hizmetleri
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-Background_Service_Optimization | Background_Service_Optimization | Uygulamanızın tüm önemli özelliklerini kullanın. Uzun süre çalışan arka plan hizmetlerinin başlatılmadığını doğrulayın. Uygulamanızı arka plana göndermek için başka bir uygulamaya geçin. Ayarlar'a gidip uygulamanızın arka planda çalışan hizmetleri olup olmadığını kontrol edin. Android 4.0 ve sonraki sürümlerde Uygulamalar ekranına gidin ve Çalışıyor sekmesinde uygulamayı bulun. |
Performans ve kararlılık
Performansı, kararlılığı ve mükemmel görselleri doğrulayın.
Performans
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-App_Startup_Time | App_Startup_Time | Uygulamanızı başlatın. Uygulamanın hızlı yüklendiğini veya yüklenmesi iki saniyeden uzun sürüyorsa ilerleme göstergesi ya da benzer bir işaret sağladığını doğrulayın. |
| T-Rendering_Performance | Rendering_Performance | Uygulamanızın tüm önemli özelliklerini kullanın. Uygulamanın saniyedeki kare sayısı (FPS) en az 60 olduğunu doğrulayın. Uygulamanızı test etmenize yardımcı olması için HWUI oluşturma profili oluştur seçeneğini kullanın. |
| T-StrictMode_Compliance | StrictMode_Compliance |
Uygulamanızda Çöp toplamaya ve bunun kullanıcı deneyimi üzerindeki etkisine dikkat edin. |
Kararlılık
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-Stability_ANR | Stability_ANR | Uygulamanızın tüm önemli özelliklerini kullanın. Uygulamanın kilitlenmediğini veya kullanıcı arayüzü iş parçacığını engelleyerek ANR (Android Yanıt Vermiyor) hatalarına neden olmadığını doğrulayın. Olası kararlılık sorunlarını belirlemek için Google Play lansman öncesi raporunu inceleyin. |
SDK
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-Android_Platform_Compatibility | Android_Platform_Compatibility | Uygulamanızı Android platformunun en son herkese açık sürümünde çalıştırın. Tüm önemli özellikleri kullanabilirsiniz. Uygulamanın kilitlenmediğini ve temel işlevlerinde herhangi bir kayıp olmadan çalıştığını doğrulayın. |
| T-Target_SDK_Version | Target_SDK_Version, Compile_SDK_Version |
Uygulamanın en son SDK (targetSdk ve compileSdk) ile derlendiğinden emin olmak için Android manifest dosyasını ve derleme yapılandırmasını inceleyin. |
| T-SDK_Maintenance | SDK_Maintenance | Uygulamanızın build.gradle dosyasında eski bağımlılıklar olup olmadığını kontrol edin. |
| T-Non_SDK_Interfaces | Non_SDK_Interfaces | SDK olmayan arayüz kullanımını tespit etmek için Android Studio lint aracını kullanın. Alternatif test yöntemleri için SDK olmayan arayüzlerde kısıtlamalar başlıklı makaleyi inceleyin. |
| T-Production_Build_Quality | Production_Build_Quality | Uygulamanızın build.gradle dosyasında hata ayıklama kitaplıkları olup olmadığını kontrol edin. |
Pil
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-Power_Management | Power_Management |
Doze ve Uygulamayı Beklemeye Alma modlarında tüm önemli uygulama özelliklerini kullanma Alarmların, zamanlayıcıların, bildirimlerin ve senkronizasyonların Doz bakım döneminde ve uygulama, bekleme modundan çıktığında düzgün çalıştığını doğrulayın. ADB komutlarını kullanarak Doze ve Uygulamayı Beklemeye Alma davranışını test edin (gereksinimler ve yönergeler için Doze ve Uygulamayı Beklemeye Alma ile test etme bölümüne bakın). Beklenmedik pil tüketimini teşhis etmek için Android Studio Power Profiler'ı veya planlı arka plan çalışmalarıyla birlikte Battery Historian aracını kullanın. |
Gizlilik ve güvenlik
Kullanıcıların beklediği gizlilik ve güvenlik korumalarını test edin.
İzinler
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-Minimize_Permissions | Minimize_Permissions | Uygulamanızın gerektirdiği tüm izinleri manifest dosyasında, çalışma zamanında ve cihazdaki uygulama ayarlarında (Ayarlar > Uygulama Bilgileri) inceleyin. |
| T-Sensitive_Permissions | Sensitive_Permissions | Uygulamanızın izin isteyen tüm özelliklerini kullanın. Uygulamanın, hassas verilere veya hizmetlere erişim iznini yalnızca temel uygulama kullanım alanları için istediğini doğrulayın. Hassas verilere ve hizmetlere izin vermenin sonuçlarının kullanıcıya net bir şekilde iletildiğini doğrulayın. |
| T-Runtime_Permissions | Runtime_Permissions | Uygulamanızın izin gerektiren tüm özelliklerini kullanın. İzinlerin uygulama başlatılırken değil, yalnızca özelliklere erişildiğinde gecikmeli olarak istendiğini doğrulayın. |
| T-Permission_Rationale | Permission_Rationale | Uygulamanızın izin gerektiren tüm özelliklerini kullanın. Uygulamanın, izinlerin neden gerekli olduğunu kullanıcıya açıkladığını doğrulayın. |
| T-Graceful_Degradation | Graceful_Degradation | Uygulamanızın izin gerektiren tüm özelliklerini kullanın. İzinleri reddetme veya iptal etme Uygulamanın alternatif bir kullanım alanı sunduğunu ve çalışmaya devam ettiğini doğrulayın. |
Veriler ve dosyalar
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-Sensitive_Data_Storage | Sensitive_Data_Storage | Dahili depolama alanında saklanan tüm verileri inceleyin. Harici olarak depolanan verilerin hassas veri olmadığını doğrulayın. |
| T-Sensitive_Data_Handling | Sensitive_Data_Storage | Harici depolama alanından yüklenen verilerin nasıl işlendiğini inceleyin. |
| T-Sensitive_Data_Logging | Sensitive_Data_Logging | Cihaz günlüğünü izlerken uygulamanın tüm önemli özelliklerini kullanın. Özel kullanıcı bilgilerinin günlüğe kaydedilmediğini doğrulayın. |
| T-Hardware_IDs | Hardware_IDs | Uygulamanın tüm önemli özelliklerini kullanın. Uygulamanın, kimlik doğrulama amacıyla IMEI gibi donanım kimliklerini kullanmadığını doğrulayın. |
Veri yedekleme ve geri yükleme
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-App_Data_Backup | App_Data_Backup |
Birincil cihazda yerel tercihleri, veritabanlarını ve uygulama ayarlarını yapılandırın. Bulut yedeklemesi veya yeni bir cihaza cihazdan cihaza (D2D) aktarım yapın. Aktarımdan sonra uygulamayı hedef cihazda başlatın ve yerel tercihlerin, veritabanı durumunun ve kullanıcı ayarlarının Otomatik Yedekleme kurallarınıza göre doğru şekilde geri yüklendiğini doğrulayın. Ayrıntılı test prosedürleri için Yedekleme ve geri yüklemeyi test etme başlıklı makaleyi inceleyin. |
| T-App_Logins_Restoration | App_Logins_Restoration |
Geçiş anahtarları, şifreler veya Google ile oturum açma özelliğini kullanarak birincil cihazda oturum açılmış bir oturum oluşturun. Bulut yedeklemesi veya yeni bir cihaza cihazdan cihaza (D2D) aktarım yapın. Aktarımdan sonra uygulamayı hedef cihazda başlatın ve oturum açma ekranları gösterilmeden veya hesap kurtarma işlemi gerekmeden Restore Credentials kullanılarak kimlik doğrulamanın otomatik olarak geri yüklendiğini doğrulayın. Ayrıntılı test prosedürleri için Kimlik Bilgilerini Geri Yükleme'yi test etme başlıklı makaleyi inceleyin. |
Kimlik
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-Autofill_Hints | Autofill_Hints | Kullanıcı girişi gerektiren tüm uygulama özelliklerini kullanın. Uygulamanın, hesap kimlik bilgileri ve diğer hassas bilgiler gibi veriler için giriş alanlarını otomatik doldurmaya yönelik ipuçları sağladığını doğrulayın. |
| T-Credential_Manager | Credential_Manager | Uygulamanızda oturum açın. Uygulamanın, geçiş anahtarları, birleşik kimlik ve şifreler için birleşik destek sunan bir oturum açma deneyimi sağlamak amacıyla Android için Kimlik Bilgisi Yöneticisi'ni entegre ettiğini doğrulayın. |
| T-Biometric_Authentication | Biometric_Authentication | Kimlik doğrulama gerektiren tüm uygulama özelliklerini kullanın. Uygulamanın, finansal işlemleri veya önemli kullanıcı belgeleri gibi hassas bilgileri biyometrik kimlik doğrulama ile koruduğunu doğrulayın. |
Uygulama bileşenleri
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-Component_Export | Component_Export | Android manifest dosyasında tanımlanan tüm uygulama bileşenlerini inceleyerek uygun dışa aktarma durumunu belirleyin. Dışa aktarılan özellik, tüm bileşenler için açıkça ayarlanmalıdır. |
| T-Component_Permissions | Component_Permissions | Uygulamanızın gerektirdiği tüm izinleri manifest dosyasında, çalışma zamanında ve cihazdaki uygulama ayarlarında (Ayarlar > Uygulama Bilgileri) inceleyin. |
| T-Component_Protection | Component_Protection | Android manifest dosyasında tanımlanan tüm içerik sağlayıcıları inceleyin. Her sağlayıcının uygun bir protectionLevel değeri olduğundan emin olun. |
Ağ İletişimi
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-Network_Security_Traffic | Network_Security_Traffic | Düz metin trafiğini devre dışı bırakan bir ağ güvenliği yapılandırması tanımlayın ve uygulamayı test edin. |
| T-Network_Security_Configuration | Network_Security_Configuration | Uygulamanın ağ güvenliği yapılandırmasını inceleyin. Yapılandırmadaki lint kontrollerinin başarısız olmadığından emin olun. |
| T-Security_Provider_Initialization | Security_Provider_Initialization | Güvenlik sağlayıcının, Google Play Hizmetleri için uygulama başlangıcında başlatıldığını doğrulayın. |
Web Görünümleri
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-WebView_Asset_Loader | WebView_Asset_Loader | Uygulamanın ağ güvenliği yapılandırmasını inceleyin. Yapılandırmadaki lint kontrollerinin başarısız olmadığından emin olun. |
| T-WebView_JavaScript | WebView_JavaScript | Her WebView için JavaScript gerektiren bir sayfaya gidin. |
| T-WebView_Navigation | WebView_Asset_Loader, WebView_JavaScript |
Her WebView'da, doğrudan uygulamanız tarafından yüklenmeyen sitelere ve içeriklere gitmeyi deneyin. |
Yürütme
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-App_Bundles | App_Bundles | Uygulamanın Android App Bundle kullandığını ve uygulama APK'sının dışından dinamik olarak kod yüklemediğini doğrulayın. |
Kriptografi
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-Cryptographic_Algorithms | Cryptographic_Algorithms | Uygulamanın, platform tarafından sağlanan güçlü kriptografik algoritmalar ve rastgele sayı oluşturucu kullandığını doğrulayın. Ayrıca uygulamanın özel algoritmalar uygulamadığını da doğrulayın. |
Google Play
Uygulamanızın Google Play'e hazır olduğunu doğrulayın.
Politikalar
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-Play_Content_Policies | Play_Content_Policies, Play_Content_Rating, Play_User_Reviews |
Geliştirici profilinizi, uygulama açıklamanızı, ekran görüntülerinizi, özellik grafiğinizi, içerik derecelendirmenizi ve kullanıcı geri bildirimlerinizi incelemek için Google Play Console'da oturum açın. |
Uygulama ayrıntıları sayfası
| Kimlik | Özellik | Açıklama |
|---|---|---|
| T-Play_Feature_Graphic | Play_Feature_Graphic | Özellik grafiğinizi ve ekran görüntülerinizi indirip hedeflediğiniz cihazların ve form faktörlerinin ekran boyutlarına uyacak şekilde küçültün. |
| T-Play_Graphic_Assets | Play_Feature_Graphic, Play_Device_References, Play_Misleading_Content |
Uygulamada veya genişletme dosyası indirme işleminde paketlenen tüm grafik öğeleri, medyaları, metinleri, kod kitaplıklarını ve diğer içerikleri inceleyin. |
Arşivle
Temel uygulama kalitesi yönergelerinin önceki sürümleri: