OEM tasarım jetonları

OEM tasarım jetonları, Material Design sisteminin Android Automotive OS (AAOS) uygulamasıdır. Mobil cihazlarda jeton değerleri için algoritmik veya kullanıcı seçimi yaklaşımının aksine OEM'ler, jeton değerlerini tasarlar. Tasarım jetonları, bir tasarım sisteminin görsel stilini oluşturan küçük ve tekrarlanan tasarım kararlarını temsil eder ve statik değerleri kendinden açıklayıcı adlarla değiştirir. Jetonlar, Materyal Tasarım sistemi tarafından tanımlananlara benzer.

OEM jeton kitaplığı

OEM tasarım jetonlarına, Şekil 1'de gösterilen üç bileşenden oluşan OEM jeton kitaplığı aracılığıyla referans verilir.

Şekil 1. OEM jeton kitaplığı bileşenleri.

Statik kitaplık

OEM jeton kitaplığının statik kitaplık bileşeni, jeton değerlerine erişimi aşağıdaki gibi kolaylaştırır.

  • Jetonlar için OEM değerlerine erişmek üzere API'ler sağlar.
  • Temadaki jeton referanslarının OEM değerleriyle geçersiz kılınmasını etkinleştirir.

Paylaşılan kitaplık

Paylaşılan kitaplık bileşeni aşağıdakileri tanımlamaktan sorumludur:

  • Kitaplığın adı.
  • OEM jetonu değerlerini etkinleştirmek için Boole etkinleştirme.
  • OEM jetonu değerleri sağlayan stil.

OEM'ler, OEM tanımlı paket adı da dahil olmak üzere bu paylaşılan kitaplık bileşeninin OEM sahipliğini karşılamak için paylaşılan kitaplık uygulamasının geçersiz kılınmasını oluşturabilir.

Şekil 2. Paylaşılan kitaplık uygulamasını geçersiz kılma.

OEM paylaşılan kitaplığı

Ortak kitaplık bileşeninin OEM geçersiz kılma işlemleri, paket adının ve imzasının OEM'ler tarafından ayarlanmasına olanak tanıyarak OEM jeton kitaplığındaki diğer bileşenlerle uyumluluğu korurken ortak kitaplığın uygulanmasını değiştirmeden OEM'nin kitaplığa sahip olmasını sağlar.

Paylaşılan kitaplık için geçersiz kılma işlemleri aşağıdaki gibi tanımlanabilir:

override_android_app {
    name: "[OEM]-token-shared-lib",
    base: "token-shared-lib",
    package_name: "com.[OEM].sharedlib",
    rename_resources_package: false,
    certificate: 
}

Jeton değerlerini ayarlamak için OEM jeton değerlerini belirtme başlıklı makaleyi inceleyin.

OEM paylaşılan kitaplık özelleştirmeleri

OEM'ler, jeton değerleri için çeşitli şemaları (ör. model veya sürüş modu ayrımı) desteklemek amacıyla OEM paylaşılan kitaplığını çalışma zamanında kaynak yer paylaşımlarıyla (RRO'lar) hedefleyerek jetonlar için dinamik değerler sağlayabilir. Daha fazla bilgi için Uygulama kaynaklarının değerini çalışma zamanında değiştirme başlıklı makaleyi inceleyin.

Jeton değerlerini ayarlamak için OEM jeton değerlerini belirtme başlıklı makaleyi inceleyin.

OEM jeton değerlerini belirtme

Jeton değerlerini belirtmek için OemStyle stilindeki ilgili özelliği gerekli değere ayarlayın.

<resources>
    <style name="OemStyle">
        <item name="colorPrimary">#B0C5FF</item>
        <item name="colorOnPrimary">#002B76</item>
        <item name="colorPrimaryContainer">#003FA4</item>
        <item name="colorOnPrimaryContainer">#D9E2FF</item>
        …
    </style>
</resources>

OEM değerlerini etkinleştirme

Uygulamaların OEM tarafından sağlanan jeton değerlerine erişebilmesi için OEM'lerin öncelikle enable_oem_tokens doğru/yanlış değerini true olarak yapılandırarak varsayılan jeton değerlerinin geçersiz kılınmasını etkinleştirmesi gerekir.

RRO jeton değerleri

OemStyle'te jeton değerlerinin ayarlanışına benzer şekilde, alternatif jeton değerleri sağlamak için stili değiştirmek üzere RRO'lar kullanılabilir.

<resources>
    <style name="OemStyle">
        <item name="com.android.oem.tokens:colorPrimary">#B0C5FF</item>
        <item name="com.android.oem.tokens:colorOnPrimary">#002B76</item>
        <item name="com.android.oem.tokens:colorPrimaryContainer">#003FA4</item>
        <item name="com.android.oem.tokens:colorOnPrimaryContainer">#D9E2FF</item>
        …
    </style>
</resources>

RRO'lar, paylaşılan kitaplık adını belirterek stildeki paylaşılan kitaplık özelliklerini ayarlamalıdır.

Son yüklemeyi yapılandırma

Jeton paylaşılan kitaplığının OEM uygulamasını içeren sistemler, sistemi paylaşılan kitaplığı uygulama sınıflarından sonra yükleyecek şekilde yapılandırmalıdır. Bunu yapmak için sistemdeki config_sharedLibrariesLoadedAfterApp yapılandırmasına kitaplık adını (com.android.oem.tokens) ekleyin. Google Automotive Services'e (GAS) erişiminiz varsa bu şart zorunludur.

<!-- The OEM token shared library will be loaded after app classes -->
<string-array name="config_sharedLibrariesLoadedAfterApp" translatable="false">
    <item>com.android.oem.tokens</item>
</string-array>

En iyi uygulamalar

OEM jeton kitaplığıyla ilgili en iyi uygulamalar aşağıda açıklanmıştır.

Esnek bir güncelleme stratejisi etkinleştirme

Güncellemelerle ilgili esneklik sağlamak için aşağıdaki stratejilere göz atın.

OEM paylaşılan kitaplığı

Sistem paylaşılan kitaplıkların sistem resimlerine önceden yüklenmesi gerektiğinden, cihazlar kitaplıkla birlikte gönderilmeli veya kitaplık kablosuz (OTA) güncellemenin bir parçası olarak eklenmelidir (daha fazla bilgi için OTA Güncellemeleri bölümüne bakın). Ancak, bir sistem resmine OEM jetonu paylaşılan kitaplığının OEM geçersiz kılma işleminin bir taslak uygulamasının eklenmesi, OTA gerektirmeden daha sonra cihazlara tam çalışan bir uygulamanın güncellemesinin gönderilmesine olanak tanır.

Paylaşılan kitaplık RRO'ları

RRO'ların sistem uygulaması olarak yüklenmesi zorunlu olmasa da bu şekilde yüklendiğinde istenebilecek bazı güncelleme davranışları sağlanır.

  • Kullanıcılar oturum açmamışken uygulamaların otomatik olarak güncellenmesi.
  • Kullanıcı tarafından kaldırılamaz (Kullanıcılar yalnızca güncellemeleri kaldırabilir).