Snapshot VNDK dapat digunakan oleh image sistem untuk menyediakan library VNDK yang benar ke image vendor meskipun image sistem dan vendor di-build dari versi Android yang berbeda. Membuat snapshot VNDK memerlukan pengambilan library VNDK sebagai snapshot dan menandainya dengan nomor versi. Image vendor dapat ditautkan dengan versi VNDK tertentu yang menyediakan ABI yang diperlukan untuk modul dalam image vendor. Namun, dalam versi VNDK yang sama, library VNDK harus stabil ABI.
Desain snapshot VNDK mencakup metode untuk membuat prebuild snapshot VNDK dari image sistem saat ini dan menginstal library bawaan tersebut ke partisi sistem versi Android yang lebih baru.
Tentang library VNDK
HIDL-HAL, yang diperkenalkan di Android 8.0, memungkinkan upgrade terpisah untuk partisi sistem dan vendor. VNDK menentukan kumpulan library (VNDK-core, VNDK-SP, dan LL-NDK) yang dapat ditautkan dengan kode vendor dan memblokir vendor agar tidak menggunakan library yang tidak ada dalam kumpulan VNDK. Akibatnya, image vendor dapat dibuat dan dijalankan jika set VNDK yang sesuai pada image sistem disediakan ke image vendor.
VNDK-core
  Kumpulan library VNDK-core diinstal di
  /system/lib[64]/vndk-${VER} dan tersedia
  hanya untuk proses vendor dengan level API yang sama dengan
  ${VER}. Proses sistem tidak boleh menggunakan library ini dan harus
  menggunakan library yang diinstal di /system/lib[64]. Karena
  pembatasan namespace yang ketat untuk setiap proses, library VNDK-core
  aman dari pemuatan ganda.
Untuk menyertakan library di VNDK-core, tambahkan kode berikut ke
  Android.bp:
vendor_available: true, vndk: { enabled: true, },
VNDK-SP
  Library VNDK-SP diinstal di /system/lib[64]/vndk-sp-${VER}
  dan tersedia untuk proses vendor dan proses sistem (melalui library SP-HAL
  yang diinstal di partisi vendor). Library VNDK-SP dapat
  dimuat secara ganda.
  Untuk menyertakan library di VNDK-SP, tambahkan kode berikut ke Android.bp:
vendor_available: true, vndk: { enabled: true, support_system_process: true, },
LL-NDK
  Library LL-NDK diinstal di /system/lib[64]. Modul vendor
  dapat menggunakan library stub LL-NDK untuk mengakses simbol library LL-NDK
  yang telah dipilih sebelumnya. Library LL-NDK harus kompatibel dengan versi lama dan stabil ABI untuk
  memungkinkan modul vendor versi lama menggunakan library LL-NDK versi baru.
  Karena karakteristik LL-NDK yang stabil ABI, snapshot VNDK
  tidak perlu menyertakan library LL-NDK untuk image vendor lama.
Tentang snapshot VNDK
Android 8.1 menyertakan library VNDK yang di-build dari kode sumber. Namun, untuk versi Android yang lebih baru, setiap versi VNDK harus diambil sebagai snapshot dan disediakan sebagai pra-build untuk memungkinkan penautan ke image vendor yang lebih lama.
  Mulai Android 9, versi baru Android akan
  menyertakan setidaknya satu snapshot direktori VNDK-core dan VNDK-SP untuk versi
  lama dalam kode sumber Android. Pada waktu build, snapshot yang diperlukan akan
  diinstal ke /system/lib[64]/vndk-${VER} dan
  /system/lib[64]/vndk-sp-${VER} (direktori yang dapat digunakan oleh
  partisi vendor), dengan ${VER} adalah variabel string yang
  mewakili nama versi snapshot VNDK.
  Karena library snapshot VNDK dapat berbeda untuk setiap versi VNDK, snapshot VNDK
  juga menyertakan konfigurasi namespace penaut, yang diinstal sebagai
  etc/ld.config.${VER}.txt,
  /etc/llndk.libraries.${VER}.txt, dan
  /etc/vndksp.libraries.${VER}.txt.
