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ğeriniSettings/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.