Milyarlarca kullanıcı için cihaz kapasitesi

Yeni kullanıcılara ulaşmak, artan çeşitli Android platform sürümlerini ve cihaz özelliklerini desteklemek anlamına gelir. Kullanıcı deneyimini iyileştirmek için genel RAM yapılandırmaları, ekran boyutları ve çözünürlükleri için optimizasyon yapın.

Birden fazla ekran boyutunu destekleme

Uygulamanız, çeşitli boyut ve çözünürlüklerde ekranları destekliyorsa milyarlarca kullanıcıya daha iyi bir kullanıcı deneyimi sunabilir. Bu bölümde, bunu yapabileceğiniz birkaç yol açıklanmaktadır.

Yoğunluktan bağımsız pikseller (dp) kullanma

  • Düzen boyutlarının piksellerle tanımlanması, farklı ekranların farklı piksel yoğunluklarına sahip olması nedeniyle iyi sonuç vermez. Bu nedenle, aynı piksel sayısı farklı cihazlarda farklı fiziksel boyutlara karşılık gelebilir.
  • Android bu sorunu gidermek için, pikselin inç başına 160 nokta (mdpi yoğunluğu) fiziksel boyutuna karşılık gelen yoğunluktan bağımsız pikseli (dp) destekler.
  • Düzenlerin dp ile tanımlanması, kullanıcı arayüzünüzün fiziksel boyutunun cihazdan bağımsız olarak tutarlı olmasını sağlar. Yoğunluktan bağımsız pikselleri kullanmayla ilgili en iyi uygulamalar için Birden Fazla Ekranı Destekleme konulu Android kılavuzunu ziyaret edin.

Metin ve grafikleri ldpi ve mdpi ekran yoğunluklarında test etme

  • Özellikle düşük maliyetli cihazlarda, yaygın yoğunluklar olduğundan metin ve grafiklerinizin düşük ve orta yoğunluklu (ldpi ve mdpi) ekranlarda iyi çalıştığından emin olmak için test yapın. İnce ayrıntıların görünmediği düşük yoğunluklu ekranlarda net anlaşılamayan metinlere dikkat edin.
  • Düşük yoğunluklu ekranlara sahip cihazların donanım özellikleri genellikle daha düşüktür. Uygulamanızın bu cihazlarda iyi performans göstermesini sağlamak için animasyonlar ve geçişler gibi yoğun grafik işleme yüklerini azaltmayı veya ortadan kaldırmayı deneyin.
  • Farklı yoğunlukları destekleme hakkında daha fazla bilgi edinmek için Farklı Yoğunlukları Destekleme konulu Android eğitimine bakın.

Küçük ve orta ekran boyutlarında düzenleri test edin

  • Daha küçük ekranlarda test ederek düzenlerinizin ölçeğinin azaldığını doğrulayın. Ekran boyutları küçüldükçe, görünür kullanıcı arayüzü öğeleri için sınırlı alan olduğundan, görünür kullanıcı arayüzü öğeleri konusunda çok seçici olun.
  • Materyal Tasarım yönergelerinde, düzenlerinizin ekran yoğunluklarında ölçeklendirilebilmesi için metrikler ve ana hatlar açıklanmaktadır.
  • Farklı ekran boyutlarını destekleme hakkında daha fazla bilgi için Farklı Ekran Boyutlarını Destekleme ile ilgili Android eğitimine bakın.

Geriye dönük uyumluluk sağlama

Kullanıcılarınızın tümü, Android platformunun en yeni ve en iyi sürümüyle desteklenen cihazları kullanmıyor olabilir. Geriye dönük uyumluluğu iyileştirip uygulamanızın mümkün olduğunca fazla kullanıcıya sunulmasına yardımcı olmak için uygulayabileceğiniz bazı yöntemleri aşağıda bulabilirsiniz.

