Nama paket layanan ditentukan dalam hierarki.
Setiap VM (diidentifikasi berdasarkan nama VM) adalah satu deployment sistem operasi profil SDV Core.
Setiap paket (diidentifikasi berdasarkan nama paket) dapat berisi beberapa paket layanan.
Setiap paket layanan (diidentifikasi berdasarkan nama paket layanan) dapat di-instance beberapa kali di VM yang sama.
Setiap instance paket layanan diidentifikasi berdasarkan nama instance paket layanan yang ditetapkan pada waktu pemuatan.
Nama VM SDV
Nama VM adalah ID nama unik yang dilampirkan ke setiap deployment profil SDV Core seperti yang ditentukan dalam Konfigurasi VM Kendaraan (vvmconfig). Nama VM digunakan dalam penamaan sebagai pemisahan logis layanan di sepanjang batas VM dalam kendaraan. Contohnya mencakup:
cdcmechatronicspcutelematics-unit
Batasan penamaan ini berlaku.
- Nama VM harus diawali dengan huruf
[a-z] - Nama VM tidak boleh diakhiri dengan tanda hubung
- Nama VM tidak boleh melebihi 31 karakter
- Semua karakter harus berupa alfanumerik huruf kecil atau tanda hubung
[a-z0-9\-] - Tanda hubung dalam nama tidak boleh muncul berturut-turut lebih dari sekali
Nama VM diverifikasi agar unik selama waktu kompilasi (analisis statis) dan booting sistem saat vvmconfig dimuat.
Error tingkat booting terjadi jika validasi pada waktu booting gagal.
Nama paket SDV
Mirip dengan Android standar, nama paket SDV secara unik mengidentifikasi paket yang di-deploy di sistem. APEX unik harus disediakan untuk setiap nama paket. Contoh:
com.android.sdv.datatunnelcom.android.sdv.sample.datatunnelcom.yourcompany.sdv.adas
Batasan berikut berlaku:
- Semua APEX SDV milik partner harus diawali dengan
com.<companyname>.sdv.(com.android.sdv.dicadangkan untuk APEX SDV milik Google). - Semua karakter harus berupa alfanumerik atau garis bawah,
[a-z0-9_]. - Nama paket harus berisi minimal empat segmen yang dibatasi oleh titik.
- Nama paket tidak boleh diakhiri dengan titik.
- Nama paket tidak boleh melebihi 127 karakter.
- Setiap segmen harus diawali dengan huruf.
- Tidak ada segmen yang dapat memiliki garis bawah berturut-turut,
__. - Tidak ada segmen yang dapat diakhiri dengan garis bawah,
_. - Segmen tidak boleh kosong (tidak ada titik berturut-turut).
Nama paket layanan
Mirip dengan Android standar, setiap paket layanan memiliki nama yang dapat dibaca manusia, yang diberi namespace dalam nama paket yang menjadi tempatnya. Contoh:
SomeServiceImportantService
Batasan penamaan ini berlaku:
- Nama paket layanan HARUS diawali dengan huruf kapital
- Nama paket layanan TIDAK BOLEH kosong
- Nama paket layanan TIDAK BOLEH melebihi 47 karakter
- Nama paket layanan TIDAK BOLEH memiliki garis bawah berturut-turut,
__ - Nama paket layanan TIDAK BOLEH diawali atau diakhiri dengan garis bawah,
_ - Semua karakter HARUS berupa alfanumerik atau garis bawah,
[A-Za-z0-9_]
Nama instance paket layanan
Tidak seperti aplikasi Android standar, paket layanan di AAOS SDV dapat diinstal dan dimuat beberapa kali di VM yang sama. Akibatnya, paket layanan yang sama dapat memiliki beberapa instance yang berjalan dalam VM SDV AAOS yang sama. Instance ini diberi nama instance paket layanan yang dapat dibaca manusia. Contoh:
front-leftfront-rightmainclientsubscriber
Batasan ini berlaku:
Nama instance harus:
- Diawali dengan huruf
[a-z] - Tidak diakhiri dengan tanda hubung
- Tidak melebihi 47 karakter
- Unik di VM yang sama untuk layanan yang sama
- Diawali dengan huruf
Semua karakter harus berupa alfanumerik huruf kecil atau tanda hubung
[a-z0-9\-]Tanda hubung tidak boleh muncul berturut-turut
Setiap instance layanan harus memiliki Nama instance yang unik (disediakan atau dibuat saat layanan dimulai).
Nama instance paket layanan yang sepenuhnya memenuhi syarat (FQIN)
Nama VM SDV, nama paket, nama paket layanan, dan nama instance paket layanan digabungkan menjadi nama instance paket layanan yang sepenuhnya memenuhi syarat (FQIN). FQIN secara unik mengidentifikasi instance paket layanan di seluruh kendaraan.
Beberapa contohnya:
cdc:com.android.sdv.datatunnel.SomeService/instance1cdc:com.android.sdv.datatunnel.SomeService/instance2mechatronics:com.yourcompany.sdv.adas.TirePressure/front-leftmechatronics:com.yourcompany.sdv.adas.TirePressure/front-rightmechatronics:com.yourcompany.sdv.adas.TirePressure/rear-rightpcu:com.android.sdv.cluster.InfoProvider/acceleration
Paket layanan dalam paket yang berbeda dapat memiliki nama paket layanan yang sama. Misalnya, dua paket layanan ini (diidentifikasi berdasarkan FQIN masing-masing), yang di-deploy di VM SDV yang sama (mechatronics), memiliki nama paket layanan yang sama, yaitu TirePressure:
mechatronics:com.yourcompany1.sdv.adas.TirePressure/defaultmechatronics:com.yourcompany2.sdv.adas.TirePressure/default
Dalam contoh ini, tidak ada konflik penamaan karena kedua paket layanan berada dalam paket yang berbeda (satu di com.yourcompany1.sdv.adas dan yang lainnya di com.yourcompany2.sdv.adas).
Nama topik
Topik diidentifikasi berdasarkan string yang unik di seluruh kendaraan untuk jenis pesan tertentu.
Contoh nama topik:
left-tirefront-windowengine-coolant-temp
Batasan:
- Harus berupa alfanumerik atau tanda hubung,
[a-z0-9\-]. - Harus diawali dengan huruf.
- Tidak boleh melebihi 127 karakter.
Nama channel
Channel diidentifikasi berdasarkan string nama.
Contoh nama channel:
main-controlhigh-prioritybackground
Batasan:
- Harus berupa alfanumerik atau tanda hubung,
[a-z0-9\-]. - Harus diawali dengan huruf.
- Tidak boleh melebihi 127 karakter.
Nama unit layanan
Developer paket layanan terutama berinteraksi dengan topik dan
channel. Nama unit layanan adalah detail implementasi yang mendasar dan terutama ditemui saat menggunakan alat proses debug seperti dumpsys.
Unit layanan, saat didaftarkan ke Penemuan Layanan SDV, harus memberikan nama unit layanan. Nama unit layanan ini tersedia pada waktu Penemuan layanan. Contoh ini menunjukkan nama unit layanan dengan FQIN:
( cdc:com.android.sdv.adas.Service1/default-inst , tp-provider )( cdc:com.yourcompany.sdv.adas.TirePressure/instance1 , tp-provider-1 )( mech:com.yourcompany.sdv.adas.TirePressure/instance2 , tp-instance )
Nama jenis unit
Nama jenis unit sama dengan nama jenis Protobuf (yang sepenuhnya memenuhi syarat). Contoh:
com.android.sdv.datatunnel.IComponentHandlercom.android.sdv.datatunnel.IComponentHandlercom.yourcompany.sdv.adas.TirePressurecom.android.sdv.cluster.IWheelInfoCallbackcom.android.sdv.cluster.ISeatAlignmentCallback
Ringkasan
Persyaratan penamaan diringkas dalam tabel berikut:
| Item | Batas | Karakter yang diizinkan | Jenis kasus |
|---|---|---|---|
| FQIN | 256 karakter | Terdiri dari nama VM, nama paket, nama paket layanan, dan nama instance paket layanan. | Huruf kecil |
| Nama VM SDV | 30 karakter |
|
Huruf kecil |
| Nama paket SDV | 127 karakter |
|
Huruf kecil |
| Nama paket layanan | 30 karakter |
|
Huruf besar/kecil |
| Nama instance paket layanan | 48 karakter |
|
Huruf kecil |
| Nama topik | 127 karakter |
|
Huruf kecil |
| Nama channel | 127 karakter |
|
Huruf kecil |
| Nama unit layanan | 48 karakter |
|
Huruf kecil |