HMI'ya genel bakış

Android Automotive, Android Açık Kaynak Projesi (AOSP) ile sağlanan bir araç içi bilgi-eğlence platformu çözümüdür. Bu konudaki makaleler, Android Automotive System kullanıcı arayüzü tarafından sağlanan temel kavramları ve bileşenleri ve OEM'ler, üçüncü taraf geliştiriciler ve son kullanıcılar için etkili bir İnsan Makine Arayüzü (HMI) sistemi oluşturmak için gereken temel uygulamaları tanıtmaktadır.

  • AOSP Ana Bilgisayar Entegrasyon Kılavuzu . Uygulama Ana Bilgisayarı, 3P araba uygulamalarının kendi adına OEM tarzı kullanıcı arayüzü (UI) bileşenlerini oluşturmasına olanak tanır.
  • Araç Ayarları Yapısı . Araç Ayarları, araç merkezli bir görsel kullanıcı arayüzü, sürücünün dikkatini dağıtacak temel optimizasyonlar ve OEM'ler için ek kişiselleştirme giriş noktaları sağlar.
  • Araç Kullanıcı Arayüzü Kitaplığı Entegrasyon Kılavuzu . Araç Kullanıcı Arayüzü Kitaplığı, araçta bulunan tüm uygulamaların tutarlılık ve kişiselleştirme sağlamasına olanak tanıyan bir kullanıcı arayüzü geliştirme çerçevesi sağlar.
  • Durum Çubuğu Sistem Simgelerini Özelleştirin . Durum çubuğu, önemli bilgileri kullanıcılara kalıcı olarak görüntülemek için kullanılan Android Sistem Kullanıcı Arayüzünün bir bileşenidir. Durum çubuğu sistem simgelerini nasıl özelleştireceğinizi öğrenin.
  • Dikkat Bildirimleri . Dikkat Bildirimlerini nasıl özelleştireceğinizi öğrenin.
  • Çevirici . Bluetooth araması, kişilere göz atma ve çağrı yönetimi için dikkat dağıtıcı unsurlar açısından optimize edilmiş (DO) bir deneyim uygulamak üzere bu Android sistem uygulamasını kullanın.
  • Medya . Geliştiriciler yalnızca birkaç ayar ve bir hizmetle mevcut medya uygulamalarını genişletebilir. Uygulamaların Automotive Media şablonuna uyması gerekirken geliştiriciler markalı bir deneyim oluşturmak için şablon renklerini, yazı tiplerini, simgeleri ve daha fazlasını özelleştirebilir.
  • Bildirimler . Bildirimlerin görünümünü ve yapılandırmalarını nasıl değiştireceğinizi öğrenin.

Terminoloji

Bu terimler HMI ve ilgili makalelerde kullanılmaktadır:

Terim Tanım
Temel uygulamalar Ayarlar, Radyo, HVAC, Medya, Çevirici ve Klavye dahil olmak üzere sistem işlevselliği açısından kritik öneme sahip temel uygulamalar kümesi.
Uyumluluk Tanımı Belgesi (CDD) Cihazların Android'in en son sürümüyle uyumlu olması için karşılanması gereken gereksinimleri sıralar.
Uyumluluk Test Paketi (CTS) Uyumluluk Test Paketi İndirmeleri sayfasından indirilebilen ücretsiz, ticari sınıf test paketi.
Özelleştirme Bir OEM'in gereksinimlerini karşılamak için bir AOSP uygulamasını değiştirme uygulaması. Tipik olarak bu, CDD, CTS ve ilgili tüm Kullanıcı Deneyimi yönergelerine uygunluğun sağlanmasının yanı sıra kozmetik değişiklikler uygulamak için kaynak katmanlarının kullanımını içerir.
Kahraman uygulamalar İşlevsellik, yükseltilebilirlik, üçüncü taraf geliştirici ekosistemi ve son kullanıcılar da dahil olmak üzere Android'in tüm yönleri için kritik öneme sahip bir dizi önemli uygulama. Hero uygulamaları arasında Bildirimler, Ayarlar, Medya ve İletişim Merkezi/Çevirici bulunur. İlgili AOSP uygulamaları üretim kalitesinde olmalıdır.
Kaynak katmanları Kullanıcı arayüzünün oluşturulmasını etkilemek için, renkleri değiştirmek, boyutları değiştirmek, çizimi etkinleştirmek ve düzen kaynaklarını derleme zamanında (en yaygın) veya çalışma zamanında (Çalışma Zamanı Kaynak Kaplamaları (RRO)) uygulamak için bu mekanizmayı kullanın.
Sistem kullanıcı arayüzü Gezinme çubuğu, durum çubuğu, kilit ekranı ve ses düzeyi iletişim kutusu gibi sisteme ait olan bir uygulamanın dışındaki kullanıcı arayüzü.
Tema Temayı devralan bileşenlerin ve uygulamaların görünüşünü ve hissini belirlemek için kullanılan renk ve stillerden oluşan bir koleksiyon.
Kullanıcı Deneyimi (UX) Kullanıcı Arayüzü (UI) tasarımı ve kullanılabilirliği alanı.

