Pustaka Aplikasi Android untuk Mobil kini menjadi bagian dari Jetpack.
Migrasi ke Jetpack memberikan sejumlah manfaat, termasuk memberi Anda visibilitas
yang lebih besar dalam pengembangan fitur kami, dan memberikan konsistensi API
dengan library Jetpack lainnya.
Sebagai bagian dari perpindahan ini ke Jetpack, kami telah membuat sejumlah perubahan pada API agar
konsisten dengan ekosistem Android lainnya. Untuk membantu Anda memigrasikan
aplikasi apa pun yang telah dibuat dengan versi Library
Car App sumber tertutup, kami telah menyusun panduan ini, yang menjelaskan perubahan secara mendetail dan
memberikan petunjuk untuk memigrasikan aplikasi Anda ke library baru.
Perubahan AndroidManifest
Pada AndroidManifest.xml aplikasi Anda, ganti instance library sumber tertutup
berikut dengan library Jetpack yang setara, jika ada:
Namespace library telah diubah dari com.google.android.libraries.car.app menjadi androidx.car.app.
Ganti semua impor library Anda dari com.google.android.libraries.car.app.* menjadi androidx.car.app.*
CarAppService dan Sesi
Kami telah memutus siklus proses koneksi host ke aplikasi Anda dari
CarAppService ke class
Session baru. Logika pembuatan CarContext
dan Screen kini telah
dipindahkan ke Session.
Salah satu titik masuk utama ke aplikasi Anda, CarAppService#onCreateScreen(Intent)
telah diganti dengan CarAppService.onCreateSession.
Pada dasarnya, sejumlah metode yang sebelumnya di CarAppService sekarang
berada di class Session. Lihat tabel berikut untuk ringkasan dan
dokumentasi tingkat class Session
untuk detail selengkapnya.
Dalam bentuk yang paling sederhana, aplikasi Anda dapat menampilkan instance Session seperti itu jika
aplikasi Anda tidak memiliki logika yang berhubungan dengan siklus proses koneksi:
@Override
@NonNull
public Session onCreateSession() {
return new Session() {
@Override
@NonNull
public Screen onCreateScreen(@Nullable Intent intent) {
return new HelloWorldScreen(getCarContext());
}
};
}
Konstruktor Builder
Kami beralih dari model yang memungkinkan kami menyediakan builder statis untuk membuat
berbagai objek data. Sebaliknya, kami menampilkan konstruktor builder sebagai metode
publik secara langsung. Contoh:
Pane.Builder paneBuilder = Pane.builder();
telah menjadi:
Pane.Builder paneBuilder = new Pane.Builder();
Kemampuan Penggunaan Kembali Builder
Kami akan beralih dari model yang secara eksplisit mendukung builder untuk
digunakan kembali. Metode builder yang memungkinkan aplikasi Anda menghapus beberapa data yang ditetapkan sebelumnya
tidak lagi tersedia. Misalnya, metode berikut (dan metode lainnya yang jelas*)
telah dihapus:
ActionStrip.Builder.clearActions()
GridItem dan GridTemplate baru
Koleksi Jetpack dilengkapi dengan GridTemplate baru
yang menyajikan daftar GridItem
dalam format petak. Untuk detail dan penggunaan, lihat dokumentasi
GridTemplate.
Validasi host
Kami telah menambahkan mekanisme untuk memungkinkan aplikasi Anda memvalidasi bahwa koneksi host
berasal dari sumber tepercaya (misalnya, Android Auto dan Android Automotive OS).
Contoh implementasi untuk metode CarAppService.createHostValidator
abstrak adalah sebagai berikut:
@Override
public HostValidator createHostValidator() {
if ((getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0) {
return HostValidator.ALLOW_ALL_HOSTS_VALIDATOR;
} else {
return new HostValidator.Builder(getApplicationContext())
.addAllowedHosts(androidx.car.app.R.array.hosts_allowlist_sample)
.build();
}
}
Tabel berikut menyoroti perubahan lainnya yang telah kami lakukan di seluruh
library (seperti mengganti nama API yang ada atau menambahkan API tambahan). Perhatikan bahwa
daftar ini tidak lengkap tetapi memberikan insight ke kategori perubahan
yang telah kami lakukan pada library.
static int TYPE_ROUNDABOUT_ENTER_CW static int TYPE_ROUNDABOUT_EXIT_CW static int TYPE_ROUNDABOUT_ENTER_CCW static int TYPE_ROUNDABOUT_EXIT_CCW static int TYPE_FERRY_BOAT_LEFT static int TYPE_FERRY_BOAT_RIGHT static int TYPE_FERRY_TRAIN_LEFT static int TYPE_FERRY_TRAIN_RIGHT
Dihapus
static int TYPE_ROUNDABOUT_ENTER static int TYPE_ROUNDABOUT_EXIT
Library pengujian belum tersedia dalam rilis beta pertama. Bagian dari
fungsi library pengujian yang ditawarkan untuk mengakses kolom yang ditetapkan dalam model
melalui class pembuatnya kini tersedia melalui pengambil
model itu sendiri. Fungsi pengujian lainnya akan tersedia saat
library pengujian dirilis sebagai bagian dari Jetpack dalam waktu dekat.
Konten dan contoh kode di halaman ini tunduk pada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.