Genel bakış

Yayın radyosu yığını, Şekil 1'de gösterilen bileşenlerden oluşur.

Radyo yayını mimarisi
Şekil 1. Radyo yayını mimarisi.

Radyo referans uygulaması

Radyo kontrolünün nasıl uygulanacağı hakkında ayrıntılı bilgi için Radyo kontrolünü uygulama başlıklı makaleyi inceleyin.

Referans uygulama olarak örnek bir Java radyo uygulaması (packages/apps/Car/Radio) kullanılmaktadır. Uygulama hizmeti başladığında Radyo Yöneticisi'nden bir radyo tuner açmasını ister. Ardından uygulama, radyo alıcısına belirli bir radyo istasyonuna, frekansa veya sonraki kullanılabilir radyo istasyonuna ayarlanma gibi istekler gönderebilir. Uygulama, Radyo'daki Radyo Yöneticisi ve Radyo Tuner'den güncellemeler alır (ör. mevcut program bilgileri, radyo program listeleri, yapılandırmalar ve tedarikçi firma tarafından tanımlanan parametreler). Referans radyo uygulaması yalnızca AM ve FM radyoyu destekler. OEM'ler, Radyo uygulamasını diledikleri gibi değiştirebilir veya değiştirebilir.

Radyo Yöneticisi

Uygulama, Radyo Yöneticisi'nden bir tuner açmasını istediğinde Radyo Yöneticisi (frameworks/base/core/java/android/hardware/radio/RadioManager.java), Yayın Radyosu Hizmeti'nden (BRS) bir Tuner oturumu açmasını ister ve ardından oturumu uygulamaya döndürülen bir Radyo Tuner'a (frameworks/base/core/java/android/hardware/radio/RadioTuner.java) sarar. Radyo Tuner, radyo uygulamalarından çağrılabilecek ve BRS'ye istek gönderebilecek API'leri (ör. ayarlama, adım ve iptal) tanımlar. Radyo Tuner'da tanımlanan geri çağırma yöntemleri (RadioTuner.Callback), yayın radyosu HAL ile ilgili güncellemeleri (ör. mevcut program bilgileri, program listeleri ve satıcı tanımlı parametreler) BRS'den uygulamalara gönderir.

Radyo Yayın Hizmeti

Yayın Radyosu Hizmeti (frameworks/base/services/core/java/com/android/server/broadcastradio), Yayın Radyosu HAL'in istemci hizmetidir. BRS, birden fazla radyo yöneticisini yayın radyosu HAL'leriyle koordine eder. BRS, HAL arayüz tanımlama dili (HIDL) ve Android arayüz tanımlama dili (AIDL) yayın radyosu HAL'lerini destekler. BRS, herhangi bir AIDL HAL hizmeti mevcut olduğunda AIDL HAL'e bağlanır; aksi takdirde hizmet HIDL HAL'e bağlanır. BRS, mevcut her HAL örneği (ör. AM, FM ve DAB) için bir Radyo Modülü oluşturur.

Her Radyo Yöneticisi, radyonun türüne bağlı olarak BRS'den ilgili Radyo Modülü'nde bir tuner oturumu oluşturmasını isteyebilir. Her tuner oturumu, ilgili yayın radyosu HAL örneğinde işlem yapmak için ayarlama, adım ve iptal gibi yöntemleri (HAL arayüzlerinde tanımlanır) çağırabilir. Bir tuner oturumu, HAL güncellemesi (ör. mevcut program bilgileri, program listesi, yapılandırma işaretleri ve tedarikçi parametreleri) için HAL örneğinden geri çağırma aldığında güncellemeyle ilgili geri çağırmalar aynı Radyo Modülü'ne bağlı tüm Radyo Tuner'lara gönderilir.

Radyo yayını HAL

Yayın radyosunun HIDL ve AIDL arayüzleri ve ikisi arasındaki farklar hakkında daha fazla bilgi edinmek için Yayın Radyosu HAL arayüzü başlıklı makaleyi inceleyin.