Özelleştirme

Sistem Kullanıcı Arayüzü ve diğer çekirdek sistem uygulamalarının AOSP uygulaması, HMI geliştirme sürecini başlatmak için güçlü bir temel görevi görür. Bir OEM'in marka, iş ve yasal gerekliliklerini karşılamak için AOSP uygulamasını değiştirme uygulamasına (öncelikle kaynak katmanlarının kullanımı yoluyla) özelleştirme adı verilir.

Sistemin tamamı esnek olacak şekilde tasarlanıp üretilirken, farklı bileşenlerin farklı derecelerde özelleştirilmesi bekleniyor:

  • Sistem kullanıcı arayüzü. OEM, AOSP uygulamasını CDD, CTS ve diğer geçerli UX yönergelerinin sağladığı sınırlar dahilinde özelleştirebilir veya değiştirebilir.

  • Kahraman olmayan sistem uygulamaları ( referans olarak da bilinir) . OEM'ler AOSP uygulamasını özelleştirebilir veya değiştirebilir.

  • Kahraman uygulamalar . Her uygulama bir dizi ayrıntılı özelleştirme yönergesiyle birlikte gelir. OEM'lerin AOSP uygulamasını kullanmaları ve daha sonra bu yönergelerin sağladığı sınırlar dahilinde özelleştirmeleri şiddetle tavsiye edilir.

Yoğunluk konfigürasyonu

Kullanıcı arayüzü öğelerinin fiziksel görüntü yapılandırması göz önüne alındığında düzgün bir şekilde oluşturulduğundan emin olmak için yoğunluk özelliğinin, derleme dosyasındaki şu giriş gibi, fiziksel yoğunluğa en yakın eşleşen pakete ( Görüntüleme Metrikleri ) ayarlanması gerekir:

PRODUCT_PROPERTY_OVERRIDES := \
        ro.sf.lcd_density=160

UX kısıtlamaları motoru

CarUxRestrictionsManager, uygulamaların kullanıcı deneyimini uygun şekilde değiştirmek amacıyla sürüş durumuyla ilgili değişiklikleri dinlemesi için bir kanca sağlar. OEM'ler, sistemin davranışını etkilemek için packages/services/Car/service/res/xml/car_ux_restrictions_map.xml adresindeki yapılandırma dosyasını yer paylaşımına ekleyebilir.

Sistem teması

Renkler ve metin stilleri gibi sistem genelindeki varsayılan öğe kümesini belirleyen tema DeviceDefault'dur . OEM'lerin genel özelleştirme sürecini DeviceDefault temasını değiştirerek başlatmaları önerilir. Varsayılan olarak sistem kullanıcı arayüzü ve AOSP'deki tüm sistem uygulamaları bu temadan devralınır. OEM tarafından geliştirilen sistem uygulamalarının da DeviceDefault'u devralması teşvik edilir. Üçüncü taraflarca geliştirilen uygulamaların DeviceDefault'u devralması değil, bunun yerine androidx.car kitaplığında sağlanan Theme.Car'ı kullanması beklenir. Dosyalar şu şekilde bulunur:

  • Çekirdek . /frameworks/base/core/res/res/values/themes_device_defaults.xml
  • Renkler . /frameworks/base/core/res/res/values/colors_car.xml
  • Stiller /frameworks/base/core/res/res/values/styles_car.xml
  • Araba kaplaması.
    /packages/services/Car/car_product/overlay/.../values/themes_device_defaults.xml

OEM'lerin, satıcı dizinlerindeki car_product dizinine, car_product katmanını daha da genişleten paralel bir katman yapısına sahip olması bekleniyor.

Tema Bahçesi uygulaması

Bu uygulama, tüm tema niteliklerini tek bir yerde görselleştirerek DeviceDefault temasını özelleştirme sürecini kolaylaştırır. Ayrıca geliştiriciler, bu uygulamada belirli stillerin nasıl oluşturulduğunu diğer sistem uygulamalarıyla karşılaştırarak tema sorunlarının hatalarını hızlı bir şekilde ayıklayabilir. Bu uygulama şu adreste mevcuttur:

  /packages/services/Car/tests/ThemePlayground