Contoh: Mengupgrade image sistem dan vendor
Tidak diperlukan snapshot; build tanpa konfigurasi tambahan untuk snapshot VNDK.
Contoh: Hanya mengupgrade image sistem
  Harus menyertakan snapshot VNDK dan file konfigurasi namespace penaut untuk
  image vendor dalam image sistem. File konfigurasi namespace penaut
  dikonfigurasi secara otomatis untuk menelusuri library VNDK di
  /system/lib[64]/vndk-${VER} dan
  /system/lib[64]/vndk-sp-${VER}.
Contoh: Mengupgrade image sistem, perubahan image vendor minor
Mem-build image vendor terhadap snapshot VNDK belum didukung, sehingga Anda harus mem-build image vendor secara terpisah dengan kode sumber aslinya, lalu mengupgrade image sistem seperti yang dijelaskan dalam contoh sebelumnya.
Arsitektur snapshot VNDK
Agar image sistem Android 9 kompatibel dengan image vendor Android 8.1, snapshot VNDK yang cocok dengan image vendor Android 8.1 harus disediakan dengan image sistem Android 9, seperti yang ditunjukkan di bawah:
Desain snapshot VNDK mencakup metode berikut:
- Membuat snapshot untuk library VNDK-core dan VNDK-SP. Android 9 menyertakan skrip yang
  dapat Anda gunakan untuk membuat snapshot build VNDK saat ini. Skrip ini memaketkan semua
  library di 
/system/lib[64]/vndk-28dan/system/lib[64]/vndk-sp-28yang dibuat dengan sumber saat ini sebagai snapshot VNDK, dengan28adalah versi VNDK Android 9. Snapshot juga menyertakan file konfigurasi namespace penaut/etc/ld.config.28.txt,/etc/llndk.libraries.28.txt, dan/etc/vndksp.libraries.28.txt. Snapshot yang dihasilkan akan digunakan dengan versi Android yang lebih baru (lebih tinggi dari Android 9). - Menginstal library VNDK-core dan VNDK-SP bawaan dari
  snapshot. Di Android 9, snapshot VNDK memiliki
  sekumpulan library VNDK-core bawaan dan sekumpulan library VNDK-SP, serta
  file konfigurasi namespace penaut. Saat Anda memberikan daftar versi snapshot VNDK
  yang akan diinstal, pada waktu build, image sistem akan menginstal
  library snapshot VNDK ke 
/system/lib[64]/vndk-${VER}dan direktori/system/lib[64]/vndk-sp-${VER}serta file konfigurasi namespace penaut untuk snapshot VNDK tersebut ke direktori/etc. 
Pembuatan versi VNDK
  Setiap rilis Android hanya memiliki satu snapshot VNDK dan versi SDK digunakan sebagai
  versi VNDK (yang berarti versi VNDK memiliki angka bilangan bulat, seperti 27
  untuk Android 8.1). Versi VNDK diperbaiki saat versi Android
  dirilis. Versi VNDK yang digunakan oleh partisi vendor disimpan
  secara otomatis di properti ro.vndk.version, yang dapat dibaca
  saat runtime. Versi ini kemudian digunakan untuk mengidentifikasi versi VNDK vendor
  untuk beberapa library dan mengidentifikasi versi snapshot VNDK untuk konfigurasi
  namespace.
Mem-build library VNDK
  Perintah make vndk mem-build library yang memiliki vndk:
  { enabled: true, … }, termasuk dependensi dan file konfigurasi
  namespace. Jika BOARD_VNDK_VERSION := current ditetapkan,
  library ini akan di-build dengan perintah make.
Karena build ini tidak menginstal library VNDK dari snapshot, library VNDK yang diinstal tidak stabil ABI. Namun, saat versi Android dirilis, ABI untuk versi VNDK saat ini akan diperbaiki. Pada tahap ini, kerusakan ABI apa pun adalah error build, sehingga patch untuk versi Android tidak boleh mengubah ABI untuk library VNDK.