Satıcı API düzeyi

Tedarikçi API düzeyi, tedarikçi bölümü tarafından desteklenen arayüzün sürümünü ifade eder. Arayüz çift yönlüdür. Tedarikçi bölümünün sistem bölümüne sağladığı API'yi (donanım soyutlama katmanı veya HAL arayüzü) ve tedarikçi 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ü) tanımlar.

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, tedarikçi firma 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, tedarikçilerin tedarikçi 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 uyum sağlayacak ş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.

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

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

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

Ayrı yayın planları nedeniyle Android 14 QPR3 ve sonraki sürümlerde tedarikçi firma API düzeyi, SDK API düzeyinden tamamen ayrılmıştır. Bu ayrışmanın net olması için sağlayıcı API düzeyinin biçimi YYYYMM (yıl ve ay) olarak biçimlendirilmiş bir tarih, SDK düzeyi 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 tedarikçi 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 YYYYAA Bir yonga setinin yazılımının ilk 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 bu özellik nihai olarak kabul edilmeli ve değiştirilmemelidir. Güncelleme kesinlikle önerilmese de nadir ve istisnai durumlarda yeni bir satıcı dondurma yeterliliğiyle izin verilebilir. Çip üzerinde sistem (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 OS 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 tedarikçi dondurma için uygunsa ro.board.api_level, tedarikçi API düzeyi olan ro.product.first_api_level'den küçü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 tedarikçi 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ığı YYYYAA biçimindeki satıcı API düzeyi. LLNDK geriye dönük 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 türetilir:

  • 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 karşılık gelen tedarikçi firma API düzeyini belirler. Örneğin, AVendorSupport_getVendorApiLevelOf(35) (35, 2024'teki ana Android sürümünün SDK API düzeyidir) 202404 değerini döndürür. Bu, mevcut tedarikçi API düzeyinin ayarlandığı 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, tedarikçi firma 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 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çin uygun olan 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 tedarikçi API düzeyi. Bu özellik, yalnızca tedarikçi dondurma için uygun olan yonga setleri için ayarlanır. Başlangıçta bu özelliğin değeri, derleme sistemi tarafından ro.board.first_api_level ile aynı değere ayarlanır ancak tedarikçi firma 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 SDK API düzeyi.