برای اطمینان از پایداری سیستم و امکان ورود به حالتهای کممصرف مانند «تعلیق به RAM» (S2R) یا «تعلیق به دیسک» (S2D)، بسیار مهم است که منابع صوتی در طول انتقال برق به درستی مدیریت شوند.
ممکن است برنامهها همیشه هنگام شروع تعلیق سیستم، جریانهای ورودی یا خروجی صدا را آزاد نکنند. جریانهای صوتی فعال میتوانند از بیکار شدن زیرسیستم صوتی و سختافزار زیربنایی جلوگیری کنند، که میتواند مانع از ورود سیستم روی تراشه (SoC) به حالت خواب عمیق شود. این امر منجر به تلاشهای ناموفق برای تعلیق و افزایش مصرف برق میشود.
تولیدکنندگان اصلی تجهیزات (OEM) باید یک مکانیزم پشتیبان قوی را در پیادهسازی لایه انتزاعی سختافزار صوتی (HAL) خود پیادهسازی کنند تا جریانهای صوتی فعال را در طول انتقالهای تعلیق مدیریت کنند. این امر برای پایداری پلتفرم، صرف نظر از رفتار برنامه، ضروری است.
برنامهها باید منابع صوتی را به درستی مدیریت کنند، اما سیستم نمیتواند برای انتقال اساسی وضعیت برق به این موضوع تکیه کند. Audio HAL لایه مناسبی برای اعمال غیرفعالسازی منابع است تا توانایی سیستم برای ورود به حالتهای تعلیق تضمین شود. ما این رویکرد را برای مدیریت قوی برق توصیه میکنیم.
پیادهسازی مدیریت توان
برای پیادهسازی مدیریت قدرتمند مصرف انرژی در Audio HAL، مراحل زیر را دنبال کنید:
تشخیص تغییرات وضعیت توان سیستم، به ویژه انتقال به حالت تعلیق.
وقتی سیستم در حال آماده شدن برای تعلیق است، اگر هنوز جریانهای صوتی (اعم از ورودی و خروجی) فعال هستند، مداخله کنید:
- جریانهای خروجی سختافزار را آزاد کرده و دادههای ورودی را از چارچوب صوتی حذف کنید.
- جریانهای ورودی سختافزار را آزاد کنید و صدای بیصدا را به چارچوب ارسال کنید.
این اقدام در سطح HAL تضمین میکند که سختافزار صوتی میتواند غیرفعال شود و به سیستم اجازه میدهد تا با موفقیت به حالت تعلیق درآید، حتی اگر یک برنامه منابع صوتی خود را منتشر نکرده باشد.
وقتی سیستم از حالت تعلیق خارج شد، زیرسیستم صوتی را به حالت فعال خود برگردانید. این شامل لغو بیصدا کردن هرگونه جریان خروجی بیصدا شده قبلی و فعال کردن مجدد جریانهای ورودی میشود و به برنامهها اجازه میدهد پخش و ضبط صدا را ادامه دهند.
تأثیر بر برنامهها
مدیریت منابع صوتی در سطح HAL در طول تعلیق، برنامهها را به روشهای زیر تحت تأثیر قرار میدهد:
- تعلیق شفاف: برای برنامههایی که از میکروفون استفاده میکنند، تعلیق سیستم (با وارد کردن S2D یا S2R) شفاف است.
- قطع صدا در حین انتقال: پس از شروع انتقال به حالت تعلیق، جریانهای فعال در HAL قطع میشوند. برنامه همچنان به اجرا ادامه میدهد، اما در حین تعلیق فقط صدای قطع شده دریافت میکند.
- از سرگیری خودکار: پس از از سرگیری سیستم، برنامه به طور خودکار شروع به دریافت یا ارسال دادههای صوتی واقعی میکند، بدون اینکه نیازی به هیچگونه اقدام بازیابی یا بازیابی منابع باشد.