Satıcı API düzeyi

Sağlayıcı API düzeyi, sağlayıcı bölümü tarafından desteklenen arayüzün sürümünü ifade eder. Arayüz çift yönlüdür. Satıcı bölümünün sistem bölümüne sağladığı API'yi (donanım soyutlama katmanı veya HAL arayüzü) ve satıcı bölümünün sistem bölümünden istediği API'yi (düşük seviyeli yerel geliştirici kiti veya LLNDK arayüzü) açıklar.

Tedarikçi API düzeyi, Tedarikçi Yazılım Gereksinimleri'ni (VSR) belirlemek için de kullanılır. VSR, tedarikçi bölümündeki yazılımın karşılaması gereken işlevsel ve işlevsel olmayan gereksinimlerin bir koleksiyonudur.

Bu sayfanın geri kalanında, satıcı API düzeyini belirlemek için Android sürümünüze bağlı olarak sistem özelliklerinin nasıl kullanıldığı açıklanmaktadır.

Tedarikçi dondurma

Android, bir satıcının satıcı bölümünü belirli bir VSR sürümünde dondurmasına olanak tanır. Android'in satıcı bölümünden beklediği özellikler, satıcı bölümüyle ilişkili satıcı API düzeyi tarafından belirlenir. Çalışma zamanında, sistem bölümünde çalışan yazılımın davranışı, tedarikçi bölümünün tedarikçi API düzeyine uyacak şekilde ayarlanır. Örneğin, sistem bölümündeki yazılım, satıcı bölümünün API düzeyi tarafından desteklenmiyorsa yeni özellikleri kullanmayabilir.

Satıcı dondurma yalnızca Android uyumlu bir cihaz oluşturuyorsanız kullanılabilir.

Tedarikçi API düzeyini belirleme (Android 14-QPR3 ve sonraki sürümler)

Android 14-QPR3 ve sonraki sürümlerde, satıcı API düzeyi ayrı olarak yayınlanır. Bu nedenle, SDK API düzeyi ile satıcı API düzeyi senkronize değildir.

Ayrı yayın takvimleri nedeniyle Android 14-QPR3 ve sonraki sürümlerde tedarikçi API düzeyi, SDK API düzeyinden tamamen ayrılmıştır. Bu ayrıştırmanın net olması için satıcı API düzeyinin biçimi YYYYMM (yıl ve ay) olarak biçimlendirilmiş bir tarih, SDK düzeyinin biçimi ise bir tam sayıdır.

Android 14-QPR3 ve sonraki sürümlerde, satıcı API düzeyiyle ilgili aşağıdaki sistem özellikleri bulunur:

Sistem özelliği Biçim Açıklama İlk ayar
ro.board.api_level YYYYMM Bir yonga setinin yazılımının desteklediği satıcı API düzeyi. Bu özellik tüm yonga setleri için ayarlanır. Bu, derleme sistemi tarafından otomatik olarak ayarlanır.
ro.board.first_api_level YYYYMM Bir yonga setinin yazılımının ilk olarak yayınlandığı satıcı API düzeyi. Bu özellik yalnızca yonga setinin bir işlevidir ve SoC yonga seti satıcı dondurma için uygunsa SoC satıcıları tarafından ayarlanır. İlk ayarlamadan sonra değiştirilmemelidir. SoC tedarikçileri bu ayarı BOARD_SHIPPING_API_LEVEL kullanarak belirler.
ro.product.first_api_level Tam sayı Cihazın ilk olarak başlatıldığı SDK API düzeyi. Bu özellik, OEM tarafından ayarlanır ve işletim sistemi yükseltmelerinden sonra bile güncellenmez.
ro.vendor.api_level YYYYMM ro.product.first_api_level ile eşleşen satıcı API düzeyi. Yalnızca SoC yonga seti, satıcı dondurma için uygunsa ro.board.api_level, ro.product.first_api_level satıcı API düzeyinden düşük olduğunda ro.vendor.api_level, ro.board.api_level değerine ayarlanır. Bu tablodan sonra açıklanmıştır.
ro.board.api_frozen boole ro.board.api_level öğesinin temsil ettiği satıcı API düzeyi tamamlandıysa bu özellik true olarak ayarlanır. Bu özellik ayarlanmazsa varsayılan olarak false olur.
ro.llndk.api_level YYYYMM Sistem bölümündeki mevcut LLNDK'nın sağladığı YYYYMM biçimindeki satıcı API düzeyi. LLNDK geriye dönük olarak uyumludur. Bu nedenle, bu API düzeyine eşit veya daha düşük olan tüm satıcı görüntüleri bu sistem görüntüsüyle yüklenebilir. Bu özellik, sistem bölümünde ayarlanır.

ro.vendor.api_level özelliği aşağıdaki iki yöntemden biriyle elde edilir:

  • Yonga seti, tedarikçi dondurma için uygunsa:

    ro.vendor.api_level = min(
      ro.board.api_level,
      AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level))
    
  • Yonga seti satıcı tarafından dondurulmamışsa:

    ro.vendor.api_level =
      AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level)
    

AVendorSupport_getVendorApiLevelOf() yöntemi, bir SDK API düzeyinden ilgili satıcı API düzeyini belirler. Örneğin, AVendorSupport_getVendorApiLevelOf(35) (burada 35, 2024'teki büyük Android sürümünün SDK API düzeyidir) 202404 değerini döndürür. Bu değer, mevcut satıcı API düzeyi ayarlandığında Android 14-QPR3'ün yaklaşık tarihidir.

Tedarikçi API düzeyini belirleme (Android 13)

Tedarikçi API düzeyi, uygulama-OS arayüzü için kullanılan ve yeni Android platformu AOSP'ye yayınlandığında yılda bir kez güncellenen SDK API düzeyini takip eder.

Android 13, satıcı API düzeyiyle ilgili aşağıdaki sistem özelliklerini içerir:

Sistem özelliği Biçim Açıklama İlk ayar
ro.board.first_api_level Tam sayı Bir yonga setinin yazılımının ilk olarak yayınlandığı satıcı API düzeyi. Bu yalnızca yonga setinin bir işlevidir ve SoC tedarikçileri veya OEM'ler tarafından değiştirilemez. Bu özellik yalnızca tedarikçi dondurma işlemine uygun yonga setleri için ayarlanır. Değer, device.mk dosyasında BOARD_SHIPPING_API_LEVEL ayarlanarak belirlenir.
ro.board.api_level Tam sayı Bir yonga setinin yazılımının desteklediği satıcı API düzeyi. Bu özellik yalnızca tedarikçi dondurma için uygun olan yonga setleri için ayarlanır. Bu özelliğin değeri başlangıçta derleme sistemi tarafından ro.board.first_api_level ile aynı değere ayarlanır ancak satıcı bölümü yükseltilirse güncellenebilir.
ro.product.first_api_level Tam sayı Cihazın ilk olarak başlatıldığı SDK API düzeyi. Bu özellik, OEM tarafından ayarlanır ve işletim sistemi yükseltmelerinden sonra bile güncellenmez.
ro.vendor.api_level Tam sayı Önceki tablodaki satıcı API düzeyi açıklamasıyla aynıdır.
ro.vndk.version Tam sayı Tedarikçi bölümünün oluşturulduğu VNDK sürümü. Bu özellik, satıcı bölümünde ayarlanır.
ro.vendor.build.version.sdk Tam sayı Satıcı bölümünün oluşturulduğu kaynak ağacının SDK API düzeyi.