Android Automotive OS için park edilmiş uygulamalar derleme

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:

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:

Sağ tarafı kavisli bir ekrana sahip Android Automotive OS cihazın şeması.
Şekil 1: Android Automotive OS cihaz eğimli hale geldi. Yeşil alan, eğrinin ekrandaki kesiğinin sınır kutusuyla çakışmayan güvenli dikdörtgendir.

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.

Yeni sayı oluştur