שכבת הפשטת החומרה (HAL) של האודיו ב-Android מחברת את ממשקי ה-API של מסגרת האודיו ברמה גבוהה יותר אל android.media
מנהלי ההתקנים והחומרה של האודיו שמתחתיה. ה-HAL של האודיו מגדיר את הממשק הסטנדרטי ששירותי האודיו מפעילים. כדי שחומרת האודיו תפעל בצורה תקינה, צריך להטמיע את Audio HAL.
בדף הזה מוצגת סקירה כללית של Audio HAL, ופרטים על ה-API ועל דרישות ההטמעה שלו.
ממשק HAL של אודיו
החל מ-Android 14, ממשק ה-HAL של האודיו מוגדר באמצעות AIDL. בגרסאות קודמות, ממשק ה-HAL של האודיו מוגדר באמצעות HIDL. מומלץ לשותפים ולספקי SoC להטמיע מחדש את Audio HAL כדי לספק ממשק AIDL.
ממשקי API חדשים של HAL לתכונות שנוספו ב-Android מגרסה 14 ומעלה נתמכים רק בהטמעה של ממשק AIDL. החל מ-Android 14, לא נוסף API חדש להטמעה של HIDL.
המעבר ל-AIDL והוצאה משימוש של גרסאות קודמות של Audio HAL וביטול התמיכה בהן מפנים מקום בדיסק ובזיכרון RAM במכשירים. כך חוויית המשתמש תהיה חלקה יותר, ומשתמשי הקצה יוכלו לראות תכונות חדשות.
מידע נוסף על ההבדלים בין AIDL לבין HIDL Audio HAL מופיע במאמר השוואה בין AIDL לבין HIDL Audio HAL.
Audio HAL API
ה-HAL של האודיו מכיל את ממשקי ה-API הבאים:
- Core HAL הוא ה-API הראשי שמשמש את AudioFlinger להפעלת אודיו ולשליטה בניתוח של האודיו.
ה-API של HAL לאפקטים משמש את ה-framework של האפקטים לשליטה באפקטים של אודיו. אפשר גם להגדיר אפקטים של עיבוד מקדים, כמו בקרה אוטומטית של עוצמת הקול וביטול רעשים, באמצעות ה-API של Effects HAL.
Common HAL API היא ספרייה של סוגי נתונים נפוצים שמשמשים את ממשקי ה-API של Core ו-Effects HAL. ל-Common HAL אין ממשקים ואין בדיקות VTS משויכות, כי הוא מגדיר רק מבני נתונים.
פרטים ספציפיים שקשורים ל-AIDL ול-HIDL מפורטים במאמרים AIDL Audio HAL ו-HIDL Audio HAL.
דרישות
בנוסף להטמעה של Audio HAL וליצירה של קובץ התצורה של מדיניות האודיו, צריך לעמוד בדרישות הבאות של HAL:
אם פרופיל קלט אחד תומך בלכידה של הפעלת הקול (לכידה ממאגר ה-DSP של מילת ההפעלה), ההטמעה צריכה לתמוך במספר הזרמים הפעילים בפרופיל הזה שמתאים למספר הסשנים בו-זמנית שנתמכים על ידי Sound Trigger HAL.
הפעלה בו-זמנית של שיחות קוליות ושל הקלטה ממעבד האפליקציות, כמו שמתואר בדף הקלטה בו-זמנית.