Sistem kullanıcı arayüzünü uygulayın

Android Automotive, araçlar için özel olarak geliştirilmiş yeni bir Sistem kullanıcı arayüzü sunar. Çoğu bileşen sistem arayüzü, çerçeve hizmetleriyle sıkı sıkıya bağlıdır. Sistem Kullanıcı Arayüzü, öğesi ekranda görüntülenir. Otomotiv Sistemi Kullanıcı Arayüzü ( CarSystemUI öğe paketi), Android System UI'nın (Sistem Kullanıcı Arayüzü paketinde) bir uzantısıdır. özel olarak yeni bir modele sahip.

Sistem Kullanıcı Arayüzü nedir?

Otomotiv Sistemi Kullanıcı Arayüzüne özgü bileşenler şunları içerir:

Bileşen Açıklama
Kilit ekranı kullanıcı arayüzü Kullanıcıların kimliğinin belirli bir kullanıcı hesabıyla doğrulanmasını sağlayan ekran.
Gezinme çubuğu Ekranın soluna, altına veya sağına yerleştirilebilen ve farklı uygulamalarda gezinme, bildirim panelini açma/kapatma ve diğer özellikler için façeta düğmeleri içerebilir araç kontrolleri (ör. ısıtma, havalandırma ve soğutma) sağlama. Bu, Android Sistem kullanıcı arayüzünden farklıdır geri, Ana Sayfa ve uygulama yığını düğmelerini sağlayan Google Cloud Connect API'leri entegre eder.
Durum çubuğu Ekran boyunca konumlandırılan ve gezinme çubuğu görevi gören sistem çubuğu. İlgili içeriği oluşturmak için kullanılan durum çubuğu, aşağıdakileri de destekleyen işlevler sağlar:
  • Bağlantı simgeleri. Bluetooth, kablosuz ağ ve hotspot/mobil bağlantı dahil.
  • Aşağı açılır bildirim paneli. Örneğin, ekranın üst kısmından aşağı doğru kaydırabilirsiniz.
  • Uyarı bildirimleri (HUN).
Sistem kullanıcı arayüzü Bir uygulamanın parçası olmayan, ekranda görüntülenen herhangi bir öğeyi ifade eder.
Kullanıcı Değiştirici Kullanıcı Arayüzü Kullanıcının farklı bir kullanıcı seçebileceği ekran.
Ses düzeyi kullanıcı arayüzü Sürücü, belirli bir cihazda ses düzeyini değiştirmek için fiziksel ses düğmeleri kullandığında görüntülenen iletişim kutusu olanak tanır.

Sistem Kullanıcı Arayüzü nasıl çalışır?

Sistem Kullanıcı Arayüzü, cihaz açıkken çalışan bir Android uygulamasıdır. İlgili içeriği oluşturmak için kullanılan "Uygulamanın her yönüyle SystemServer. Sistem kullanıcı arayüzünün kullanıcıların görebildiği en alakalı giriş noktaları aşağıda listelenmiştir. Android sistem kullanıcı arayüzünü Automotive'e özgü özellikler için özelleştirmek amacıyla bu bileşenleri kullanın.

  • config_statusBarComponent
  • config_systemUIFactoryComponent

CarSystemUI, System UI paketinin bir uzantısıdır. Yani, System UI paketindeki kaynaklar, CarSystemUI paketi tarafından kullanılabilir ve geçersiz kılınabilir.

Sistem kullanıcı arayüzünü özelleştirme

Yer Paylaşımları

Sistem kullanıcı arayüzünü özelleştirmek için Android kaynak kodunu değiştirebilirsiniz. gelecekteki Android güncellemelerini uygulamayı daha zor ve karmaşık hale getirir. Bunun yerine, kaynak dosyalarını, herhangi bir bağlantı olmadan değiştirmenize olanak tanıyan bir bindirme dizininin kullanımını destekler kaynak kodu değiştirme. Android derleme sisteminde bindirme sistemi, kontrollü bir şekilde uygulanmasını sağlar. Değiştirilen tüm dosyalar, dosyanın tamamı taşınmadan açık bir şekilde tanımlanır AOSP kaynak kodu ağacı.

