Android Automotive, araçlar için özel olarak geliştirilmiş yeni bir Sistem Kullanıcı Arayüzü sağlar. Sistem Kullanıcı Arayüzünün çoğu bileşeni çerçeve hizmetleriyle sıkı bir şekilde bağlantılıdır. 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 (Sistem Kullanıcı Arayüzü 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ına kimlik doğrulamasının yapıldığı ekran. |
Gezinti çubuğu | Ekranın soluna, altına veya sağına yerleştirilebilen ve farklı uygulamalara gitmek için özel düğmeler içerebilen, bildirim panelinde geçiş yapabilen ve araç kontrolleri (HVAC gibi) sağlayabilen 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 gezinme çubuğu görevi gören sistem çubuğu. Durum çubuğu ayrıca aşağıdakileri destekleyecek 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ü | Kullanıcının farklı bir kullanıcı seçebileceği ekran. |
Birim kullanıcı arayüzü | Sürücü, bir aygıtın 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ıların görebileceği yönleri için en ilgili giriş noktaları aşağıda listelenmiştir. Android Sistem Kullanıcı Arayüzünü Otomotiv'e özgü yeteneklere göre özelleştirmek için bu bileşenleri kullanın.
-
config_statusBarComponent
-
config_systemUIFactoryComponent
CarSystemUI, Sistem Kullanıcı Arayüzü paketinin bir uzantısıdır; yani Sistem Kullanıcı Arayüzü 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ştirin
Kaplamalar
Sistem Kullanıcı Arayüzünü özelleştirmek için Android kaynak kodunu değiştirebilseniz de, bunu yapmak gelecekteki Android güncellemelerinin uygulanmasını 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 yer paylaşımı dizininin kullanımını destekler. Android derleme sisteminde, yer paylaşımı sistemi dosyaları kontrollü bir şekilde geçersiz kılar. Değiştirilen tüm dosyalar, AOSP kaynak kodu ağacının tamamından geçmeden açıkça tanımlanır.
Yer paylaşımı dosyaları PRODUCT_PACKAGE_OVERLAYS
dizinine yerleştirilmeli ve orijinal AOSP kök yapısıyla tamamen aynı alt klasörlere sahip olmalıdır. Android 10 veya üzeri 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ü, Sistem Kullanıcı Arayüzü ve CarSystemUI paketlerinden gelen kaynakları kullanır; bu, Otomotiv Sistemi Kullanıcı Arayüzünün görünüşünü ve hissini etkilemek için her konumdaki kaynakların kaplamalarla 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
dizinine kopyalayı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
Şu konumda 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
değiştirmek için (Sistem kullanıcı arayüzünde, CarSystemUI'da değil ), 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 ana ö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 sağlanmamış bir durumu vardır:
-
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 en üst düzeyde com.android.systemui.car.systembar.CarSystemBarView
içermelidir; bu, diğer gerekli görünümleri de içerebilir. Gezinme çubuklarının içindeki düğmeler com.android.systemui.car.systembar.CarSystemBarButton
kullanılarak eklenebilir.
Cihaz belirli bir kullanıcı için uygun şekilde sağlanmışsa bu görünümler CarSystemBar#createSystemBar
içinde artırılır.
Durum çubuğu
Durum çubuğunu ek işlevlere sahip bir gezinme çubuğu olarak düşünün. Gezinme çubuğunun aksine durum çubuğunda onu devre dışı bırakacak bir bayrak yoktur. Durum çubuğunu şununla 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 simgelerini içerir. Bir simgenin boyutunu değiştirmek için belirli bir boyut belirtmek yerine simgeyi bir ölçek faktörüyle eşit şekilde ölçeklendirin. Örneğin, /overlay/frameworks/base/packages/CarSystemUI/res/values/dimens.xml
kaplama dosyasına, 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, bildirim panelini, kullanıcı değiştiriciyi, uyarı bildirimlerini (HUN'lar) ve tuş kilidini de içeren özel bir pencereleme katmanında bulunur. Bunlara ilişkin çeşitli düzenler super_status_bar.xml
dosyasında bulunmaktadır.
Sistem kullanıcı arayüzü kaynak kodu değişiklikleri
Kaplamalar, Sistem Kullanıcı Arayüzü davranışını yeterince özelleştirmek için gereken esnekliği sağlayamayabilir.
Uyarı. Android kaynak kodunda yapılan değişikliklerin Android'in sonraki sürümlerinde güncellenmesi zordur. Kodu doğrudan değiştirmek yerine Otomotiv Sistemi Kullanıcı Arayüzü kodunu genişletmenizi önemle tavsiye ederiz. Bu şekilde, tüm özelleştirmeler bilinen API yüzeyleri aracılığıyla uygulandığından, temel Otomotiv Sistemi kullanıcı arayüzü kaynak kodu minimum birleştirme çakışması ile yükseltilebilir.
Sistem Kullanıcı Arayüzünün çoğu özelliği şu iki giriş noktası aracılığıyla özelleştirilebilir:
-
config_statusBarComponent
-
config_systemUIFactoryComponent
Örneğin, com.android.systemui.statusbar.car.custom.CustomCarStatusBar
adında CarStatusBar
genişleten bir sınıf oluşturursanız, config_statusBarComponent
öğesini bu yeni bileşeni işaret edecek şekilde 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.
Benzer şekilde, CustomCarSystemUIFactory
oluşturabilir ve onu config_systemUIFactoryComponent
içine yerleştirebilirsiniz. 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çıklamaktadır.
Terim | Tanım |
---|---|
Tuş kilidi | Ön plandaki uygulamayla yanlışlıkla etkileşimi önlemek için tam ekran iletişim kutusu. Birden fazla kullanıcı kurulduğunda her kullanıcının gizliliğini korur. |
Yükleme iletişim kutusu | Kullanıcılar arasında geçiş yaparken görüntülenen yükleme ekranı. |
Kilit ekranı, fedai | Kişinin PIN, desen veya şifre girmesini gerektiren ekran. |
Kullanıcı | Android kullanıcısı. |
Kullanıcı seçici | Bir aygıt başlatıldığında görüntülenen kullanıcı seçme ekranı. |
Kullanıcı değiştirici | QuickSettings'ten ekranlar arasında geçiş yaparken görüntülenen kullanıcı değiştirici. |
Kullanıcı değiştirmeyi özelleştirin
Tuş kilidi ve fedai
Android Automotive OS'de, kullanıcı seçicili Tuş Kilidi ekranı yalnızca kullanıcı kilit ekranındaki İptal düğmesini tıklattığı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, güvenlik korumasını içeren bir kilit ekranı görüntülenir.
Şekil 2. Kilit ekranı.
Kilit, gücü manuel olarak açıp kapatacak şekilde ayarlandığında aşağıdaki talimatı kullanın:
adb shell input keyevent 26
Kullanıcı seçici
Kullanıcı seçme 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 FullscreenUserSwitcher
bakın.
Şekil 3. Kullanıcı seçme ekranı
Bu ekranın düzeni car_fullscreen_user_switcher.xml
dosyasında özelleştirilebilir.
Yükleme ekranı
Yükleme ekranı, giriş noktasına bakılmaksızın kullanıcı değiştiğinde görüntülenir. Örneğin, kullanıcı seçici veya Ayarlar ekranı aracılığıyla. Yükleme ekranı, çerçeve Sistem Kullanıcı Arayüzü'nün ayrılmaz bir parçasıdır ve CarUserSwitchingDialog
başlıklı genel sınıfla eşleşir. Ö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ı ayarlamak için ilk Kurulum Sihirbazı akışı, sürücünün kendisi için bir kullanıcı adı ayarlamasına olanak tanır. Sürücü daha sonra Android kullanıcısını bir Google hesabıyla ilişkilendirirse kullanıcı adı o hesaptan seçilir. Ancak sürücü bir ad belirtirse (örneğin SürücüB) ve daha sonra bu kullanıcı adını Maddy adıyla Google Hesabıyla ilişkilendirirse, başlangıçta atanan ad (SürücüB) bu ad açıkça ayarlandığından değişmez. Sürücü adı yalnızca Ayarlar menüsünden değiştirebilir.
Düzen car_user_switching_dialog.xml .
OEM'ler NoActionBar.Fullscreen
adlı temayı kullanarak durumu 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ı değiştirmek için kullanıcı arayüzü giriş noktaları sağlayabilirken, sonuçlar bazen istenmeyen olabilir. Bu meydana gelirse:
- OEM, özel yükleme ekranını (veya iletişim kutusunu) oluşturur ve görüntüler.
- UX'e özel olarak OEM, kullanıcı geçiş yapma yöntemini seçtiğinde özel yükleme ekranını başlatır ve bu, kullanıcı geçişi tamamlandığında gizlenebilir.
- OEM öncelik penceresini kendi tercihlerine göre ayarlamalıdır. Örneğin, daha yüksek öncelikli bir pencere türü. Öncelik önceliği Keyguard'ınkini aşamaz .
- OEM,
config_customuserswitchui
açıklandığı gibiconfig.xml
çekirdek çerçevesindeconfig_customUserSwitchUi=true
ayarlar. Sonuç olarak çerçeveCarUserSwitchingDialog
görüntülemez .
Kilit ekranını özelleştirin
Kilit Ekranı, Sistem Kullanıcı Arayüzü'nün OEM tarafından özelleştirilebilen 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 kez 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 uygulanarak Kurulum Sihirbazı süreci kolaylaştırılabilir.