Sistem kullanıcı arayüzü

Sistem kullanıcı arayüzü, başta /frameworks/base/packages/CarSystemUI olmak üzere /frameworks/base altındaki tüm kullanıcı arayüzlerini içerir. Buna Gezinme çubuğu, Durum çubuğu, kilit ekranı, ses düzeyi iletişim kutusu, tostlar, kullanıcı seçici ve izin iletişim kutuları dahildir. OEM'ler, her birinin CDD, CTS ve diğer geçerli UX yönergelerinin gereksinimlerine uygun olması koşuluyla, sistem kullanıcı arayüzü bileşenlerini kaynak katmanları ve temalar aracılığıyla kapsamlı bir şekilde özelleştirebilir.

Sistem uygulamaları

Android Automotive, genel sistem işlevselliği açısından kritik olan bir dizi temel sistem uygulamasını içerir. Bunlardan İletişim Merkezi, Medya, Bildirimler ve Ayarlar kahraman uygulamalar olarak kabul edilir.

  • İletişim Merkezi
  • HVAC
  • IME (klavye)
  • Başlatıcı (ana ekran)
  • Yerel Medya Oynatıcı
  • Medya
  • Haberci
  • Bildirimler
  • Radyo
  • Ayarlar

Ana ekran

Araç Başlatıcı olarak bilinen Ana ekran, HMI deneyiminin açılış sayfasıdır. AOSP uygulaması yalnızca referans olarak hizmet eder ve OEM'lerin uygulamayı, genellikle navigasyon, medya oynatma, iletişim ve diğer sistem durumlarını gerektiği gibi birleştiren kendi uygulamalarıyla değiştirmeleri beklenir. Genellikle Car Launcher uygulaması sistemde mevcut uygulamaları görüntüler. Son güncellemeler, paket değişiklikleri ve başsız (başlatıcı etkinliği olmayan) uygulamalar gibi olayların nasıl ele alınacağını öğrenmek için referans uygulamasına bakın.

Bildirimler

