Menambahkan dukungan untuk Android Automotive OS ke aplikasi Anda

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Android Automotive OS memungkinkan pengguna menginstal aplikasi di mobil. Supaya menjangkau pengguna di platform ini, Anda perlu mendistribusikan aplikasi yang dioptimalkan bagi pengemudi yang kompatibel dengan Android Automotive OS. Hampir semua kode dan resource di aplikasi Android Auto bisa Anda gunakan kembali, tetapi Anda harus membuat build terpisah yang memenuhi persyaratan yang dijelaskan di halaman ini.

Untuk menjalankan aplikasi mobil di Android Automotive OS, Anda memerlukan Host Template terbaru, yang disertakan sebagai aplikasi sistem.

Ringkasan pengembangan

Menambahkan dukungan Android Automotive OS hanya memerlukan beberapa langkah, seperti dijelaskan di halaman ini:

  1. Membuat modul otomotif
  2. Mendeklarasikan dukungan untuk Android Automotive OS
  3. Mendeklarasikan CarAppService dan CarAppActivity
  4. Memperbarui dependensi Gradle Anda

Gunakan Android Studio Bumblebee atau yang lebih baru untuk memastikan bahwa semua fitur Automotive OS diaktifkan.

Membuat modul otomotif

Beberapa komponen Android Automotive OS, seperti manifes, memiliki persyaratan khusus platform. Buat modul yang dapat menjaga keterpisahan kode untuk komponen-komponen ini dari kode lain dalam project Anda, seperti kode yang digunakan untuk aplikasi ponsel.

Untuk project yang sudah ada, ikuti langkah-langkah berikut untuk menambahkan modul otomotif ke project:

  1. Di Android Studio, klik File > New > New Module.
  2. Pilih Automotive Module, lalu klik Next.
  3. Berikan nama Aplikasi/Library. Nama ini akan dilihat pengguna aplikasi Anda di Android Automotive OS.
  4. Masukkan Nama modul.
  5. Ubah Nama paket agar cocok dengan aplikasi yang ada.
  6. Pilih API 29: Android 10 (Q) untuk Minimum SDK, lalu klik Next. Semua mobil yang mendukung Library Aplikasi Mobil di Android Automotive OS berjalan di Android 10 API level 29 atau lebih baru, sehingga memilih nilai ini akan menargetkan semua mobil yang kompatibel.

  7. Pilih Add No Activity, lalu klik Finish.

Jika Anda memulai project baru:

  1. Di Android Studio, klik File > New > New Project.
  2. Pilih Automotive untuk Project Type.
  3. Pilih No Activity, lalu klik Next.
  4. Berikan Nama untuk project. Nama ini akan dilihat pengguna aplikasi Anda di Android Automotive OS.
  5. Masukkan Nama paket. Lihat bagian Package names untuk detail selengkapnya tentang memilih nama paket.
  6. Pilih API 29: Android 10 (Q) untuk Minimum SDK, lalu klik Next.

    Semua mobil yang mendukung Library Aplikasi Mobil di Android Automotive OS berjalan di Android 10 API level 29 atau lebih baru, sehingga memilih nilai ini akan menargetkan semua mobil yang kompatibel.

Setelah membuat modul di Android Studio, buka file AndroidManifest.xml di modul otomotif baru Anda:

<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>

Elemen application memiliki beberapa informasi aplikasi standar serta elemen uses-feature yang mendeklarasikan dukungan untuk Android Automotive OS. Perhatikan juga bahwa tidak ada aktivitas yang dideklarasikan dalam manifes.

Berikutnya, tambahkan elemen uses-feature berikut ke manifes Anda:

<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>

Elemen uses-feature pertama mendeklarasikan bahwa aplikasi Anda menggunakan Templates Host agar berjalan. Menyetel dengan jelas empat elemen uses-feature yang tersisa ke required="false" akan memastikan aplikasi Anda tidak akan bentrok dengan fitur hardware yang tersedia di perangkat Android Automotive OS.

Mendeklarasikan dukungan untuk Android Automotive OS

Gunakan entri manifes berikut untuk mendeklarasikan bahwa aplikasi Anda mendukung Android Automotive OS:

<application>
    ...
    <meta-data android:name="com.android.automotive"
        android:resource="@xml/automotive_app_desc"/>
    ...
</application>

Entri manifes ini merujuk ke sebuah file XML yang mendeklarasikan kemampuan otomotif yang didukung aplikasi Anda.

Untuk menunjukkan bahwa Anda memiliki aplikasi Library Aplikasi Mobil, tambahkan file XML dengan nama automotive_app_desc.xml ke direktori res/xml/ di modul Android Automotive OS Anda. File ini harus mencakup konten berikut:

<automotiveApp>
    <uses name="template"/>
</automotiveApp>

Mendeklarasikan CarAppService dan CarAppActivity

Android Automotive OS menggunakan implementasi CarAppService dan deklarasi CarAppActivity untuk meluncurkan aplikasi Anda. Buka Membuat CarAppService dan Sesi Anda dan Mendeklarasikan CarAppService untuk instruksi mengenai mengimplementasikan dan mendeklarasikan CarAppService.

Di Android Automotive OS, Screen dirender pada Activity yang disertakan dalam Library Aplikasi Mobil. Namun, Anda harus mendeklarasikannya dalam manifes dengan elemen activity berikut:

<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>

Memperbarui dependensi Gradle Anda

