Arabalarda gelişmiş, dinamik ve çok panelli kullanıcı deneyimleri oluşturmak için ölçeklenebilir kullanıcı arayüzünü kullanın. Ölçeklenebilir kullanıcı arayüzü:
Esnek bir pencere sistemi sağlar.
Kullanıcı arayüzü uygulamaları için Compatibility Test Suite (CTS) tarafından sunulan mühendislik risklerini, maliyetlerini ve karmaşıklıklarını en aza indirir.
Ölçeklenebilir kullanıcı arayüzü, dinamik pencere düzenlemeleri gerektiren çok çeşitli modern araç içi bilgi-eğlence (IVI) tasarımlarını desteklerken statik pencere düzenlemeleriyle geleneksel deneyimleri de desteklemek için ölçeklenebilir.
Android 17, gelişmiş pencereleme ile ilgili aşağıdaki özellikleri sunar:
- Uyarı bildirim panellerini uygulama
- Sistem çubuklarını özelleştirme
- WindowManager değişmezleriyle test uyumluluğunu en üst düzeye çıkarma
- Kurulum sihirbazını entegre etme
Örnek deneyimler
Ölçeklenebilir kullanıcı arayüzü, sınırsız sayıda pencere yapılandırmasına olanak tanır. Ölçeklenebilir kullanıcı arayüzünü kullanmak için oluşturulan birkaç örnek senaryoyu aşağıda bulabilirsiniz:
Yüzen uygulamalarla harita arka planı
Üstte kayan diğer uygulamaların bulunduğu bir harita arka plan yapılandırması.
Uygulama arka planı
Kayar paneller içeren bir uygulama arka planı yapılandırması.
Diğer uygulamaların altında sabitlenen uygulama
Diğer uygulamaların üstünde başlatıldığı, widget kapsayıcısı gibi sabitlenmiş bir uygulama.
Koşullu kayan panel
Yalnızca belirli koşullar karşılandığında (ör. medya oynatılırken veya bir uyarı tetiklendiğinde) görünen koşullu bir kayan panel.
Sabitlenen uygulama sürücüye yakın olsun
Sürücüye daha yakın konumlandırılmış sabitlenmiş bir uygulama.
Bölünmüş ekran düzeni
İki uygulamayı yan yana gösteren bölünmüş ekran düzeni.
Etkileşimli bölünmüş ekran
Dinamik yeniden boyutlandırmaya olanak tanıyan etkileşimli bir bölünmüş ekran düzeni.
Büyük ekranlar için çoklu bağlantı noktası düzeni
Büyük ekranlar için tasarlanmış çoklu tutturma noktası düzeni.
Ana ekrandaki uygulama bandı
Uygulama bantının yer aldığı bir ana ekran düzeni.
Avantajlar ve uygunluk
Ölçeklenebilir kullanıcı arayüzünün avantajları:
Daha düşük test riski: Çerçeve önceden sertifikalandırılmıştır ve CTS ile uyumludur. Bu sayede, program döngüsünün sonlarında test başarısızlığı yaşanması gibi temel riskler ortadan kalkar. Ölçeklenebilir kullanıcı arayüzü, mühendislik çalışmalarında aylarca sürebilecek zaman tasarrufu sağlayabilir ve uyumluluğu hızlandırabilir.
Daha fazla tasarım esnekliği: Mevcut çok sayıda karmaşık otomotiv pencere modelini yeniden oluşturma konusunda kanıtlanmış yetenek. Ölçeklenebilir kullanıcı arayüzü, iddialı ve oldukça farklı tasarımları destekler.
Daha az uygulama karmaşıklığı: Yüksek düzeyde, yapılandırmaya dayalı bir XML modeline soyutlama, özel pencereleme mantığı için giriş engelini azaltır.
Daha iyi performans: Ölçeklenebilir kullanıcı arayüzü, standart Android ile tamamen entegre edilmiş yüksek performanslı bir pencereleme temelinde çalışır. Geçişler sorunsuz bir şekilde gerçekleşir ve doğrudan optimizasyona olanak tanır.
Temel yapı taşları
Ölçeklenebilir kullanıcı arayüzü, OEM'ye özel kod ihtiyacını en aza indirir, güncellenebilirliği kolaylaştırır ve tuzakları ortadan kaldırıp sertifika sorunlarını azaltarak lansman risklerini düşürür.
XML odaklı yaklaşım, AAOS'te karmaşık pencere sistemlerini yönetirken karşılaşılan yaygın sorunları (ör. hassas konumlandırma, Z sırası çakışmaları ve uygulama odağı) ele alır.
Ölçeklenebilir kullanıcı arayüzü bu temel yapı taşlarını sağlar.
Panel
Panel, ekrandaki temel dikdörtgen kapsayıcıdır. Her panel, bağımsız yönetim için özel bir kök görevle eşlenir. Bir panelde uygulama görevleri (TaskPanel) veya widget'lar (DecorPanel) gibi görünüme dayalı içerikler yer alabilir.
Daha fazla bilgi için Paneli yapılandırma başlıklı makaleyi inceleyin.
Varyant
Varyant, bir panel için belirli bir görsel durumu tanımlar ve bounds (konum ve boyut), visibility, layer (Z sırası) ve corner yarıçapı gibi özellikleri içerir. Tek bir panelde opened, closed veya minimized gibi varyantlar olabilir. Daha fazla bilgi edinmek için Görsel durum tasarlamak için varyant kullanma başlıklı makaleyi inceleyin.
Geçiş
Geçiş, bir panelin mevcut durumundan fromVariant yeni bir duruma toVariant nasıl geçtiğini tanımlar. Bir Event, geçişi tetikler. Bu geçiş, panelin durum değişikliği sırasında kullandığı animasyonu tanımlar. Bir panelin mevcut durumundan toVariant durumuna geçmesi gerekir. Çekirdek Pencere Yöneticisi, senkronizasyon için tüm geçişleri canlandırır ve koordine eder.
- Etkinlik: Kullanıcı arayüzü değişikliğini başlatmak için kullanılan bir tetikleyici. Bir OEM veya sistem, tetikleyiciyi önceden tanımlayabilir. Örneğin,
_System_OnHomeEvent,_System_TaskOpenEventveya özel bir gezinme düğmesine basma.
Örneğin, ölçeklenebilir kullanıcı arayüzü, geçişleri tetiklemek için etkinlikleri kullanır. Bu geçişler, kullanıcı arayüzündeki dinamik değişiklikleri göstermek için bir paneli bir varyanttan diğerine animasyonla geçirir. Ölçeklenebilir kullanıcı arayüzü, içeriği gerektiği gibi ayarlamak için bu değişiklikleri diğer sistem uygulamalarına bildirir. XML'de kullanıcı arayüzü ilişkilerini tanımlayarak şunları yapabilirsiniz:
Karmaşık kullanıcı arayüzü davranışlarını belirtin: Ayrıntılı kullanıcı arayüzü etkileşimlerini tanımlayın.
Pencere sistemlerini düzenleme: Pencere konumlandırmasını ve katmanlamayı kontrol edin.
Görsel temalar uygulayın: Tutarlı marka bilinci oluşturma ve estetik anlayışı uygulayın.
Kod karmaşıklığını azaltın: Kapsamlı özel kod geliştirme ihtiyacını en aza indirin.
Daha fazla bilgi için Geçiş yapılandırma başlıklı makaleyi inceleyin.
Sistem arayüzü düğmeleri
CarSystemBarButtons, niyetleri tetiklemenin yanı sıra event, selectedEvent ve unselectedEvent özellikleri kullanılarak dokunulduğunda ölçeklenebilir kullanıcı arayüzü etkinliğini de tetikleyebilir.
event, düğmeye dokunulduğunda tetiklenecek etkinliği açıklar. Bir etkinlik üzerinde daha ayrıntılı kontrol gerekiyorsa düğme seçildiğinde veya seçimi kaldırıldığında tetiklenecek etkinliği belirtmek için selectedEvent ve unselectedEvent özelliklerini kullanın.
Sistem Arayüzü ne zaman uygulanır?
Bu bölümde, ölçeklenebilir kullanıcı arayüzünün en iyi kullanım şekilleri açıklanmaktadır.
- Kalıcı çok panelli düzenler oluşturma
- Dinamik bir ev sahnesi uygulama
- Bağlamsal yer paylaşımları uygulama
- Karmaşık panel etkileşimleri tasarlama
Kalıcı çok panelli düzenler oluşturma
Ekranın farklı alanlarının belirli işlevlere kalıcı olarak ayrıldığı çok bölgeli bir deneyim oluşturun. Örneğin, özel medya kontrolleri, iklim şeridi veya tam ekran harita.
Birincil uygulamalar (ör. navigasyon) için TaskPanels, TaskPanels arasına yerleştirilmesi gereken görünümler biçimindeki kullanıcı arayüzü öğeleri için DecorPanels kullanın.
Dinamik bir ev sahnesi uygulama
Aynı anda görünen ve etkileşimli birden fazla uygulama panelinden oluşan bir Ev sahnesi uygulayın. Örneğin, harita, medya oynatıcı ve uygulama tablosu.
İlgili tüm panelleri opened veya default ana sayfa varyantlarına geçirmek için _System_HomeEvent yapılandırın.
Bağlama dayalı katmanlar uygulama
Uygulama dışı kullanıcı arayüzü öğelerini (ör. bağlama duyarlı widget'lar, özel marka öğeleri ve uygulama görevleriyle birlikte animasyon oluşturulabilen sürükleme çubukları) yerleştirin.
Tamamen dekoratif veya widget barındıran tüm öğeler için DecorPanels kullanın. Bir widget, tam işlevli ve başlatılabilir bir uygulamaya ev sahipliği yapıyorsa Panel > TaskPanel en uygun olanıdır. Katman oluşturma işleminin TaskPanel katman oluşturma işlemiyle senkronize edilmesi gerektiğinde görünüm tabanlı kullanıcı arayüzü öğeleri için DecorPanels değerini kullanın.
Karmaşık panel etkileşimleri tasarlama
Uygulama panelini dinamik olarak yeniden boyutlandırma veya gösterge paneli görünümlerini ana ekran içeriğine göre ayarlama gibi gelişmiş kullanıcı odaklı işlemler tasarlayın.
Belirli, sistem standardı olmayan Transitions tetiklemek için özel Events tanımlayın.
IVI düzenlerini birleşik dijital kokpite genişletme
Ölçeklenebilir kullanıcı arayüzü, SDV IVI VM'deki ana bilgi-eğlence ekranında (display0) çok panelli pencere oluşturmayı (TaskPanel ve DecorPanel) yönetir. Ölçeklenebilir kullanıcı arayüzünü Ekran Güvenliği ile eşleştirerek ana ekran düzeni değiştiğinde gösterge paneli görünümlerini güncelleyebilirsiniz:
- Ölçeklenebilir kullanıcı arayüzü işlemleri (
SDV IVIVM): Ana ekranda bir panel durumu değiştiğinde Ölçeklenebilir Kullanıcı Arayüzü,<Action>kullanarak bir amaç gönderebilir. Bu amaç,xml/scalable_ui_actions.xmliçinde yer alır ve küme bileşenlerini düzen veya mod değişiklikleri konusunda bilgilendirir. Daha fazla bilgi için İşlem yapılandırma başlıklı makaleyi inceleyin. - DriverUI (
SDV IVIVM):ClusterHomeManagertarafından başlatılan veautomotive-design-composeile oluşturulan bir sistem uygulaması olarak küme ekranında (display1) çalışır.DriverUIGüvenlik kümesi dışındaki içerikleri (ör. haritalar, medya ve telefon görüşmeleri) oluşturur ve IVI sisteminden gelen durum güncellemelerini işler. - IVI'deki SDV Ağ Geçidi (
SDV IVIVM):DriverUI, gRPC (driverui.proto) üzerinden yüksek kullanılabilirlik işleyicisine (HAR) bağlanmak içinSDV Gateway Clientkullanır.DriverUI, düzen varyantları, tema jetonları ve yerel ayar değişiklikleri gibi küme durumu güncellemelerini düzenli olarak gönderilen kalp atışı mesajlarıyla birlikte gönderir. HARve Güvenlik Monitörü (SDV MediaVM): Güvenlikle ilgili kritik öğeleri (ör. hız, vites, uyarılar, zil sesleri ve arka görüş kamerası feed'leri) oluşturmak için ayrı birSDV MediaVM'de çalıştırılır.DriverUI'dan sinyal alırkenHAR, Android küme bölgelerini şeffaf tutar. BöyleceDriverUIiçeriği,HARgüvenlik katmanlarıyla uyum sağlar.SDV IVIbaşlatılıyorsa veya kullanılamıyorsaHAR, yedek yer tutucular gösterir.- OEM yapılandırması: Bu akışı ayarlamak için
SDV IVIüzerindexml/scalable_ui_actions.xmliçinde<Event>tetikleyicilerini ve<Action>amaçlarını yapılandırın,Config.jsonsinyal eşlemeleriniSDV IVIüzerindekixml/scalable_ui_actions.xmliçinde güncelleyin,Config.jsonsinyal eşlemeleriniSDV IVIüzerindekixml/scalable_ui_actions.xmliçinde güncelleyin,Config.jsonsinyal eşlemeleriniSDV IVIüzerindekixml/scalable_ui_actions.xmliçinde güncelleyin,Config.jsonsinyal eşlemeleriniSDV IVIüzerindekixml/scalable_ui_actions.xmliçinde güncelleyin,Config.jsonsinyal eşlemeleriniSDV IVIüzerindekixml/scalable_ui_actions.xmliçinde güncelleyin,Config.jsonsinyal eşlemeleriniSDV IVIüzerindekixml/scalable_ui_actions.xmliçinde güncelleyin,Config.jsonsinyal eşlemeleriniSDV IVIüzerindekixml/scalable_ui_actions.xmliçinde güncelleyin,Config.jsonsinyal eşlemeleriniSDV IVIüzerindekixml/scalable_ui_actions.xmliçinde güncelleyin,Config.jsonsinyal eşlemeleriniSDV IVIüzerindekixml/scalable_ui_actions.xmliçinde güncelleyin, �