שכבת ההפשטה של חומרת האודיו (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
Audio HAL מכיל את ממשקי ה-API הבאים:
- ה-HAL המרכזי הוא ה-API העיקרי שמשמש את AudioFlinger להפעלת אודיו ולשליטה בניתוח הנתיבים של האודיו.
ה-API של Effects HAL משמש את framework האפקטים לשליטה באפקטים קוליים. אפשר גם להגדיר אפקטים של עיבוד מקדים, כמו בקרה אוטומטית של עוצמת הקול וביטול רעשים, באמצעות ה-API של Effects HAL.
Common HAL API היא ספרייה של סוגי נתונים נפוצים שמשמשים את ממשקי ה-API של Core ו-Effects HAL. ל-HAL המשותף אין ממשקים ואין בדיקות VTS משויכות, כי הוא מגדיר רק מבני נתונים.
פרטים ספציפיים שקשורים ל-AIDL ול-HIDL מפורטים במאמרים AIDL Audio HAL ו-HIDL Audio HAL.
דרישות
בנוסף להטמעה של Audio HAL וליצירה של קובץ התצורה של מדיניות האודיו, צריך לעמוד בדרישות הבאות של HAL:
אם פרופיל קלט אחד תומך בלכידה של הפעלת קול (לכידה ממאגר DSP של מילת הפעלה), ההטמעה צריכה לתמוך במספר הזרמים הפעילים בפרופיל הזה שמתאים למספר הסשנים המקבילים שנתמכים על ידי Sound Trigger HAL.
ההקלטה והשידור בו-זמנית של שיחות קוליות מהמעבד של האפליקציה, כפי שמפורט בדף הקלטה בו-זמנית.