Android Automotive, araçlar için özel olarak geliştirilmiş yeni bir Sistem Kullanıcı Arayüzü sağlar. Sistem Kullanıcı Arabiriminin çoğu bileşeni, çerçeve hizmetleriyle sıkı bir şekilde birleştirilmiştir. Sistem Kullanıcı Arayüzü , ekranda görüntülenen ve bir uygulamanın parçası olmayan herhangi bir öğeyi ifade eder. Otomotiv Sistemi Kullanıcı Arayüzü (CarSystemUI öğe paketinde), özellikle araçlar için özelleştirilmiş olan Android Sistem Kullanıcı Arayüzü'nün (SystemUI paketinde) bir uzantısıdır.
Sistem Kullanıcı Arayüzü nedir?
Otomotiv Sistemi kullanıcı arayüzüne özel bileşenler şunları içerir:
Bileşen | Tanım |
---|---|
Kilit ekranı kullanıcı arayüzü | Kullanıcıların belirli bir kullanıcı hesabında kimliklerinin doğrulandığı ekran. |
Gezinti çubuğu | Ekranın soluna, altına veya sağına yerleştirilebilen ve farklı uygulamalara gitmek, bildirim panelini değiştirmek ve araç kontrolleri (HVAC gibi) sağlamak için faset düğmeleri içerebilen sistem çubuğu. Bu, Geri, Ana Sayfa ve uygulama yığını düğmelerini sağlayan Android Sistem Kullanıcı Arayüzü uygulamasından farklıdır. |
Durum çubuğu | Ekran boyunca konumlandırılan ve bir gezinme çubuğu görevi gören sistem çubuğu. Durum Çubuğu ayrıca şunları desteklemek için işlevsellik sağlar:
|
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ü | Bir kullanıcının farklı bir kullanıcı seçebileceği ekran. |
Birim kullanıcı arayüzü | Sürücü, bir aygıttaki ses düzeyini değiştirmek için fiziksel ses düğmelerini kullandığında görüntülenen iletişim kutusu. |
Sistem Kullanıcı Arayüzü nasıl çalışır?
Sistem Kullanıcı Arayüzü, bir cihaz açıldığında çalışan bir Android uygulamasıdır. Uygulama, SystemServer tarafından yansıtılarak başlatılır. Sistem Kullanıcı Arayüzü'nün kullanıcı tarafından görülebilen yönleri için en alakalı giriş noktaları aşağıda listelenmiştir. Android Sistem Kullanıcı Arayüzü'nü Otomotiv'e özgü yetenekler için özelleştirmek için bu bileşenleri kullanın.
-
config_statusBarComponent
-
config_systemUIFactoryComponent
CarSystemUI, SystemUI paketinin bir uzantısıdır, yani SystemUI paketindeki sınıflar ve kaynaklar CarSystemUI paketi tarafından kullanılabilir ve geçersiz kılınabilir.
Sistem Kullanıcı Arayüzünü Özelleştirme
bindirmeler
Sistem Kullanıcı Arayüzü'nü özelleştirmek için Android kaynak kodunu değiştirebilseniz de, bunu yapmak gelecekteki Android güncellemelerini uygulamayı daha zor ve karmaşık hale getirir. Bunun yerine Android, kaynak kodunu değiştirmeden kaynak dosyalarını değiştirmenize olanak tanıyan bir bindirme dizini kullanımını destekler. Android derleme sisteminde, bindirme sistemi dosyaları kontrollü bir şekilde geçersiz kılar. Değiştirilen tüm dosyalar, AOSP kaynak kodunun tüm ağacından geçilmeden açıkça tanımlanır.
Bindirme dosyaları PRODUCT_PACKAGE_OVERLAYS
dizinine yerleştirilmelidir ve orijinal AOSP kök yapısıyla tam olarak aynı alt klasörlere sahip olmalıdır. Android 10 veya sonraki sürümler için PRODUCT_PACKAGE_OVERLAYS
şu şekilde ayarlanmıştır:
PRODUCT_PACKAGE_OVERLAYS := packages/services/Car/car_product/overlay
Otomotiv Sistemi Kullanıcı Arayüzü, SystemUI ve CarSystemUI paketlerindeki kaynakları kullanır; bu, Otomotiv Sistemi Kullanıcı Arayüzü'nün görünüşünü ve hissini etkilemek için her bir konumdan gelen kaynakların bindirmelerle geçersiz kılınabileceği anlamına gelir.
Bir dosyayı değiştirmek için, değiştirilen dosyanın dizin yapısını belirttiğiniz /overlay
dizininde çoğaltın ve ardından değiştirmeyi bu dizine ekleyin. Örneğin, değiştirmek için:
frameworks/base/packages/CarSystemUI/res/layout/super_status_bar.xml
Şurada bulunan yedek 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 SystemUI'de), yedek 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 birincil özelleştirme giriş noktasının açıklamaları aşağıda verilmiştir.
Gezinti çubuğu
Otomotiv Sistemi Kullanıcı Arayüzü, ekranın solunda, altında ve sağında üç gezinme çubuğuna sahip olabilir. 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, ilgili düzen dosyalarının üst üste bindirilmesiyle özelleştirilebilen, sağlanmış ve hazırlanmamış bir durumu vardır:
-
car_left_system_bar.xml
-
car_left_system_bar_unprovisioned.xml
-
car_system_bar.xml
(alt gezinme çubuğu düzeni) -
car_system_bar_unprovisioned.xml
-
car_right_system_bar.xml
-
car_right_system_bar_unprovisioned.xml
Bu düzenler, diğer gerekli görünümleri içerebilen en üst düzeyde com.android.systemui.car.systembar.CarSystemBarView
içermelidir. Gezinme çubuklarının içindeki düğmeler com.android.systemui.car.systembar.CarSystemBarButton
kullanılarak dahil edilebilir.
Aygıt belirli bir kullanıcı için uygun şekilde sağlanmışsa, bu görünümler CarSystemBar#createSystemBar
içinde şişirilir.
Durum çubuğu
Durum Çubuğunu ek işlevselliğe sahip bir gezinme çubuğu olarak düşünün. Gezinme çubuğunun aksine, Durum Çubuğu'nun devre dışı bırakmak için bir bayrağı yoktur. Durum Çubuğunu aşağıdakilerle değiştirebilirsiniz:
-
car_top_navigation_bar.xml
-
car_top_navigation_bar_unprovisioned.xml
Bu düzenler en üst düzeyde com.android.systemui.statusbar.car.CarNavigationBarView
içermelidir. Durum Çubuğu, durum simgeleri içerir. Bir simgenin boyutunu değiştirmek için, belirli bir boyut belirtmek yerine simgeyi bir ölçek faktörü ile eşit olarak ölçeklendirin. Örneğin, bir bindirme dosyasında /overlay/frameworks/base/packages/CarSystemUI/res/values/dimens.xml
, simgelerin boyutunu iki katına çıkarmak için aşağıdaki boyutları ekleyin:
<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, bildirimler panelini, kullanıcı değiştiriciyi, baş bildirimlerini (HUN'lar) ve tuş korumasını da içeren özel bir pencere katmanında bulunur. Bunlar için çeşitli düzenler super_status_bar.xml
içinde bulunur.
Sistem kullanıcı arabirimi kaynak kodu değişiklikleri
Kaplamalar, Sistem Kullanıcı Arabirimi davranışını yeterince özelleştirmek için gereken esnekliği sağlamayabilir.
Uyarı. Android kaynak kodunda yapılan değişikliklerin sonraki Android sürümlerinde güncellenmesi zor olacaktır. Kodu doğrudan değiştirmek yerine Otomotiv Sistemi UI kodunu genişletmeniz şiddetle önerilir. Bu şekilde, tüm özelleştirmeler bilinen API yüzeyleri aracılığıyla uygulandığından, temeldeki Otomotiv Sistemi UI kaynak kodu minimum birleştirme çakışmaları ile yükseltilebilir.
Sistem Kullanıcı Arayüzü'nün çoğu yönü şu iki giriş noktası aracılığıyla özelleştirilebilir:
-
config_statusBarComponent
-
config_systemUIFactoryComponent
Örneğin, CarStatusBar
genişleten com.android.systemui.statusbar.car.custom.CustomCarStatusBar
adlı bir sınıf oluşturursanız, bu yeni bileşeni işaret etmek için config_statusBarComponent
öğesini güncelleyin. Bu sınıfın genişletilmesi, sistem çubuğuna ve bildirim mantığına ilişkin çoğu öğenin özelleştirilmesini sağlar.
Aynı şekilde CustomCarSystemUIFactory
oluşturabilir ve onu config_systemUIFactoryComponent
. VolumeUI ve kilit ekranının işlevselliğini güncellemek için bu sınıfı kullanın.
Kullanıcı değiştirmeyi ve kilit açmayı özelleştirin
Aşağıdaki materyal, kullanıcı değiştirme deneyiminin nasıl özelleştirileceğini açıklar.
Terim | Tanım |
---|---|
tuş kilidi | Ön plan uygulamasıyla yanlışlıkla etkileşimi önlemek için tam ekran iletişim kutusu. Birden çok kullanıcı kurulduğunda her kullanıcının gizliliğini korur. |
İletişim kutusu yükleniyor | Kullanıcılar arasında geçiş yaparken görüntülenen yükleme ekranı. |
Kilit ekranı, fedai | 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 görüntülenen kullanıcı seçici ekranı. |
kullanıcı değiştirici | QuickSettings'den ekranlar arasında geçiş yaparken görüntülenen kullanıcı değiştirici. |
Kullanıcı değiştirmeyi özelleştir
Tuş kilidi ve fedai
Android Automotive OS'de, Kullanıcı Seçicili Tuş Kilidi ekranı yalnızca bir kullanıcı kilit ekranında İptal düğmesini tıkladığında görüntülenir. Tuş Kilidi ekranı aşağıda gösterilmiştir.
Şekil 1. Tuş kilidi ekranı
Kullanıcı, aşağıda gösterildiği gibi cihazın kilidini açmak için bir gizlilik türü seçtiğinde, fedai içeren bir kilit ekranı görüntülenir.
Şekil 2. Kilit ekranı.
Kilit, gücü açma veya kapatmayı manuel olarak tetikleyecek şekilde ayarlandığında, aşağıdaki talimatı kullanın:
adb shell input keyevent 26
kullanıcı seçici
Kullanıcı Seçici ekranı, aracın Sistem Kullanıcı Arayüzü Durum çubuğuna ve Haritalara entegre bir cihaz yeniden başlatıldığında görüntülenir. Daha fazla bilgi edinmek için bkz. FullscreenUserSwitcher
.
Şekil 3. Yükleme ekranı
Bu ekranın düzeni, car_fullscreen_user_switcher.xml
içinde özelleştirilebilir.
Yükleme ekranı
Giriş noktasından bağımsız olarak bir Kullanıcı değiştirildiğinde Yükleme ekranı görüntülenir. Örneğin, Kullanıcı Seçici veya Ayarlar ekranı aracılığıyla. Yükleme ekranı, çerçeve Sistem Kullanıcı Arabiriminin ayrılmaz bir parçasıdır ve CarUserSwitchingDialog
başlıklı genel sınıfa eşlenir. Örnek için yukarıdaki Şekil 3'e bakın.
Tema, Theme_DeviceDefault_Light_Dialog_Alert_UserSwitchingDialog
ile özelleştirilebilir.
Android Kullanıcısını kurmak için, ilk Kurulum Sihirbazı akışı, sürücünün kendileri için bir Kullanıcı adı oluşturmasını sağlar. Sürücü daha sonra Android Kullanıcısını bir Google hesabıyla ilişkilendirirse, Kullanıcı adı bu hesaptan seçilir. Ancak, sürücü örneğin DriverB gibi bir ad belirtirse ve daha sonra bu Kullanıcı adını Google Hesabıyla Maddy adıyla ilişkilendirirse, bu ad açıkça ayarlandığından orijinal olarak atanan ad (DriverB) değiştirilmez. Sürücü, adı yalnızca Ayarlar menüsünde değiştirebilir.
Düzen, car_user_switching_dialog.xml .
OEM'ler, NoActionBar.Fullscreen
adlı temayı kullanarak Durum ve Gezinme çubuğunu gizleyebilir. (Bu, araç referans kullanıcı arayüzü için güncellenen 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ı arabirimi giriş noktaları sağlayabilirken, sonuçlar bazen istenmeyen olabilir. Bu gerçekleşirse:
- OEM, özel yükleme ekranını (veya iletişim kutusunu) oluşturur ve görüntüler.
- UX'e özel olarak OEM, bir kullanıcı geçiş yapma yöntemini seçtiğinde, kullanıcı geçişi tamamlandığında gizlenebilen özel yükleme ekranını başlatır.
- OEM, öncelik penceresini tercihlerine göre ayarlamalıdır. Örneğin, daha yüksek öncelikli bir pencere türü. Öncelik önceliği, Tuş Korumasınınkini aşamaz .
- OEM, config_customuserswitchui içinde açıklandığı gibi
config.xml
çekirdek çerçevesindeconfig_customuserswitchui
config_customUserSwitchUi=true
ayarlar. Sonuç olarak, çerçeveCarUserSwitchingDialog
göstermez .
Kilit ekranını özelleştirin
Kilit Ekranı, OEM tarafından özelleştirilebilen Sistem Kullanıcı Arayüzü'nün ayrılmaz bir parçasıdır. Akışı özelleştirmek için frameworks/base/packages/CarSystemUI/
ile başlayın.
İlk kez kullanıcı kurulumunu özelleştirin
Kurulum Sihirbazı, ilk Kullanıcı kurulumunu gerçekleştirir. Bu da özelleştirilebilir. Bir Kullanıcı oluşturmak için UserManager API'lerini kullanabilirsiniz. Bazı durumlarda bu, arka planda uygulanabilir ve böylece Kurulum Sihirbazı sürecini kolaylaştırır.