Android Auto SDK ve Android Auto Host Nasıl Çalışır ve Geliştirmeye Nasıl Başlanır
Android Auto SDK, otomobil ekranında görüntülenmek ve kontrol edilmek üzere uygulamalar (medya, navigasyon, mesajlaşma) oluşturmanızı sağlar; Android Auto Host ise otomobil üreticilerinin bu uygulamaları çalıştırıp render etmeleri için kullanılan bir kütüphanedir. Aşağıda, başlangıç için kompakt ve pratik bir plan bulacaksınız.
SDK ve Host Nedir — Temel Fark
- Android Auto SDK (Car App Library), araç uyumlu uygulamalar geliştirmek için API'ler ve şablonlar sunar: Medya, Navigasyon, Konuşma ve diğerleri. Şablonlar, sürücünün dikkatini dağıtmayı en aza indirmek için kullanıcı arayüzünü kısıtlar ve hazır kontrol öğeleri (MediaSession, şablonlar) sağlar.
- Android Auto Host, OEM/gömülü sistemler için bir bileşendir: Uygulamalardan içerik alır, arayüzü render eder, girişi işler ve sistem kısıtlamalarını (hız, sürüş modu) yönetir. Sistem akıllı telefon olmadan çalışıyorsa (yerel host) host gereklidir.
Medya uygulamasıyla başlayın — en kolay yol: hazır şablonlar ve durum kısıtlamaları daha az.
Sistem Gereksinimleri ve Gerekli Bağımlılıklar
- Android Studio 2023+; Android Gradle Plugin 8.0+; Target SDK 34+ (Android 14) önerilir.
- Uygulama geliştirmek için:
- bağımlılık: com.google.android.libraries.car.app:car-app:1.4.0 (örnek sürüm).
- Test: Desktop Head Unit (DHU) ve üreticinin gerçek head unit'i/emülatörü.
- Host için:
- bağımlılık: androidx.car.app:app-hosting:1.1.0 (örnek).
- Hedef platform: Cihazda Android 10+, özel izinler (örneğin, android.car.permission.CAR_SPEED) ve render desteği.
- Doğrulama prosedürü: Android Auto için uygulama yayınlarken güvenlik ve UI kuralları kontrol edilir (genellikle birkaç gün sürer).
Android Auto SDK ile Hızlı Adım Adım Başlangıç
- Android Studio'da bir proje oluşturun (Empty Activity).
- build.gradle (app) dosyasına ekleyin:
implementation "com.google.android.libraries.car.app:car-app:1.4.0"
- Uygulamayı AndroidManifest.xml içinde kaydedin (medya uygulaması örneği):
<activity android:name=".MyCarApp" android:exported="true" android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="androidx.car.app.CarAppCategory.MEDIA" />
</intent-filter>
</activity>
- Screen ve Template'i uygulayın (Kotlin):
class MediaScreen(carContext: CarContext) : Screen(carContext) {
override fun onGetTemplate(): Template {
return PaneTemplate.Builder(
Pane.Builder()
.addRow(Row.Builder().setTitle("Çalma Listem").build())
.build()
).setHeaderAction(Action.APP_ICON).build()
}
}
- Önce DHU üzerinde, ardından gerçek head unit üzerinde test edin; DHU ~%20 hatayı yakalamaz — her iki seçeneği de kontrol edin.
- Android Auto gereksinimlerine göre doğrulama, test ve sertifikasyon için APK'yı hazırlayın.
UI, 2 saniyeden fazla görsel dikkat gerektirmemelidir; kural ihlali kontrol sırasında reddedilmeye neden olur.
Android Auto Host Kurulumu (Kısaca)
- Host bağımlılığını ekleyin ve AppHostingActivity'den türetilen bir HostActivity oluşturun.
- Render ve oturum yönetimi için callback'leri geçersiz kılın.
- Gerçek araçta/üretici emülatöründe entegrasyon testlerini tamamlayın ve sertifikasyon için başvurun.
Sık Yapılan Hatalar
- Intent filtrelerinin veya CarAppCategory kategorisinin atlanması — uygulama host tarafından bulunamaz.
- Sadece DHU üzerinde test yapılması — gerçek donanımdaki hatalar fark edilmez.
- Şablonlar yerine özel view'ların kullanılması — yüksek reddedilme olasılığı.
- Telemetriye erişim için yanlış izinlerin ayarlanması (hız, sensörler).
SSS
- Uygulama geliştirmek için OEM host'a erişim gerekli mi?
- Hayır: Uygulama DHU üzerinde geliştirilebilir ve test edilebilir; tam test için gerçek head unit gerekir.
- İlk sürüm için hangi karmaşıklık seviyesi seçilmeli?
- Medya uygulamasıyla başlayın: basit mantık, minimum ekran, hızlı test döngüsü.
- Sertifikasyon ne kadar sürer?
- Kontrol genellikle birkaç gün sürer, ancak değişikliklerin kapsamına ve gereksinimlere uygunluğa bağlıdır.
Başlamaya hazır mısınız? Birkaç saat içinde minimal bir prototip oluşturun: bağımlılığı ekleyin, bir Screen uygulayın ve DHU üzerinde çalıştırın — bu, temel kısıtlamaları anlamanızı sağlayacak ve sonraki geliştirmeyi hızlandıracaktır.