Android Automotive OS, kullanıcıların arabaya uygulama yüklemesine olanak tanır. Şu kullanıcıya ulaşmak için: bu platformda kullanıyorsanız, hem Android hem de iOS için optimize edilmiş Android Automotive OS ile uyumludur. Kodun hemen hemen tamamını yeniden kullanarak İYS'nizi kullanabilirsiniz, ancak bu sanal makineyi kullanan bu sayfada açıklanan şartlara uygun olmalıdır.
başlıklı makalede bulabilirsiniz.Android Automotive OS'te araba uygulamanızı çalıştırmak için en yeni sürüme ihtiyacınız var Sistem uygulaması olarak sunulan Şablonları Barındırıcısı.
Geliştirmeye genel bakış
Android Automotive OS desteğini eklemek için yalnızca birkaç adım gerekiyor. bu sayfadaki bölümlerde açıklanmıştır:
- Otomotiv modülü oluşturma
- Android Automotive OS için destek beyanı
CarAppService
veCarAppActivity
özelliklerini beyan edin- Gradle bağımlılıklarınızı güncelleme
Android Studio Bumblebee veya daha yeni bir sürümü kullandığınızdan emin olmak için tüm Automotive OS özelliklerinin etkinleştirildiğinden emin olun.
Otomotiv modülü oluşturun
Android Automotive OS'in bazı bileşenleri (ör. manifest dosyası) platforma özgü koşullar. Projenin gidişatı boyunca projenizdeki diğer kodlardan (örneğin, telefon uygulamanız için kullanılan kod.
Mevcut bir proje için aşağıdaki adımları uygulayarak proje:
- Android Studio'da Dosya > Yeni > Yeni Modül.
- Otomotiv Modülü'nü seçip İleri'yi tıklayın.
- Uygulama/Kitaplık adı girin. Bu, kullanıcıların Android Automotive OS'teki uygulamanız.
- Modül adı girin.
- Paket adı'nı mevcut uygulamanızla eşleşecek şekilde düzenleyin.
Minimum SDK olarak API 29: Android 10 (Q)'yu seçin, ardından Sonraki'ye dokunun. Android Automotive OS'te Araba Uygulaması Kitaplığı'nı destekleyen tüm arabalar şu cihazda çalışır: Android 10 API düzeyi 29 veya sonraki sürümleri. Bu değer seçildiğinde tüm reklamlar hedeflenir arabalarla uyumlu olabilir.
Etkinlik Ekleme Yok'u seçin ve ardından Son'u tıklayın.
Yeni bir projeye başlıyorsanız:
- Android Studio'da Dosya > Yeni > Yeni Proje.
- Proje Türü olarak Otomotiv'i seçin.
- Etkinlik Yok'u seçin, ardından İleri'yi tıklayın.
- Projeniz için bir ad girin. Bu, kullanıcıların Android Automotive OS'teki uygulama.
- Paket adı girin. Paket adları bölümünü inceleyin ziyaret edin.
Minimum SDK olarak API 29: Android 10 (Q)'yu seçin, ardından Sonraki'ye dokunun.
Android Automotive OS'te Araba Uygulaması Kitaplığı'nı destekleyen tüm arabalar şu cihazda çalışır: Android 10 API düzeyi 29 veya sonraki sürümleri. Bu değer seçildiğinde tüm reklamlar hedeflenir arabalarla uyumlu olabilir.
Android Studio'da modülünüzü oluşturduktan sonra AndroidManifest.xml
dosyasını yükleyin:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.car.app">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme" />
<uses-feature
android:name="android.hardware.type.automotive"
android:required="true" />
</manifest>
application
öğesinde
standart uygulama bilgilerinin yanı sıra uses-feature
öğesi. Burada
manifest dosyasında bildirilen hiçbir etkinlik değil.
Daha sonra, aşağıdaki uses-feature
öğelerini manifest dosyanıza ekleyin:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.car.app"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme" /> <uses-feature android:name="android.hardware.type.automotive" android:required="true" /> <uses-feature android:name="android.software.car.templates_host" android:required="true" /> <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" /> <uses-feature android:name="android.hardware.camera" android:required="false" /> </manifest>
İlk uses-feature
öğe, uygulamanızın Şablon Ana Makinesi'ni kullandığını belirtiyor
gerekir. Kalan dört uses-feature
öğesini açıkça
required="false"
, uygulamanızın mevcut donanım özellikleriyle çakışmamasını sağlar.
Android Automotive OS cihazlarda görebilirsiniz.
Gradle bağımlılıklarınızı güncelleme
Otomotiv modülünüzün içinde hem kendi
androidx.car.app:app-automotive
yapı,
uygulamanızın çalışması için gereken CarAppActivity
uygulamasını içerir
Android Automotive OS'te.
Uygulamanızı hem Android Auto hem de Android'i destekleyecek şekilde geliştiriyorsanız
Automotive OS için CarAppService
cihazınızı ayrı bir yerde saklamanızı öneririz
modülünü kullanabilirsiniz. Şu durumda:
Bu yaklaşımı kullandığınızda, otomotiv modülünüzü
Gradle'ın proje bağımlılıklarını kullanarak paylaşılan modül
gibi bir değer eklemeniz gerekir:
Eski
buildscript { ... dependencies { ... implementation "androidx.car.app:app-automotive:car_app_library_version" implementation project(':shared_module_name') } }
Kotlin
buildscript { ... dependencies { ... implementation("androidx.car.app:app-automotive:car_app_library_version") implementation(project(":shared_module_name")) } }
Android Automotive OS için destek beyan etme
Uygulamanızın desteklediğini beyan etmek için aşağıdaki manifest girişini kullanın: Android Automotive OS:
<application>
...
<meta-data android:name="com.android.automotive"
android:resource="@xml/automotive_app_desc"/>
...
</application>
Bu manifest girişi, otomotiv özellikleri de vurgular.
Araba Uygulama Kitaplığı uygulamanız olduğunu belirtmek için
automotive_app_desc.xml
adlı XML dosyasını şuradaki res/xml/
dizinine ekleyin:
Android Automotive OS modülünüz. Bu dosyada aşağıdaki içerikler bulunmalıdır:
<automotiveApp>
<uses name="template"/>
</automotiveApp>
CarAppService ve CarAppActivity seçeneklerini bildirme
Android Auto'da olduğu gibi Android Automotive OS de CarAppService
cihazınızı kullanır
pek çok yöntem vardır. Referans
CarAppService ve oturumunuzun oluşturulması
ve CarAppService hizmetinizi beyan edin
CarAppService
öğesini uygulama ve beyan etme talimatlarını inceleyin.
Android Auto'nun aksine, bunun yerine ek bir uygulama bileşeni eklemeniz gerekir.
CarAppActivity
, Android Automotive OS için giriş noktası olarak kullanılacak
uygulamasını indirin. Bu etkinliğin uygulanması
androidx.car.app:app-automotive
eserdir ve iletişimden sorumludur
ana makine uygulamasıyla değiştirin. Yalnızca
manifest dosyanızdaki bu etkinliğin bir örneği olmalı ve bu,
şöyle olur:
<activity android:exported="true" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:name="androidx.car.app.activity.CarAppActivity" android:launchMode="singleTask" android:label="Your app name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="distractionOptimized" android:value="true" /> </activity>
android:name
,CarAppActivity
öğesinin tam sınıf adına ayarlandıapp-automotive
yapıdan bir sınıf seçin.- Etkinliğin bir
android:exported
true
başka bir uygulamaya (yani başlatıcıya) izin vermez. android:launchMode
, kullanıcının aynı sayfaya dönebilmesi içinsingleTask
olarak ayarlandı Kullanıcı sayfadan ayrılırsa başlatıcıdan etkinliğin örneğini.android:theme
,@android:style/Theme.DeviceDefault.NoActionBar
olarak ayarlandı. uygulama, kullanılabilen tam ekran alanını kaplamalıdır.- Amaç filtresi, bunun uygulama için başlatıcı etkinliği olduğunu belirtir.
- OS'ye, uygulamanın şunları yapabileceğini belirten bir
<meta-data>
öğesi var: Kullanıcı deneyimi kısıtlamaları varken (ör. araç arabadayken) hareket ettirir.
Navigasyon uygulamaları için ek şartlar
Navigasyon uygulamaları için birkaç ayar daha vardır.
aşağıda gösterildiği gibi, CarAppActivity
için gerekli manifest girişleri
snippet:
<activity android:exported="true" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:name="androidx.car.app.activity.CarAppActivity" android:launchMode="singleTask" android:label="Your app name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <!-- Include the category below ONLY for navigation apps --> <category android:name="android.intent.category.APP_MAPS" /> </intent-filter> <!-- Include the intent-filter below ONLY for navigation apps --> <intent-filter> <action android:name="androidx.car.app.action.NAVIGATE" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="geo" /> </intent-filter> <meta-data android:name="distractionOptimized" android:value="true" /> </activity>
- Ek
android.intent.category.APP_MAPS
kategorisi, uygulamanızın kullanıcının konumunu gösterebileceği konusunda sisteme bilgi verir. androidx.car.app.action.NAVIGATE
intent filtresi, örtülü gezinme niyetini ele alırken uygulamanızı kullanma seçeneği. başka bir araba uygulaması var.
Dikkat edilmesi gereken diğer noktalar
Android Automotive'inizi geliştirirken bu diğer noktaları aklınızda bulundurun İşletim sistemi uygulaması:
Paket adları
Android Automotive OS için ayrı bir Android Package Kit (APK) dağıttığınızdan şunları yapabilirsiniz: mobil uygulamanızdaki paket adını yeniden kullanın veya yeni bir paket oluşturun dokunun. Farklı bir paket adı kullanırsanız uygulamanızın iki ayrı Play Store mağazası vardır inceleyebilirsiniz. Mevcut paket adınızı yeniden kullanırsanız uygulamanızın her iki platformda da tek bir liste oluşturabilirsiniz.
Bu, genel olarak işle ilgili bir karardır. Örneğin üzerinde çalışan bir ekibiniz varsa mobil uygulamanız ve Android Automotive'iniz üzerinde çalışan ayrı bir ekip işletim sistemi uygulaması kullanıyorsanız ayrı paket adlarına sahip olmak ve her birinin ekibinin kendi Play mağaza girişini yönetmesine izin veriyoruz. Önceki videoda çok büyük bir teknik çabayı göstermeniz gerekir.
Aşağıdaki tabloda, mevcut paketinizi kullanmaya devam etme ile ilgili diğer bazı önemli farklar özetlenmiştir. veya yeni bir paket adı kullanarak:
Özellik | Aynı paket adı | Yeni paket adı |
---|---|---|
Mağaza girişi | Tek | Birden çok |
Yansıtılmış yükleme | Evet: Kurulum sihirbazı sırasında uygulamanın hızlı bir şekilde yeniden yüklenmesi | Hayır |
Play Store inceleme süreci | Yorumları engelleme: İnceleme bir APK için başarısız olursa diğer APK'lar aynı sürümde gönderilenler engellendi | Bireysel yorumlar |
İstatistikler, metrikler ve kritik değerler | Birleşik: Otomotiv alanına özel ürünler için cihaz adına göre filtreleme yapabilirsiniz. verileri. | Ayır |
Dizine ekleme ve arama sıralaması | Mevcut durumu geliştirme | Devretme yok |
Diğer uygulamalarla entegrasyon | Medya kodunun iki APK arasında paylaşıldığı varsayıldığında, büyük olasılıkla herhangi bir değişiklik gerekmez | İlgili uygulamayı güncellemeniz gerekebilir (örneğin, Google Asistan'la URI oynatma için) |
Çevrimdışı içerik
Varsa uygulamanızda çevrimdışı desteği uygulayın. Android Automotive'e sahip arabalar İşletim sisteminin kendi veri bağlantısına sahip olması beklenir. Bu da Veri planı, aracın maliyetine dahil edilmiş veya ücreti kullanıcı tarafından ödenmiş olmalıdır. Ancak, arabaların mobil cihazlara göre daha değişken bağlantıya sahip olması da bekleniyor.
Çevrimdışı desteğinizi değerlendirirken aklınızda bulundurmanız gereken birkaç nokta: strateji:
- İçerik indirmek için en iyi zaman, uygulamanızın kullanım sırasındadır.
- Kablosuz bağlantının bulunduğunu varsaymayın. Bir araba hiç kablosuz kapsama alanına girmeyebilir, Özgün donanım üreticisi (OEM), kablosuz ağı devre dışı bırakarak hücresel ağ kullanmaya karar vermiş olabilir.
- Kullanıcıların kullanmasını beklediğiniz içeriği akıllı olarak önbelleğe almak kullanıcının bu davranışı değiştirmesine izin vermenizi öneririz.
- Arabalardaki disk alanı değişiklik gösterir, bu nedenle kullanıcılara silecekleri için bir yol sunun çevrimdışı içerik.
Sık sorulan sorular
Hakkında sık sorulan bazı soruların yanıtları için aşağıdaki bölümlere bakın Android Automotive OS.
Üçüncü taraf SDK'larının ve kitaplıklarının kullanımıyla ilgili herhangi bir kısıtlama veya öneri var mı?
Üçüncü taraf SDK'larının ve kitaplıklarının kullanımıyla ilgili belirli bir yönergeler yoktur. Üçüncü taraf SDK'ları ve kitaplıklarını kullanmayı tercih etseniz bile sorumluluk size aittir tüm araba uygulaması kalite şartlarına uymaya yardımcı olur.
Android Automotive OS uygulamamı Google Play Console'u kullanarak nasıl yayınlarım?
Uygulama yayınlama süreci bir telefon uygulaması yayınlamaya benzer, ancak farklı bir biçim faktörü. Uygulamanızda Android Automotive'i etkinleştirmek için İşletim sistemi sürüm türü, aşağıdaki adımları uygulayın:
- Play Console'u açın.
- Uygulamanızı seçin.
- Soldaki menüden Sürüm > Kurulum > Gelişmiş ayarlar > Biçim etmenleri inceleyin.
- Form faktörü ekle > Android Automotive OS'e gidin, ardından aşağıdaki adımları uygulayın. talimatları uygulayın.
Sorun giderme
Sık karşılaşılan bazı sorun giderme senaryolarıyla ilgili yardım için aşağıdakilere bakın Android Automotive OS'te.
Bir Araba Uygulaması Kitaplığı uygulamasını sistem ayarlarından kaldırdıktan sonra bile Yeni bir sürümü yüklemeye çalışırken hata alıyorum.
Uygulamanın kaldırıldığından emin olmak için şu komutu kullanın:
adb uninstall app.package.name