Bildirimler, Android işletim sisteminin ayrılmaz bir bileşenidir ve aynı yapılar (ön bildirim, bildirim listesi/merkezi, Bildirim API'leri, sıralama ve satır içi eylemler dahil) Android Automotive'e dahil edilmiştir. Ayrıntılar için elde taşınan Bildirimlere Genel Bakış bölümüne bakın. Otomotiv kullanım durumlarını optimize etmek için aşağıdaki değişiklikler yapılmıştır (el tipi bildirim yığınıyla karşılaştırıldığında):

  • Kullanıcılar tarafından görülebilen genel bildirim içeriğinde azalma. Devam eden medya oynatmanın, devam eden gezinmenin ve sistem uygulamalarının "önemsiz" (DÜŞÜK ve altının önemi) ön plan hizmet bildirimlerinin bildirim listesinden/merkezinden kaldırılması; bu bildirimlerin ya gereksiz hale getirildiği (örn. medya durumunu gösteren küme) anlayışıyla ) veya yararlı değildir.

  • Karmaşık bağlamsal kontrollerin kaldırılması (uzun basma ve kaydırma uzunluğuna dayalı kontroller gibi).

  • UX Kısıtlamaları motor yapılandırmasına saygı gösterilmesi.

    • Mesajlaşma bildirim içeriği önizlemesi, sürücü durumuna bağlı olarak gizlenebilir.
    • Tüm dizeler maksimum uzunlukta sınırlandırılmıştır.
  • Özellikle Android 9'daki otomobiller için yeni bildirim kategorilerinin eklenmesi, yalnızca android.uid.system olarak çalışan paket sistem uygulamaları için geçerlidir.

  • CATEGORY_CAR_EMERGENCY . Bildirim listesinin en üstünde yer alır. Rahatsız Etmeyin (DND) kontrollerini atlar.

  • CATEGORY_CAR_WARNING . Acil durumun altında ve diğerlerinin üzerinde derecelendirilmiştir (DND'yi atlar).
  • CATEGORY_CAR_INFORMATION . "Önem" ve güncelliğe göre diğer bildirimlerle birlikte sıralanır.

Bildirim API'lerinden kullanıcı arayüzüne kadar bildirim yığınının uçtan uca uygulanması, bir kahraman uygulama olarak kabul edilir. Tüm HU'larda tutarlı API birlikte çalışabilirliğini garanti etmek ve yükseltilebilirliği en üst düzeye çıkarmak için OEM'lerin AOSP uygulamasını almaları ve ardından bunu hafifçe özelleştirmeleri şiddetle tavsiye edilir.

Özelleştirme

Standart DeviceDefault teması ve kaynak katmanları geçerlidir. Çok sınırlı sayıda davranışsal özelleştirme düğmesi şu adreste mevcuttur:

packages/apps/Car/Notification/res/values/config.xml

Ayarlar

Ayarlar uygulaması ( Araba Ayarları ), kullanıcının Android işletim sistemi ve arabanın geri kalanının özelliklerini yapılandırmak için kullanabileceği düğmeleri ortaya çıkaran kahraman uygulamalardan biridir. Ayarlar uygulaması, işletim sistemindeki her büyük Android sürümüyle sıkı bir şekilde bağlantılı olan 200'den fazla özelliği ortaya çıkarır. Yükseltilebilirliği sağlamak ve parçalanmayı önlemek için, OEM'lerin AOSP uygulamasını alıp ardından özelleştirmeleri (uygulamayı çatallamak yerine) şiddetle tavsiye edilir.

Özelleştirme

Ayarlar uygulaması özelleştirmeyi dikkate alır ve özelleştirme için çeşitli yollar sunar.

  • Tema. Aşağıdakiler de dahil olmak üzere her Tercih nesnesi türünün nasıl oluşturulacağına ilişkin görsel özelleştirmeye olanak tanır:

    • Preference.DeviceDefault.CheckBoxPreference

    • Preference.DeviceDefault.DialogPreference.EditTextPreference

  • Hiyerarşi özelleştirmesi. Şunu etkinleştirmek için:

    • İsteğe bağlı bir kök parçasıyla başlatın, config_settings_hierarchy_root_fragment değerini Settings/res/values/config.xml başlıklı dosyaya yerleştirin.

    • Sıra, gruplandırma, metin ve simgeler gibi öğelerin özelleştirilmesi, yer paylaşımı Settings/res/xml/*.xml

  • Statik enjeksiyon. Bir kaplama projesi ayarlarken OEM'ler, ek Fragment ve Controller sınıflarını tanımlayıp hiyerarşiye ekleyerek özel ekranlar ekleyebilir.

  • Dinamik enjeksiyon . Ayrı bir uygulama ( apk ), ana Ayarlar uygulamasından bağlanması gereken bir Ayarlar ekranına ev sahipliği yapıyorsa, ayrı uygulama dinamik olarak eklenebilir. Daha fazla bilgi için bkz. Dinamik tercihler .

Medya

Media, MediaSession ve MediaBrowser API'lerini uygulayan medya uygulamaları adına ön uç kullanıcı deneyimi sağlayan bir kahraman uygulamasıdır. Medya uygulamaları, üçüncü taraf uygulamaların (Spotify ve Pandora gibi) yanı sıra Bluetooth (BT) akışı ve yerel medya gibi diğer medya kaynakları da olabilir.

Android Auto'da ( Projeksiyon ) yüzlerce medya uygulaması mevcuttur; bunların tümü, Otomatik için Ses Oynatımı Sağlama bölümünde açıklandığı gibi bu medya API'lerini uygular. Medya API'leri her büyük Android sürümüyle ve Androidx kitaplığının sürümleriyle birlikte gelişir. Tüm medya uygulamalarında ve Android'in gelecekteki sürümlerinde API'nin birlikte çalışabilirliğini garanti etmek için OEM'lerin AOSP uygulamasını alıp ardından özelleştirmeleri şiddetle tavsiye edilir.

Özelleştirme

DeviceDefault teması aracılığıyla standart tema, Medya için de geçerlidir. Ayrıca, özelleştirmenin UX yönergelerinin sınırları dahilinde olması koşuluyla, kaynak katmanlarıyla görünüm ve hissin daha fazla özelleştirilmesi mümkündür.

USB medyası ve medya kaynakları

Mümkün olduğu ölçüde, bu medya kaynaklarının MediaSession ve MediaBrowser API'lerinin uygulanması yoluyla Medya'ya bağlanması önemle tavsiye edilir (bu, tüm üçüncü taraf medya uygulamaları için geçerlidir). AOSP'deki LocalMediaPlayer uygulamasına bakın. Bu uygulama yerel medya dosyalarını ortaya çıkarır ve Medya'da kaynak olarak görüntülenir.