Araba ekranı uyumluluğu, telefon ve tablet uygulamalarının otomotiv cihazlarında iyi performans göstermesini sağlar.
Süper Chat ve Süper Etiketler
- DPI ölçeklendirme: Uygulama kullanıcı arayüzü öğelerini ekran DPI'sine göre ölçeklendirin.
- Uygulama oluşturma için güvenli alan: Uygulama içeriğini güvenli bir alanda tutun ve sistem kullanıcı arayüzü öğeleri tarafından gizlenmesini önleyin.
- Uygulama sınıflandırma mantığı: Araç ekranı uyumluluğu gerektiren uygulamaları belirleyin.
Uyumluluk özellikleri
Platform, otomotiv ekranlarında uygulama oluşturma ve ölçeklendirmeyi optimize etmek için çeşitli mekanizmalar sunar.
DPI ölçeklendirme
DPI ölçeklendirme özelliği, cihaz üreticilerinin Car Display Compat gerektiren bağımsız uygulamaların veya tüm uygulamaların yoğunluk DPI'sını ölçeklendirmesini sağlar.
Uygulamaların yoğunluk ölçeklendirmesini yapılandırmak için:
Yapılandırma dosyası ekleme
/product/etc/display_compat_config.xml:<?xml version="1.0" encoding="utf-8"?> <!-- Each scale factor can have the following attributes display (required) Specifies the displayId to which this scale factor will be applied. packageName (optional) Specifies the packageName to which the scale factor will be applied. If omitted, the scaling will apply to all packages. For example: <scale display="0" packageName="com.android.car.media.localmediaplayer">0.5</scale> This means that only package `com.android.car.media.localmediaplayer` on display `0` will be scaled. --> <config> <scale display="0">1.0</scale> </config>Car Display Compat gerektiren tüm uygulamalar için varsayılan ölçek değerini ayarlamak üzere ekran 0'ın varsayılan ölçeğini
<scale display="0">1.0</scale>olarak değiştirin. Değer, ters ölçek değeridir. Örneğin, Car Display Compat gerektiren uygulamaları 1, 5 kat ölçeklendirmek için ölçek değerini(1 / 1.5) = 0.67olarak ayarlayın:<config> <scale display="0">0.67</scale> </config>Belirli bir uygulama için ölçek değeri ayarlamak üzere yapılandırmaya yeni bir
scaleöğesi ekleyin. Bu örnekte, YouTube Automotive 1,43 kat ölçeklendirilir (örneğin,(1 / 1.43) = 0.7).<config> <scale display="0">0.67</scale> <scale display="0" packageName="com.google.android.apps.automotive.youtube">0.7</scale> </config>
/product/etc/display_compat_config.xml değerini değiştirdiğinizde sistem çalışıyorsa yeni yapılandırmanın geçerli olması için önbelleği temizlemeniz gerekir. Önbelleği temizlemek için bu makroyu kullanın:
SECURE_SETTING_KEY="android.software.car.display_compatibility:settings:secure"
USER_ID_LIST=$(adb shell cmd user list -v | grep 'id=' | cut -d'=' -f2 | cut -d',' -f1)
for USER_ID in $USER_ID_LIST; do
echo "Deleting Display Compat config for user: $USER_ID"
adb shell settings delete secure --user $USER_ID $SECURE_SETTING_KEY
sleep 1
echo
done
Yapılandırma dosyasını ve özellik bildirimini bir AAOS derlemesine ekleyin. Örneğin,
vendor/OEM_NAME/products/displaycompatiçine ekleyin:# File: vendor/OEM_NAME/products/displaycompat/Android.bp prebuilt_etc { name: "display_compat_config", filename: "display_compat_config.xml", src: "display_compat_config.xml", product_specific: true, }
Güvenli uygulama alanı
Telefon ve tablet uygulamaları genellikle Automotive'de bulunan büyük sistem çubukları için tasarlanmaz. Bu uygulamaların, sistem çubuklarının veya sistem yer paylaşımlarının altında içerik çizmesi kısıtlanmalıdır. Aksi takdirde, etkileşimli öğeleri son kullanıcının göremeyeceği bir alanda oluşturabilirler.
Güvenli uygulama alanı, ölçeklenebilir kullanıcı arayüzü SafeBounds kullanılarak uygulanır.
Uygulama sınıflandırma mantığı
Uygulama uyumluluğunu artıran ek işlevler oluşturmak için CarPackageManager.requiresDisplayCompat(..)'yı kullanabilirsiniz. Örneğin, bu işlevi kullanarak geri düğmesi veya ek kullanıcı arayüzü ekleyebilirsiniz.
Uygulama geliştiriciler, uygulamanın manifest dosyasına meta veri ekleyerek araba ekranı uyumluluğunu etkinleştirebilir:
<meta-data
android:name="android.software.car.display_compatibility"
android:value="true" />
Sistem, bir uygulamanın araba ekranı uyumluluğu özellikleri gerektirip gerektirmediğini aşağıdaki mantıkla değerlendirir (sırayla değerlendirilir):
- Manifest meta verileri
android.software.car.display_compatibility:android:value="true"ise → Uygulama uyumluluk gerektiriyorandroid:value="false"→ Uygulama uyumluluk gerektirmiyor- Meta veriler eksikse bir sonraki kontrole geçin.
- Kullanım alanı
android.hardware.type.automotive:- Özellik beyan edildiyse (
android:requiredtrueveyafalseolup olmadığına bakılmaksızın) → Uygulama uyumluluk gerektirmiyor - Özellik eksikse bir sonraki kontrole geçin.
- Özellik beyan edildiyse (
- Uygulama etkinlikleri:
- Uygulamada etkinlik yoksa (ör. RRO'lar, başsız uygulamalar veya hizmetler) → Uygulama uyumluluk gerektirmiyor
- Uygulamada etkinlikler varsa bir sonraki kontrole geçin.
- Uygulama bilgileri:
- Uygulama ayrıcalıklıysa → Uygulama uyumluluk gerektirmez
- Uygulama bir sistem uygulamasıysa (
FLAG_SYSTEM) → Uygulama uyumluluk gerektirmiyor - Aksi takdirde bir sonraki kontrole geçin.
- İmza bilgileri:
- Uygulama platform imzalıysa (Android çerçevesiyle aynı imzayla imzalanmışsa) → Uygulama uyumluluk gerektirmez
- Aksi takdirde bir sonraki kontrole geçin.
- Yedek karar:
- Tüm kontroller devre dışı bırakılmadan geçerse → Uygulama uyumluluk gerektiriyor
CarDisplayCompatScaleProviderUpdatableImpl.requiresDisplayCompatNotCachedLocked sayfasına göz atın.
Cihaz desteği
Araba ekranı uyumluluğunu destekleyen cihazlar, özellik bildirimi kullanarak desteği bildirmelidir:
<feature name="android.software.car.display_compatibility" />