Cihaz uyumluluğuna genel bakış

Android; telefon, tablet ve televizyon gibi çeşitli cihazlarda çalışacak şekilde tasarlanmıştır. Çeşitli cihazların kullanımı, daha yüksek bir kitle belirleyebilirsiniz. Uygulamanızın tüm cihazlarda başarılı olması için Özelliklere uyum sağlayan esnek bir kullanıcı arayüzü sunar. yapılandırmalarına yardımcı olur.

Android, cihaz uyumluluğuna yardımcı olmak için statik dosyalarda yapılandırmaya özel uygulama kaynakları (ör. farklı ekran boyutları için farklı XML düzenleri) sağlayabileceğiniz dinamik bir uygulama çerçevesi sunar. Ardından Android, mevcut cihaz yapılandırmasına göre uygun kaynakları yükler. Uygulama tasarımınıza ve ek uygulama kaynaklarınıza dikkat ederek çeşitli cihazlarda kullanıcı deneyimini optimize eden tek bir uygulama paketi (APK) yayınlayabilirsiniz.

Ancak gerekirse uygulamanızın özellik gereksinimlerini belirtebilir ve Hangi tür cihazların uygulamanızı Google Play Store'dan yükleyebileceğini kontrol edebilirsiniz. Bu dokümanda, verilerinize erişimi olan cihazları nasıl kontrol edebileceğiniz açıklanmaktadır doğru kitleye ulaşmak için uygulamalarınızı nasıl hazırlayacağınızı öğreneceksiniz.

"Uyumluluk" ne anlama gelir?

Android geliştirmeyle ilgili olarak iki tür uyumluluk vardır: cihaz uyumluluğu ve uygulama uyumluluğu.

Android açık kaynak bir proje olduğundan tüm donanım üreticileri Android işletim sistemini çalıştıran bir cihaz tasarlayalım. Ancak cihaz "Android uyumlu" yalnızca Android yürütme ortamı. Android yürütme ortamının tam ayrıntıları Android uyumluluk programı tarafından tanımlanır. Her cihaz Uyumluluk Test Paketi'ni geçmelidir (CTS) öğelerinin uyumlu olarak kabul edilmesi için

Uygulama geliştirici olarak, cihazlarınızın doğru yüklü olup olmadığı konusunda endişelenmenize gerek yoktur. Android uyumlu, çünkü yalnızca Android uyumlu cihazlar şunları içerir: Google Play Store'a gidin. Dolayısıyla, uygulamanızı Google Play Store'dan yükleyen kullanıcılar Android uyumlu bir cihaz kullanıyor demektir.

Ancak, uygulamanızın her bir yazılımla uyumlu olup olmadığını göz önünde bulundurmanız gerekir yardımcı olabilir. Çünkü Android birçok farklı cihazda çalışır. bazı özellikler tüm cihazlarda kullanılamaz. Örneğin, bazı cihazlar pusula sensörü içermeyebilir. Uygulamanızın temel işlevi için pusula sensörü gerekiyorsa, uygulamanız yalnızca pek çok bilgi edindiniz.

Uygulamanızın cihazlarda kullanılabilirliğini kontrol etme

Android, uygulamanızın platform aracılığıyla yararlanabileceği çeşitli özellikleri destekler API'ler. Pusula sensörü gibi bazı özellikler donanım tabanlıdır; bazıları Uygulama widget'ları gibi yazılım tabanlı olma; bazıları da platform sürümüne bağlıdır. Her cihaz her özelliği desteklemediğinden uygulamanızın özelliklerini kontrol etmeniz gerekebilir. uygulamanızın gerektirdiği özelliklere göre cihazlarda kullanılabilir.

Uygulamanız için mümkün olan en büyük kullanıcı tabanına ulaşmak amacıyla tek bir APK veya AAB kullanarak mümkün olduğunca çok sayıda cihaz yapılandırmasını destekleyin. Çoğu durumda bu işlemi çalışma zamanında isteğe bağlı özellikleri devre dışı bırakarak ve uygulamayı sağlama farklı yapılandırmalar için alternatifler içeren düzenler. Gerekirse uygulamanızın Google Play Store üzerinden belirli cihazlarda kullanılmasını aşağıdaki cihaz özelliklerine göre kısıtlayabilirsiniz:

Cihaz özellikleri

Android, uygulamanızın kullanılabilirliğini cihaz özelliklerine göre yönetmek için tüm cihazlarda kullanılamayabilecek donanım veya yazılım özellikleri için özellik kimlikleri tanımlar. Örneğin, pusula sensörünün özellik kimliği: FEATURE_SENSOR_COMPASS Uygulama widget'larının özellik kimliği ise FEATURE_APP_WIDGETS.

Gerekirse, özelliğini kullanarak beyan eden gerekli bir özelliği <uses-feature> öğesi kullanabilir, manifest dosyanız.

Örneğin, uygulamanız pusulası olmayan bir cihazda mantıklı gelmiyorsa için aşağıdaki kurallara göre pusula sensörünü bir gereklilik olarak manifest etiketi:

<manifest ... >
    <uses-feature android:name="android.hardware.sensor.compass"
                  android:required="true" />
    ...
</manifest>

Google Play Store, uygulamanızın her cihazla uyumlu olup olmadığını belirlemek için uygulamanızın gerektirdiği özellikleri her kullanıcının cihazında bulunan özelliklerle karşılaştırır. Cihazda kullandığınız tüm özellikler yoksa kullanıcı uygulamanızı yükleyemez.

Ancak uygulamanızın birincil işlevi bir cihaz özelliğini gerektirmiyorsa required özelliğini "false" olarak ayarlayın ve cihaz özelliğini çalışma zamanında kontrol edin. Uygulama özelliği mevcut cihazda kullanılamıyorsa ilgili uygulama özelliği. Örneğin, bir özelliğin kullanılabilir olup olmadığını sorgulamak için hasSystemFeature() işlevini şu şekilde çağırabilirsiniz:

KotlinJava
if (!packageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
    // This device doesn't have a compass. Turn off the compass feature.
    disableCompassFeature()
}
PackageManager pm = getPackageManager();
if (!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
    // This device doesn't have a compass. Turn off the compass feature.
    disableCompassFeature();
}

Uygulamanızın Google Play Store'da kullanılabilirliğini kontrol etmek için kullanabileceğiniz tüm filtreler hakkında bilgi edinmek üzere Google Play'de filtreler dokümanlarına bakın.

Platform sürümü

Farklı cihazlarda Android platformunun farklı sürümleri (ör. Android 12 veya Android 13) çalışabilir. Birbirini izleyen her platform sürümü genellikle API ekler. önceki sürümde mevcut değildir. Hangi API kümesinin her platform sürümü bir API düzeyi. Örneğin, Android 12 API düzeyi 31, Android 13'te ise API düzeyi 33'tür.

build.gradle dosyanızda minSdkVersion ve targetSdkVersion değerlerini belirtmeniz gerekir:

KotlinGroovy
android {
    defaultConfig {
        applicationId = "com.example.myapp"

        // Defines the minimum API level required to run the app.
        minSdkVersion(30)

        // Specifies the API level used to test the app.
        targetSdkVersion(33)
        ...
    }
}
android {
    defaultConfig {
        applicationId 'com.example.myapp'

        // Defines the minimum API level required to run the app.
        minSdkVersion 30

        // Specifies the API level used to test the app.
        targetSdkVersion 33
        ...
    }
}

build.gradle dosyası hakkında daha fazla bilgi edinmek için şu makaleyi okuyun: Derlemenizi yapılandırın.

Android'in her yeni sürümü, önceki platform sürümlerindeki API'ler kullanılarak oluşturulan uygulamalarla uyumluluk sağlar. Böylece, uygulamanız, belgelenmiş Android API'lerini kullanırken Android'in gelecekteki sürümleriyle uyumlu olur.

Ancak uygulamanız daha yeni bir platform sürümüne eklenen API'leri kullanıyorsa ancak birincil işlevi için bunları gerektirmiyorsa çalışma zamanında API düzeyini kontrol edin ve API düzeyi çok düşük olduğunda ilgili özellikleri kontrollü olarak azaltın. Bu durumda, minSdkVersion değerini en düşük değere ayarlayın önce uygulamanızın birincil işlevi için mümkün olduğunca araştırın, ardından mevcut sistemin sürümünü, SDK_INT, kod adı sabitine Build.VERSION_CODES aşağıdaki örnekteki gibi, kontrol etmek istediğiniz API düzeyine karşılık gelen URL'yi seçin: örnek:

