Android Automotive OS, sürüş sırasında kullanılmak üzere tasarlanmış uygulamaların yanı sıra park halindeyken kullanılabilecek tarayıcıları, oyunları ve video uygulamalarını destekler. Diğer arabalara yaptığınız gibi, aynı uygulamayı arabalara da gönderebilirsiniz. büyük ekranlı cihazlara benzer.
Mevcut uygulamanızı Android Automotive OS emülatöründe test etme
Android Automotive OS uygulamanızı derlemeye başlamak için önce mevcut uygulamasıdır. Bir emülatör ayarlamak için Android Automotive OS emülatörünü kullanarak test etme başlıklı makaledeki adımları uygulayın. Ardından şu adresteki talimatları uygulayarak uygulamayı çalıştırabilirsiniz: Uygulamanızı emülatörde çalıştırın.
Uygulamanızı çalıştırırken aşağıdakiler gibi uyumluluk sorunlarına dikkat edin:
- Bilgi-eğlence ekranlarının yönü sabittir. Araba uygulaması kalite yönergelerini karşılamak için uygulamaların hem dikey hem de yatay yönleri desteklemesi gerekir.
- Diğer cihazlarda kullanılabilen API'ler Android Automotive OS'te kullanılamayabilir. Örneğin, bazı Google Play Hizmetleri API'leri Android Automotive OS'te kullanılamaz. Bu sorunların nasıl ele alınacağı hakkında ayrıntılı bilgi için Özellikleri devre dışı bırakma bölümüne bakın.
Uygulamanızın manifest dosyalarını yapılandırma
Android Automotive OS'i hedeflemek için uygulamanızda belirli manifest girişlerinin olması gerekir. Bunlarla birlikte, Android Automotive OS'i hedefleyen uygulamalar . Web siteleri, arabada kullanım için güvenli olduklarından emin olmak üzere manuel inceleme sürecidir. Daha fazla bilgi için Arabalar için Android uygulamalarını dağıtma konusuna bakın. bolca fırsat sunuyor.
Gerekli Android Automotive OS özellikleri
Android Automotive OS için geliştirilmiş uygulamalar, bir arabada Play Store'da listelenmek üzere
şunları içermelidir: <uses-feature>
AndroidManifest.xml
içindeki
dosya:
<manifest ...>
...
<uses-feature
android:name="android.hardware.type.automotive"
android:required="true" />
...
</manifest>
Otomotiv dışı kanallara gönderilen uygulamalar, arabaya özgü donanıma bağlı olamadıkları için önceki kod örneğinde gösterilen <uses-feature>
öğesini tanımlayamaz. Bu yüzden, aynı uygulamayı hem otomotiv hem de
hem otomotiv hem de
otomotiv olmayan cihazlar için uygulamanızın en az iki farklı türünü oluşturmanız gerekir:
birincisi otomotiv cihazları, diğeri de mobil cihazlar için. Okuyucu Gelirleri Yöneticisi'ni
aşağıdaki dokümanlara bakın:
Uygulamanın iki aroması aynı paket adını paylaşabilir, ancak Play Store kanallarına yüklendikleri için farklı sürüm kodları ayrı olarak düzenleyebilirsiniz.
Alternatif olarak, ayrı lezzetler kullanmak yerine mobil ve otomotiv APK'larınız veya uygulama paketleriniz için ayrı paket adları kullanabilirsiniz. Her yaklaşımın avantajlarını ve dezavantajlarını anlamak için medya uygulaması geliştirici kılavuzundaki Paket adları bölümüne bakın.
Android Automotive OS için oluşturulan uygulamalar, önceki kod örneğinde gösterilen öğeye ek olarak kök <manifest>
öğesine aşağıdaki <uses-feature>
öğelerini eklemelidir:
<uses-feature
android:name="android.hardware.wifi"
android:required="false"/>
<uses-feature
android:name="android.hardware.screen.portrait"
android:required="false"/>
<uses-feature
android:name="android.hardware.screen.landscape"
android:required="false"/>
Bu özelliklerin açıkça "zorunlu değil" olarak ayarlanması, uygulamanızın şununla çakışmaz: Android Automotive OS cihazlarda kullanılabilen donanım özellikleri.
Dikkat dağıtmaya yönelik optimize edilmiş etkinlik olmadığından emin olun
Uygulamanızın yalnızca park hâlindeyken kullanılabilmesini sağlamak için bu işlemi yapmayın
aşağıdaki <meta-data>
öğesini,
<activity>
öğesi
manifest:
<!-- NOT ALLOWED -->
<meta-data
android:name="distractionOptimized"
android:value="true"/>
Bu meta veriler olmadan, sürücü dikkatinin dağılmaması için araba sürüş moduna girdiğinde uygulamanızın etkinlikleri işletim sistemi tarafından otomatik olarak engellenir. Bu durum, onPause
yaşam döngüsü geri çağırma yöntemi olarak gerçekleşir. Bu sırada uygulamanızdan hem video hem de ses oynatmayı duraklatmanız gerekir.
Kategoriye özel manifest girişleri
Park edilmiş tüm uygulamalar için geçerli olan önceki şartlara ek olarak, video ve oyun kategorileri için ek şartlar vardır:
- Video uygulamaları için Uygulamanızı video uygulaması olarak işaretleme başlıklı makaleyi inceleyin.
- Oyunlar için Uygulamanızı oyun olarak işaretleme başlıklı makaleyi inceleyin.
Uygulamanızı Android Automotive OS için optimize etme
Kullanıcılarınıza mümkün olan en iyi deneyimi sunmak için Android Automotive OS için uygulamanızı oluştururken aşağıdakileri göz önünde bulundurun.
Büyük ekranlar için optimize etme
Android Automotive OS araçlarındaki ekranlar boyut, çözünürlük ve en-boy oranı açısından telefonlara kıyasla tabletlere ve katlanabilir cihazlara daha benzer. Bu nedenle, uygulamanızı büyük ekranlar için optimize etmek arabadaki kullanıcılarınıza da fayda sağlar.
Özellikle, Farklı desteği sağlama ekranına bakın boyutlar ve Taşı duyarlı düzenlerin kullanıcı arayüzünüze kılavuzlarının yanı sıra geniş ekran boyutlarından en iyi şekilde medya ve oyunlar galeriler bulunuyor.
Giriş uyumluluğu gibi diğer büyük ekran optimizasyonları Android Automotive OS için doğrudan yararlı olmasa da kullanıcı deneyimini iyileştirebilir. Örneğin, klavyeyle gezinme dönen gezinme ile aynı API'ler, Bu nedenle, söz konusu optimizasyonlar her iki form faktörü için de faydalı olabilir.
Pencere içe eklemeleri ve ekran kesikleriyle çalışma
Diğer form faktörlerinde olduğu gibi Android Automotive OS de durum ve gezinme çubukları gibi sistem kullanıcı arayüzü öğelerini ve dikdörtgen olmayan ekranlar için destek içerir.
Varsayılan olarak, uygulamalar sistem çubuklarıyla çakışmayan bir alan çizer veya ekran kesimleri vardır. Ancak uygulamanızın sistem çubuklarını gizlemesini, arkalarında içerik çizmesini veya Uygulamanızı pencere içlerinde düzenleyin bölümünde açıklandığı gibi ekranda bir kesitte içerik göstermesini isteyebilirsiniz. Eğer uygulamanız bunların herhangi birini yapıyorsa aşağıdaki alt bölümlere bakın Uygulamanızın Android Automotive OS ekosisteminde iyi çalışmasını sağlama cihazlar.
Sistem çubukları, yoğun içerik modu ve uçtan uca oluşturma
Araçlardaki sistem çubukları, diğer form faktörlerine göre farklı boyut ve konumlarda olabilir. Örneğin, gezinme çubukları sol tarafa, ekranın sağ veya alt tarafına dokunun. Üstte bir durum çubuğu ve altta bir gezinme çubuğu olsa bile (çoğu telefon ve tablette olduğu gibi), bu öğelerin boyutu arabalarda muhtemelen çok daha büyük olacaktır.
Ayrıca, Android Automotive OS, OEM'lerin aşağıdakileri yapıp yapmayacağını kontrol etmesine olanak tanır:
Uygulamalar, kapsamlı düzene girmek ve ekrandan çıkmak için sistem çubuklarını gösterebilir veya gizleyebilir
mod'u seçin. Örneğin, OEM'ler uygulamaların sistem çubuklarını gizlemesini engelleyerek klima kontrolleri gibi araç kontrollerinin ekranda her zaman erişilebilir olmasını sağlayabilir. Bir OEM, uygulamaların sistem çubuklarını kontrol etmesini engellediyse bir uygulama, sistem çubuklarını göstermek veya gizlemek için WindowInsetsController
(veya WindowInsetsControllerCompat
) API'lerini çağırdığında hiçbir şey olmaz. Uygulamanızın içe eklemeleri değiştirip değiştiremediğini nasıl algılayacağınız hakkında daha fazla bilgi edinmek için show
ve hide
dokümanlarına bakın.
Benzer şekilde, OEM'ler de uygulamaların rengi ayarlayıp ayarlayamayacağını sistem çubuklarının yarı saydamlığını ölçerek çubuk ve öğelerin içerdiği her zaman net bir şekilde görülebiliyor. Uygulamanız kenardan kenara çiziyorsa sistem çubuklarının arkasında yalnızca kritik olmayan içeriğin çizildiğinden emin olun. Cihaz OEM'si çubukların rengini veya saydamlığını ayarlamayı engelliyorsa bu içerik görünmeyebilir.
<!-- Depending on OEM configuration, these style declarations
(and the corresponding runtime calls) may be ignored -->
<style name="...">
<item name="android:statusBarColor">...</item>
<item name="android:navigationBarColor">...</item>
<item name="android:windowTranslucentStatus">...</item>
<item name="android:windowTranslucentNavigation">...</status>
</style>
Uygulamanız uçtan uca giderse boyutu, sayısı, boyutu ve boyutu hakkında varsayımlarda bulunmayın. sistem çubuklarının türü veya konumu. Bunun yerine, yerleşiminizi düzenlemek için pencere insets API'lerini kullanın. uygulamanızın içeriğini sistem çubuklarına göre ayarlayabilirsiniz. Bu API'lerin nasıl kullanılacağı hakkında daha fazla bilgi için Uygulamanızda içerikleri kenardan kenara görüntüleme başlıklı makaleyi inceleyin. Sabit kodlanmış dolgu değerleri hiçbir zaman önerilmez, içerik muhtemelen diğer cihazlarda güvenli alanda kalabilir olmaz.
Düzensiz şekilli ekranlara uyum sağlama
Bazı araçlarda dikdörtgen ekranlara ek olarak Şekil 1'de gösterildiği gibi düzensiz şekilli ekranlar da bulunabilir:
Uygulamanız uçtan uca oluşturmuyorsa bunun için herhangi bir işlem yapmanız gerekmez güvenli alanda oluşturmak için kullanılır.
Uygulamanız uçtan uca oluşturuluyorsa
ve ekran kesimlerine göre davranın. Bunu, uygulamanızın teması için android:windowLayoutInDisplayCutoutMode
özelliğini ayarlayarak veya çalışma zamanında pencerenin layoutInDisplayCutoutMode
özelliğini değiştirerek kaynaklardan yararlanarak yapabilirsiniz.
Android Automotive OS cihazlarındaki ekran kesiklerinin türleri mobil cihazlardaki kesiklerden farklı olduğundan, mobil cihazlardaki kesiklerle uyumlu şekilde optimize edilmiş davranışa sahip LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
veya LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
öğelerini kullanmayın. Bunun yerine, kesme noktasını her zaman atlamak veya her zaman girmek için LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
veya LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS
kullanın. İkinci seçeneği seçerken
Daha fazla bilgi için Destek ekran kesimleri başlıklı makaleyi inceleyin.
hakkında daha fazla bilgi edinin.
Uygulamanız, ekran kesimi alanında oluşturulursa ve bunu Android Automotive OS ve mobil arasında farklı davranış örnekleri vardır, bkz. Uygulamanız bu ayarı yapıyorsa yardım için özellikleri devre dışı bırakın davranışını daha iyi anlamak ve aşağıdaki durumlarda alternatif kaynaklar kullanmak için uygulaması, bu davranışı kaynak dosyaları kullanarak ayarlar.
Özellikleri devre dışı bırak
Mevcut bir mobil uygulamayı Android Automotive OS'te kullanıma sunuyorsanız belirli özellikler ve işlevler alakalı olmayabilir veya kullanılamayabilir. Örneğin, arabalar genellikle kameralara erişim sağlamaz. Ayrıca Android Automotive OS'te yalnızca Google Play Hizmetleri'nin bir alt kümesi kullanılabilir. Daha fazla bilgi için Arabalar için Google Play Hizmetleri başlıklı makaleyi inceleyin.
Uygulamanın Android Automotive OS'te çalışıp çalışmadığını tespit etmek için PackageManager.hasSystemFeature
API'sini kullanabilirsiniz. Bunun için aşağıdaki örnekte gösterildiği gibi FEATURE_AUTOMOTIVE
özelliğini kontrol edebilirsiniz:
Kotlin
val packageManager: PackageManager = ... // Get a PackageManager from a Context val isCar = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) if (isCar) { // Enable or disable a given feature }
Java
PackageManager packageManager = ... // Get a PackageManager from a Context boolean isCar = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) if (isCar) { // Enable or disable a given feature }
Alternatif olarak, uygulamanızda Android Auto bileşeni de varsa CarConnection API'yi Arabalar için Android uygulama kitaplığı ile uygulamanın Android Automotive OS veya Android Auto'da çalışıyorsa (veya bağlı değilse) arabaya sürebildi.
Pencere İçinde Pencere (PIP) için, en iyi uygulamalara ve buna uygun tepkiler verin.
Çevrimdışı senaryoları yönetme
Arabalar giderek daha fazla internete bağlansa da uygulamaların aşağıdaki durumlarda olduğu gibi, internet bağlantısı olmadan çalıştırmayı deneyin:
- Kullanıcılar, bir abonelik kapsamında sunulan mobil verileri devre dışı bırakabilir paketinden çıktı.
- Mobil verilere erişim bazı bölgelerde sınırlı olabilir.
- Kablosuz radyosu olan arabalar kablosuz menzilinin dışında olabilir veya bir OEM Mobil ağın tercih edilmesi için kablosuz bağlantıyı kapatın.
İnternet erişimine bağlı işlevleri (ör. çevrimdışı içerik sunarak) uygun şekilde azaltarak uygulamanızda bu senaryoları ele almaya hazır olun. Daha fazla bilgi için ağ bağlantısını optimize etmeyle ilgili en iyi uygulamalara bakın.
Alternatif kaynaklar kullanma
Uygulamanızın arabalara uygun hale getirilmesine yardımcı olmak için car
kaynak niteleyiciyi kullanarak şunları karşılayabilir:
alternatif kaynaklar
karar verebilirsiniz. Örneğin,
Depolanacak kaynakları boyutlandırma
dolgu değerlerini eklemek isterseniz, car
kaynağı için daha büyük bir değer kullanarak
daha geniş belirir.
Uygulamanızı dağıtma
Uygulamanızı kategorisine yönelik araç uygulaması kalite yönergelerine göre test ettikten ve kategorisine yönelik gerekli değişiklikleri içeren bir Android Automotive OS derlemesi oluşturduktan sonra Play Store'daki Automotive OS form faktörü kanallarında yayınlayabilirsiniz. Arabalar için Android uygulamalarını dağıtma başlıklı makaleye bakın. ziyaret edin.
Park edilmiş uygulamalarla ilgili geri bildirimde bulunma
Park edilmiş uygulamanızı geliştirirken bir sorunla karşılaşırsanız veya özellik isteğinde bulunursanız Android Automotive OS için bu uygulamayı kullanarak bildirebilirsiniz. Google Sorun Takip Aracı. Sorun şablonunda istenen tüm bilgileri doldurduğunuzdan emin olun. Şu tarihten önce: yeni bir sorun oluşturduktan sonra, sorunun sorunlar listesinde zaten bildirilip bildirilmediğini kontrol edin. İzleyicideki bir sorunun yıldızını tıklayarak sorunlara abone olabilir ve oy verebilirsiniz. Daha fazla bilgi için Bir soruna abone olma başlıklı makaleyi inceleyin.