Sebaiknya Anda menempatkan CarAppService dalam modul terpisah yang Anda gunakan bersama dengan aplikasi ponsel dan modul otomotif. Jika menggunakan pendekatan ini, Anda harus mengupdate modul otomotif untuk menyertakan modul bersama, seperti yang ditampilkan dalam cuplikan berikut:

my-automotive-os-module/build.gradle

Groovy

buildscript {
    ...
    dependencies {
        ...
        implementation project(':shared_module_name')
    }
}

Kotlin

buildscript {
    ...
    dependencies {
        ...
        implementation(project(":shared_module_name"))
    }
}

Pertimbangan Lainnya

Ingatlah selalu hal-hal berikut ini saat mengembangkan aplikasi Android Automotive OS:

Nama paket

Karena mendistribusikan Android Package Kit (APK) terpisah untuk Android Automotive OS, Anda dapat menggunakan kembali nama paket dari aplikasi seluler atau membuat nama paket baru. Jika Anda menggunakan nama paket yang berbeda, aplikasi Anda memiliki dua listingan Play Store terpisah. Jika Anda menggunakan kembali nama paket saat ini, aplikasi Anda memiliki satu listingan di kedua platform.

Terutama untuk keputusan bisnis. Misalnya, jika Anda memiliki satu tim yang sedang mengerjakan aplikasi seluler dan tim yang terpisah yang bekerja di aplikasi Android Automotive OS, masuk akal untuk memiliki nama paket yang terpisah dan membiarkan setiap tim mengelola listingan Play Store-nya sendiri. Tidak ada perbedaan besar dalam upaya teknis yang diperlukan untuk menggunakan salah satu pendekatan tersebut.

Tabel berikut merangkum beberapa perbedaan utama lainnya antara menyimpan nama paket saat ini atau menggunakan nama paket baru:

Fitur Nama paket yang sama Nama paket baru
Listingan toko Satu Beberapa
Penginstalan yang dicerminkan Ya: instal ulang aplikasi cepat selama wizard penyiapan Tidak
Proses Peninjauan Play Store Memblokir ulasan: jika ulasan gagal untuk satu APK, APK lain yang dikirimkan dalam rilis yang sama akan diblokir Ulasan individual
Statistik, metrik, dan vitals Gabungan: Anda dapat memfilter menurut nama perangkat untuk data khusus otomotif. Pisahkan
Pengindeksan dan peringkat penelusuran Bangun dari reputasi saat ini Tidak ada sisa
Mengintegrasikan dengan aplikasi lain Kemungkinan besar tidak diperlukan perubahan, dengan asumsi kode media dibagi di antara kedua APK Mungkin harus memperbarui aplikasi yang sesuai, seperti untuk pemutaran URI dengan Asisten Google

Konten offline

Jika memungkinkan, implementasikan dukungan offline di aplikasi Anda. Mobil dengan Android Automotive OS diharapkan memiliki konektivitas datanya sendiri, yang berarti paket data disertakan dalam biaya kendaraan atau dibayar oleh pengguna. Namun, mobil juga diharapkan memiliki konektivitas yang lebih bervariasi daripada perangkat seluler.

Berikut beberapa hal yang perlu diperhatikan saat Anda mempertimbangkan strategi dukungan offline:

  • Waktu terbaik untuk mendownload konten adalah saat aplikasi Anda sedang digunakan.
  • Jangan berasumsi bahwa Wi-Fi tersedia. Mobil mungkin tidak pernah masuk ke dalam jangkauan Wi-Fi, atau Pabrikan Peralatan Asli (OEM) mungkin telah menonaktifkan Wi-Fi dan mengutamakan jaringan seluler.
  • Meskipun Anda mengharapkan pengguna memakai konten yang di-cache dengan cepat, sebaiknya Anda memungkinkan pengguna mengubah perilaku ini.
  • Kapasitas disk di mobil bervariasi, jadi beri pengguna cara untuk menghapus konten offline.

Pertanyaan umum (FAQ)

Lihat bagian berikut untuk jawaban atas beberapa pertanyaan umum tentang Android Automotive OS.

Apakah ada batasan atau rekomendasi untuk menggunakan SDK dan library pihak ketiga?

Tidak ada panduan khusus tentang penggunaan SDK dan library pihak ketiga. Jika memilih untuk menggunakan SDK dan library pihak ketiga, Anda tetap bertanggung jawab untuk mematuhi semua persyaratan kualitas aplikasi mobil.

Bagaimana cara memublikasikan aplikasi Android Automotive OS menggunakan Konsol Google Play?

Proses publikasi aplikasi mirip dengan memublikasikan aplikasi ponsel, tetapi Anda menggunakan faktor bentuk yang berbeda. Untuk mengikutsertakan aplikasi Anda menggunakan jenis rilis Android Automotive OS, ikuti langkah-langkah berikut:

  1. Buka Konsol Play.
  2. Pilih aplikasi Anda.
  3. Dari menu sebelah kiri, pilih Rilis > Penyiapan > Setelan lanjutan > Jenis rilis.
  4. Pilih Tambahkan jenis rilis > Android Automotive OS, lalu ikuti petunjuk di Konsol Play.

Pemecahan masalah

Lihat bagian berikut untuk bantuan dengan beberapa skenario pemecahan masalah umum di Android Automotive OS.

  • Meskipun sudah meng-uninstal aplikasi Library Aplikasi Mobil dari setelan sistem, saya mendapatkan error saat mencoba menginstal versi baru.

    Untuk memastikan aplikasi di-uninstal, gunakan perintah adb uninstall app.package.name.