Yer paylaşımlı dosyalar PRODUCT_PACKAGE_OVERLAYS dizinine yerleştirilmeli ve orijinal AOSP kök yapısıyla tam olarak aynı alt klasörlere sahiptir. Android için 10 veya daha yüksek bir değerse PRODUCT_PACKAGE_OVERLAYS, şu değere ayarlanır:

PRODUCT_PACKAGE_OVERLAYS := packages/services/Car/car_product/overlay

Automotive System UI, sistem kullanıcı arayüzü ve CarSystemUI paketlerindeki kaynakları kullanır. Diğer bir deyişle, her bir konumdan gelen kaynaklar, yer paylaşımlarıyla geçersiz kılınarak tasarımını ve tarzını konuşturun.

Bir dosyayı değiştirmek için, değiştirilmekte olan dosyanın dizin yapısını /overlay dizinini açın ve ardından, yedek öğesini bu dizin. Örneğin, şunu değiştirmek için:

frameworks/base/packages/CarSystemUI/res/layout/super_status_bar.xml

Şu konumdaki yeni super_status_bar.xml dosyasını ekleyin:

packages/services/Car/car_product/overlay/frameworks/base/packages/CarSystemUI/res/layout/

frameworks/base/packages/SystemUI/res/values/config.xml öğesini değiştirmek için, (CarSystemUI değil, Sistem kullanıcı arayüzünde), yeni config.xml dosyasını şuraya ekleyin:

packages/services/Car/car_product/overlay/frameworks/base/packages/SystemUI/res/layout/

veya

packages/services/Car/car_product/overlay/frameworks/base/packages/CarSystemUI/res/layout/

İki temel özelleştirme giriş noktasının açıklamaları aşağıda verilmiştir.

Otomotiv Sistemi kullanıcı arayüzünün solunda, altında ve sağında üç gezinme çubuğu olabilir. tıklayın. Her sistem çubuğunun görünürlüğü aşağıdaki yapılandırmalarla değiştirilir:

  • config_enableLeftSystemBar
  • config_enableBottomSystemBar
  • config_enableRightSystemBar

Her çubuğun durumu, ilgili düzen dosyaları:

  • car_left_system_bar.xml
  • car_left_system_bar_unprovisioned.xml
  • car_system_bar.xml (alttaki gezinme çubuğunun düzeni)
  • car_system_bar_unprovisioned.xml
  • car_right_system_bar.xml
  • car_right_system_bar_unprovisioned.xml

Bu düzenler, Bu, en üst düzeyde com.android.systemui.car.systembar.CarSystemBarView diğer gerekli görünümleri de ekleyin. Gezinme çubuklarının içindeki düğmeler, com.android.systemui.car.systembar.CarSystemBarButton

Bu görüntüleme sayıları CarSystemBar#createSystemBar, olduğundan daha yüksek cihazın temel hazırlığı doğru şekilde yapılmış olabilir.

Durum çubuğu

Durum çubuğunu, ek işlevlere sahip bir gezinme çubuğu olarak düşünün. Gezinmeden farklı çubuğunda bunu devre dışı bırakacak bir işaret yoktur. Durum çubuğunu şunlarla değiştirebilirsiniz:

  • car_top_navigation_bar.xml
  • car_top_navigation_bar_unprovisioned.xml

Bu düzenler com.android.systemui.statusbar.car.CarNavigationBarView içermelidir teşvik edebilirsiniz. Durum çubuğu, durum simgeleri içerir. Bir simgenin boyutunu değiştirmek için simge simgesini, belirli bir boyut belirtmek yerine ölçek faktörüyle eşit şekilde ayarlayın. Örneğin, /overlay/frameworks/base/packages/CarSystemUI/res/values/dimens.xml dosyasına iki kat artırmak için aşağıdaki boyutları kullanın:

<resources>
    <!-- The amount by which to scale up the status bar icons.-->
    <item name="status_bar_icon_scale_factor" format="float" type="dimen">2</item>
</resources>

Durum çubuğu, aşağıdakileri de içeren özel bir pencereleme katmanında yer alır: bildirimler paneli, kullanıcı değiştirici, uyarı bildirimleri (HUN) ve ve tuş koruyucu. Bunlara ilişkin çeşitli düzenler super_status_bar.xml

Sistem kullanıcı arayüzü kaynak kodu değişiklikleri

Bindirmeler, sistem kullanıcı arayüzü davranışını yeterince özelleştirmek için gereken esnekliği sağlamayabilir.

Uyarı. Android kaynak kodunda yapılan değişikliklerin güncellenmesi zor Android'in sonraki sürümlerinde kullanıma sunulacak. Otomotiv sistemi kullanıcı arayüzü kodunu genişletmenizi önemle tavsiye ederiz. tercih edebilirsiniz. Bu şekilde, temel Automotive System kullanıcı arayüzü kaynak kodu tüm özelleştirmeler bilinen API yüzeylerini inceleyin.

Sistem Arayüzünün çoğu özelliği şu iki giriş noktasıyla özelleştirilebilir:

  • config_statusBarComponent
  • config_systemUIFactoryComponent

Örneğin, com.android.systemui.statusbar.car.custom.CustomCarStatusBar, CarStatusBar uzatılır, config_statusBarComponent değerini nokta olarak güncelleyin ekleyebilirsiniz. Bu sınıfın genişletilmesi, ilgili sınıfa ait öğelerin çoğunun özelleştirilmesini sağlar. görebilirsiniz.

Benzer bir şekilde, CustomCarSystemUIFactory oluşturabilir ve bunu şuraya yerleştirebilirsiniz: config_systemUIFactoryComponent. VolumeUI ve kilit ekranı.

Kullanıcı değiştirmeyi ve kilit açmayı özelleştirin

Aşağıdaki materyalde, kullanıcı geçiş deneyiminin nasıl özelleştirileceği açıklanmaktadır.

Terim Açıklama
Keyguard Ön plan uygulamasıyla yanlışlıkla etkileşimi önlemek için tam ekran iletişim kutusu. Birden fazla kullanıcı ayarlandığında her kullanıcının gizliliğini korur.
İletişim kutusu yükleniyor Kullanıcılar arasında geçiş yapılırken yükleme ekranı gösteriliyor.
Kilit ekranı, zıplayan Bir kişinin PIN, desen veya şifre girmesini gerektiren ekran.
Kullanıcı Android kullanıcısı.
Kullanıcı seçici Bir cihaz başlatıldığında kullanıcı seçici ekranı görüntülenir.
Kullanıcı değiştirici QuickSettings'ten ekranlar arasında geçiş yaparken kullanıcı değiştirici gösteriliyor.

Kullanıcı değiştirmeyi özelleştirme

Tuş koruyucu ve yayıcı

Android Automotive OS'te kullanıcı seçici içeren Tuş Koruması ekranı yalnızca gösterilir. Kullanıcı kilit ekranındaki İptal düğmesini tıkladığında. Tuş koruyucu ekranı aşağıda gösteriliyor.

Tuş koruyucu ekranı

Şekil 1. Tuş koruyucu ekranı

Kullanıcı bir gizlilik türü seçtiğinde, geri sekmeli bir kilit ekranı görüntülenir. aşağıda gösterildiği gibi cihazın kilidini açın.

Kilit ekranı

Şekil 2. Kilit ekranı'nı tıklayın.