KotlinJava
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
    // Running on something older than API level 11, so disable
    // the drag and drop features that use ClipboardManager APIs.
    disableDragAndDrop()
}
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
    // Running on something older than API level 11, so disable
    // the drag and drop features that use ClipboardManager APIs.
    disableDragAndDrop();
}

Ekran yapılandırması

Android, telefon, tablet ve TV gibi çeşitli boyutlardaki cihazlarda çalışır. Android, cihazları ekran türüne göre kategorize etmek için her cihaz için iki özellik tanımlar: ekran boyutu (ekranının fiziksel boyutu) ve ekran yoğunluğu (ekrandaki piksellerin fiziksel yoğunluğu, DPI olarak bilinir). Android, farklı yapılandırmaları basitleştirmek için bu varyantları hedeflemeyi kolaylaştıran gruplar halinde genelleştirir:

  • Genelleştirilmiş dört boyut: küçük, normal, büyük ve çok büyük
  • Birkaç genelleştirilmiş yoğunluk: mdpi (orta), hdpi (yüksek), xhdpi (çok yüksek), xxhdpi (çok çok yüksek) ve diğerleri

Sistem, her ekran için gerektiğinde kullanıcı arayüzü düzeninizde ve resim kaynaklarınızda ayarlamalar yaptığından, uygulamanız varsayılan olarak tüm ekran boyutları ve yoğunluklarıyla uyumludur. Yaygın ekran yoğunlukları için optimize edilmiş bitmap resimler sağlayın.

Mümkün olduğunca esnek düzenleri kullanarak kullanıcı deneyimini optimize edin. Dikey ve yatay gibi büyük yapılandırma değişikliklerine pencere boyutları gibi düşünülebilir, büyük veya küçük pencere boyutları gibi yapılandırmada daha küçük değişikliklere uygulanabilen düzenlerdir. Bu sayede tablet, telefon ve katlanabilir cihaz gibi form faktörlerinde kullanıcı deneyimi iyileşir. Google Ayrıca, çoklu pencere modunda pencerelerin boyutu değiştiğinde de işe yarar.

Farklı kaynaklar için alternatif kaynakların nasıl oluşturulacağıyla ilgili ve gerektiğinde uygulamanızı belirli ekran boyutlarıyla kısıtlama, şunu okuyun: ekran uyumluluğu genel bakış büyük ekran uygulama kalite yönergelerine uyun.

Uygulamanızın kullanılabilirliğini ticari nedenlerle kontrol etme

Ayrıca, uygulamanızın kullanılabilirliğini cihaza göre kısıtlamaya gibi özelliklerden yararlanmak için uygulamanızın işletmeler için kullanılabilirliğini kısıtlamanız yasal gerekçelerle değiştirebilirsiniz. Bu tür durumlar için Google Play Store, Play Console'da uygulamanızın kullanıcı yerel dili veya kablosuz operatör gibi teknik olmayan nedenlerle kullanılabilirliğini kontrol etmenizi sağlayan filtreleme seçenekleri sunar.

Teknik uyumluluk (ör. gerekli donanım bileşenleri) için filtreleme her zaman APK veya AAB dosyanızdaki bilgilere dayanır. Ancak coğrafi yerel ayar gibi teknik olmayan nedenlerle filtreleme her zaman Google Play Console'da yapılır.

Ek kaynaklar:

Uygulama kaynaklarına genel bakış
Android uygulamalarının ayrı uygulamaları gösterecek şekilde nasıl yapılandırıldığı hakkında bilgi uygulama kodundaki kaynakları ve bu kaynakları nasıl sağlayabileceğinizi kaynaklara ekleyebilirsiniz.
Google Play'deki filtreler
Google Play Store'un uygulamanızın farklı cihazlara yüklenmesini engelleyebileceği farklı yöntemler hakkında bilgi.
Android'de izinler
Android, bir izin sistemi olan belirli API'lere uygulama erişimini nasıl kısıtlar? uygulamanızın bu API'leri kullanması için kullanıcıdan izin alınmasını gerektirir.