targetSdkVersion ve minSdkVersion ayarlarını uygun şekilde yapın

  • Uygulamalar, çok çeşitli cihazlarda en güncel davranışı sunduklarından emin olmak için Android'in en yeni sürümünü derlemeli ve hedeflemelidir. Bu durum, eski sürümler için geriye dönük uyumluluk sağlamaya devam eder. Aşağıda, API düzeylerini uygun şekilde hedeflemeyle ilgili en iyi uygulamalar verilmiştir:
    • targetSdkVersion, Android'in en son sürümü olmalıdır. En son sürümü hedeflemek, uygulamanızın Android'in yeni sürümlerini çalıştırırken daha yeni çalışma zamanı davranışlarını devralmasını sağlar. targetSdkVersion güncellerken uygulamanızı daha yeni Android sürümlerinde test ettiğinizden emin olun. Bu durum, uygulama davranışını etkileyebilir.
    • minSdkVersion Desteklenen minimum Android sürümünü belirler. minSdkVersion politikasının ayarlanması, Android derleme araçlarının, platformun eski sürümlerinde bulunmayan yeni API'lerin yanlış kullanıldığını bildirmesine de neden olur. Böylece, geriye dönük uyumluluğu yanlışlıkla bozmaya karşı korunursunuz.
  • Hedef kullanıcılarınıza dayalı olarak hangi Android sürümlerinin hedefleneceğini ölçmek için Android kontrol panellerine, uygulamanıza ait Google Play Geliştirici Konsolu'na ve hedef pazarlarınızdaki sektör araştırmalarına başvurun.

Android Destek kitaplıklarını kullanma

  • Android Destek Kitaplığı'nı kullanarak uygulamanızın tüm işletim sistemi sürümlerinde tutarlı bir deneyim sunduğundan emin olun. Bu kitaplık, Android çerçevesi API'lerinin geriye dönük uyumlu sürümlerinin yanı sıra yalnızca AppCompatActivity gibi kitaplık API'leri ve Materyal Tasarım Destek Kitaplığı aracılığıyla kullanılabilen özellikleri de sağlar.
  • Öne çıkan özelliklerden bazıları şunlardır:
  • Kullanılabilir destek kitaplıkları hakkında daha fazla bilgi için Android Geliştiricisi sitesinin Destek Kitaplıkları Özellikleri bölümüne bakın.

Google Play Hizmetleri'ni kullanma

  • Google Play Hizmetleri, Android platform sürümünden bağımsız olarak en iyi Google API'lerini sunar. Android cihazlarda en kolay Google deneyimini sunmak için Google Play Hizmetleri'nin özelliklerini kullanabilirsiniz.
  • Google Play Hizmetleri, Android'in eski sürümleri için Android 5.0'ın JobScheduler API'sinin çoğunu sağlayan GcmNetworkManager gibi yararlı API'ler de içerir.
  • Google Play Hizmetleri'nde yapılan güncellemeler Google Play Store tarafından otomatik olarak dağıtılır ve istemci kitaplığının yeni sürümleri Android SDK Yöneticisi üzerinden sunulur.

Belleği verimli bir şekilde kullanın

Memory, kullanıcı deneyiminin isimsiz bir kahramanı. İyi bellek yönetimi, uygulamanızı daha kararlı ve daha performanslı hale getirebilir. Bazı durumlarda, uygulamanızı kullanılabilir hale getiren tek şey etkili kullanımı olabilir. Uygulamanızın belleği akıllıca kullanmasına yardımcı olacak bazı yöntemleri burada bulabilirsiniz.

Düşük maliyetli cihazlarda bellek ayak izini azaltın

  • Farklı RAM yapılandırmalarına sahip cihazlar arasında uyumluluğu sağlamak için bellek ayak izinizi dinamik olarak ayarlayın.
  • isLowRamDevice() ve getMemoryClass() gibi yöntemler, çalışma zamanında bellek kısıtlamalarının belirlenmesine yardımcı olur. Bu bilgilere dayanarak bellek kullanımınızın ölçeğini azaltabilirsiniz. Örneğin, düşük belleğe sahip cihazlarda daha düşük çözünürlüklü resimler kullanabilirsiniz.
  • Uygulamanızın belleğini yönetme hakkında daha fazla bilgi için Uygulamanızın Belleğini Yönetme hakkındaki Android eğitimine bakın.

Uzun süren işlemlerden kaçının

  • Uzun süren işlemler bellekte yerleşik olarak kalır ve cihazı yavaşlatabilir. Çoğu durumda uygulamanız belirli bir etkinlik için uyanır, verileri işler ve kapanır. Arka plan hizmetlerinin uzun süre çalışmasını önlemek ve kullanıcının cihazındaki bellek baskısını azaltmak için Firebase Cloud Messaging (FCM) ve GcmNetworkManager kullanmalısınız.

Karşılaştırma belleği kullanımı