Kilit, gücü manuel olarak açacak veya kapatacak şekilde ayarlandığında aşağıdaki talimatı kullanın:

adb shell input keyevent 26

Kullanıcı seçici

Arabanın Sistem Kullanıcı Arayüzü durum çubuğuna entegre olan bir cihaz olduğunda kullanıcı seçici ekranı görüntülenir Haritalar yeniden başlatılır. Daha fazla bilgi edinmek için bkz. FullscreenUserSwitcher

Yükleme ekranı

Şekil 3. Kullanıcı seçici ekranı

Bu ekranın düzeni şununla özelleştirilebilir: car_fullscreen_user_switcher.xml

Yükleme ekranı

Giriş noktasından bağımsız olarak, kullanıcı her değiştirildiğinde yükleme ekranı görüntülenir. Örneğin, kullanıcı seçiciden veya Ayarlar ekranından yapabilirsiniz. Yükleme ekranı, sistem kullanıcı arayüzü ve erişim yetkisi verilen herkese açık sınıfla CarUserSwitchingDialog Örnek için yukarıdaki Şekil 3'e bakın.

Tema, Theme_DeviceDefault_Light_Dialog_Alert_UserSwitchingDialog

Android kullanıcısının ayarlarını yapmak için, ilk Kurulum Sihirbazı akışı, sürücünün bir kullanıcıyı ayarlamasına olanak tanır ekleyebilirsiniz. Sürücü, daha sonra Android kullanıcısını bir Google Hesabı ile ilişkilendirirse adı seçilir. Ancak sürücü bir ad belirtirse (örneğin, DriverB) ve daha sonra bu kullanıcı adını Google Hesabı ile, Maddy'nin adıyla ilişkilendirir. Başlangıçta atanan ad (DriverB), bu ad açıkça ayarlandığı için değiştirilmez. Sürücü adı yalnızca Ayarlar menüsünden değiştirebilir.

Düzen car_user_switching_dialog.xml. uygulamasında özelleştirilebilir

OEM'ler, NoActionBar.Fullscreen (Bu, araba referans kullanıcı arayüzü için güncellenmiş orijinal Sistem kullanıcı arayüzüdür.) Daha fazla bilgi için bkz. Özelleştirme.

OEM'ler, kullanıcılar arasında geçiş yapmak için kullanıcı arayüzü giriş noktaları sağlayabilir. Ancak sonuçlar bazen istenmeyen bir durumdur. Bu durumda:

  1. OEM, özel yükleme ekranını (veya iletişim kutusunu) oluşturup görüntüler.
    • Kullanıcı deneyimine özel olarak, OEM, kullanıcı aşağıdakileri yapmak için araçlar seçtiğinde özel yükleme ekranını kullanıcı geçişi tamamlandığında gizlenebilen anahtardır.
    • OEM, Google Ads'deki önceliği pencere tercihlerine göre değişebilir. Örneğin, daha yüksek öncelikli bir pencere türü. Öncelik Tuş Koruması'nın önceliği aşılamaz.
  2. OEM, config_customUserSwitchUi=true özelliğini temel çerçevede ayarlar config_customuserswitchui içinde açıklandığı gibi config.xml. Kullanıcı sonuç olarak çerçeve CarUserSwitchingDialog simgesini göstermez.

Kilit ekranını özelleştirme

Kilit ekranı, OEM tarafından özelleştirilebilen Sistem kullanıcı arayüzünün dahili bir parçasıdır. Akışı özelleştirmek için frameworks/base/packages/CarSystemUI/ ile başlayın.

İlk kullanıcı kurulumunu özelleştirme

Kurulum Sihirbazı, ilk kullanıcı kurulumunu gerçekleştirir. Bu da özelleştirilebilir. Şunları yapabilirsiniz: her bir UserManager API'leri gerekiyor. Bazı durumlarda bu işlem arka planda da uygulanır, böylece işlemini tekrarlamanız gerekir.