Android Studio, bellek karşılaştırma ve profil oluşturma araçları sağlayarak çalışma zamanında bellek kullanımını ölçmenizi sağlar. Uygulamanızın bellek ayak izini karşılaştırmak, uygulamanın farklı sürümlerindeki bellek kullanımını izleyebilmenizi sağlar. Bu, bellek ayak izideki istenmeyen artışları yakalamanıza yardımcı olabilir. Aşağıdakileri yapmak için Bellek Profil Aracı aracını kullanın:

  • İstenmeyen çöp toplama (GC) etkinlik kalıplarının performans sorunlarına neden olup olmadığını öğrenin.
  • Beklenmedik veya gereksiz şekilde ayrılan ya da kalan nesne türlerini belirleyin.
  • Sorunun kodunuzun neresinde olabileceğini belirleyin.

Bellek kullanımını karşılaştırma hakkında daha fazla bilgi için Bellek Profil Aracı ile Yığın ve Ayırmaları Görüntüleme bölümüne bakın.

Android (Go sürümü) çalıştıran cihazlar için optimize edin

Android (Go sürümü), Android Oreo'dan (Go sürümü) başlayarak 1 GB'tan az RAM'e sahip giriş seviyesi cihazlar için optimize edilmiş bir deneyimdir. Uygulamanızın Android (Go sürümü) cihazlarda sorunsuz bir şekilde çalıştığından emin olmak için aşağıdaki yönergeleri dikkate almalısınız:

  • targetSdkVersion, Android'in en son sürümü olmalıdır. Android (Go sürümü) cihazlar yalnızca Android Oreo (API 27 veya sonraki sürümleri) çalıştırır.
  • Uygulama, 1 GB RAM'den az RAM'e sahip cihazlarda sorunsuz çalışmalıdır. Yukarıdaki Belleği verimli kullanma bölümünde listelenen bellek optimizasyonlarını göz önünde bulundurun. Ayrıca, yavaş oluşturma ve donmuş kareler gibi kötü davranışları tanımlayıp düzeltmek için Android vitals'ı kullanın.
  • Cihazlarda Pencere içinde pencere (PIP) devre dışı olabilir. Uygulamanız PIP kullanmadan önce hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE) numaralı telefonu arayarak kullanılabilir olup olmadığını kontrol edin.
  • Cihaz üzerindeki uygulama boyutu 40 MB'tan küçük olmalıdır.
  • Uygulamanın RAM kullanımının Orantılı Küme Boyutu (PSS) 90 MB'ı aşmamalıdır. Oyunlar için, oyunun RAM kullanımının PSS'si 150 MB'ı aşmamalıdır. PSS hakkında daha fazla bilgi edinmek için RAM kullanımınızı İnceleme kılavuzunu inceleyin.
  • Uygulamanın başlatılma süresi minimum düzeyde ve 5 saniyeden az olmalıdır.
  • RAM'i düşük olan Android Go cihazlarda SYSTEM_ALERT_WINDOW (uygulamaların diğer uygulamaların üzerine pencere çizmesine izin verir) devre dışı bırakılabilir. Diğer uygulamaların üzerinde görüntülemeden önce, Settings.canDrawOverlays() çağrısı yaparak uygulamanızın bu yetkilendirmeye sahip olup olmadığını kontrol edin. Uygulamanız izni alamıyorsa, kullanıcının uygulamanızı kullanmaya devam edebilmesi için muhtemelen SYSTEM_ALERT_WINDOW iznini gerektiren özelliği devre dışı bırakarak uygulamanızın düzeyini yavaş yavaş düşürün.

Çoğu geliştiricinin, mevcut uygulamalarını optimize etmelerini öneririz. Bu uygulama tüm Android (Go sürümü) cihazlarda kullanılabilir. Uygulamanızın daha hızlı ve daha hafif çalışması tüm kitlenize fayda sağlayacaktır. Android (Go sürümü) cihazlar için belirli bir APK'yı dağıtmak amacıyla Play Console'da Birden fazla APK özelliğini kullanabilirsiniz, ancak bunu yalnızca deneyimden ödün vermeden yapmalısınız (ör. özellikleri kaldırmaktan kaçınmalısınız). Android (Go sürümü) cihazları hedefleyen APK'nın <uses-feature android:name="android.hardware.ram.low" android:required="true"> beyan etmesi, en az API Düzeyi 26'yı hedeflemesi ve Go dışı sürüm APK'dan daha yüksek bir sürüm koduna sahip olması gerekir.

Ek kaynaklar

Çeşitli cihazları destekleme hakkında daha fazla bilgi edinmek için aşağıdaki kaynağı inceleyin:

Blog yayınları