مدیریت قدرت

برای پشتیبانی از مدیریت انرژی خاص خودرو، Android یک سرویس CarPowerManagementService و یک رابط CarPowerManager ارائه می‌کند.

انتقال حالت توسط واحد کنترل اصلی خودرو (VMCU) آغاز می شود. برای برقراری ارتباط با VMCU، یکپارچه سازها باید چندین مؤلفه را پیاده سازی کنند. یکپارچه سازها مسئول ادغام با لایه انتزاعی سخت افزار خودرو (VHAL) و اجرای هسته هستند. یکپارچه‌کننده‌ها همچنین مسئول غیرفعال کردن منابع بیداری و اطمینان از عدم به تعویق افتادن خاموش‌ها هستند.

واژه شناسی

این اصطلاحات در سراسر این سند استفاده می شود:

پردازنده برنامه (AP)
بخشی از سیستم روی یک تراشه (SoC) .
بسته پشتیبانی هیئت مدیره (BSP)
لایه‌ای از نرم‌افزار که شامل سفت‌افزار بوت مخصوص سخت‌افزار و درایورهای دستگاه است که به یک سیستم عامل تعبیه‌شده اجازه می‌دهد در یک محیط سخت‌افزاری معین (یک مادربرد)، یکپارچه با سیستم عامل تعبیه‌شده، کار کند.
CarPowerManager (CPM)
یک API برای برنامه‌ها برای ثبت‌نام برای تغییرات وضعیت قدرت در معرض نمایش قرار می‌دهد.
CarPowerManagement Service (CPMS)
ماشین حالت قدرت خودرو را پیاده سازی می کند، با VHAL ارتباط برقرار می کند و فراخوان های نهایی را برای suspend() و shutdown() انجام می دهد.
CarPowerPolicyDaemon (CPPD)
رابط های AIDL را برای فرآیندهای بومی برای ثبت شنونده خط مشی قدرت نشان می دهد.
ورودی یا خروجی عمومی (GPIO)
یک پین سیگنال دیجیتال برای استفاده عمومی.
لایه انتزاعی سخت افزاری (HAL)
یک لایه نرم افزاری که تمام ماژول های سطح بالاتر دیگر باید با آن تعامل داشته باشند تا به عملکرد سخت افزاری دسترسی داشته باشند.
خواب زمستانی
همچنین به عنوان Suspend-to-Disk (S2D/S4) نیز شناخته می شود. SoC در حالت پاور S4 (هبرنیت) قرار می گیرد و محتوای RAM روی رسانه های غیر فرار (مانند فلش یا دیسک) نوشته می شود و کل سیستم خاموش می شود.
پردازنده رسانه (MP)
سیستم روی تراشه (SoC) را ببینید.
مدار مجتمع مدیریت توان (PMIC)
تراشه ای که برای مدیریت انرژی مورد نیاز سیستم میزبان استفاده می شود.
سیستم روی تراشه (SoC)
پردازنده اصلی که AAOS را اجرا می کند، معمولاً توسط سازندگانی مانند اینتل، مدیاتک، انویدیا، کوالکام، رنساس و تگزاس اینسترومنت عرضه می شود.
تعلیق کند
همچنین به عنوان Suspend-to-RAM (S2R یا STR) شناخته می شود. SoC در حالت برق S3 قرار می گیرد و CPU خاموش می شود در حالی که RAM روشن است.
خودرو HAL (VHAL)
API Android برای ارتباط با شبکه خودرو استفاده می شود. شریک Tier 1 یا OEM مسئول نوشتن این ماژول است. شبکه خودرو می تواند از هر لایه فیزیکی (مانند CAN، LIN، MOST و Ethernet) استفاده کند. VHAL این شبکه وسیله نقلیه را انتزاعی می کند تا AAOS را قادر به تعامل با وسیله نقلیه کند.
پردازشگر رابط خودرو (VIP)
به MCU خودرو مراجعه کنید.
واحد کنترل اصلی خودرو (VMCU)
میکروکنترلری که رابط بین شبکه خودرو و SoC را فراهم می کند. SoC از طریق سیگنال های USB، UART، SPI و GPIO با VMCU ارتباط برقرار می کند.

طراحی سیستم

این بخش توضیح می‌دهد که چگونه AAOS وضعیت قدرت پردازنده برنامه را نشان می‌دهد و کدام ماژول‌ها سیستم مدیریت انرژی را پیاده‌سازی می‌کنند. این ماده همچنین نحوه کار این ماژول ها با هم و نحوه انتقال حالت به طور معمول را توضیح می دهد.

ماشین حالت قدرت ماشین

AAOS از یک ماشین حالت برای نشان دادن وضعیت توان AP استفاده می کند. ماشین حالت حالت های نشان داده شده در زیر را ارائه می دهد:

ماشین حالت قدرت ماشین

شکل 1. ماشین حالت قدرت خودرو.

رایج ترین انتقال ها با رنگ آبی مشخص شده اند. حالات و انتقال های رایج عبارتند از:

  • تعلیق به رم. خودرو و SoC خاموش هستند. هیچ کدی در حال اجرا نیست. برق به رم SoC حفظ می شود.
  • منتظر VHAL باشید. هنگامی که راننده با وسیله نقلیه تعامل می کند، برای مثال، با باز کردن یک در، VMCU برق را به SoC اعمال می کند. AAOS از Suspend-to-RAM از سر گرفته می شود و وارد Wait for VHAL می شود، جایی که منتظر هماهنگی با VHAL است.
  • بر. VHAL به AAOS می گوید که به حالت روشن وارد شود. در این حالت، AAOS به طور کامل در حال اجرا است و با راننده در تعامل است.
  • خاموش شدن را آماده کنید. هنگامی که راننده کار خود را به پایان رساند، VHAL به AAOS می‌گوید که وارد Shutdown Prepare شود. در این حالت، صفحه نمایش و صدا خاموش هستند و AAOS با درایور تعامل ندارد. سیستم اندروید هنوز در حال اجرا است و برای به روز رسانی برنامه ها و سیستم اندروید رایگان است. هنگامی که به‌روزرسانی‌ها، در صورت وجود، تکمیل می‌شوند، سیستم Android وارد Wait for VHAL Finish می‌شود.
  • منتظر VHAL Finish باشید. در این مرحله، AAOS به VHAL اطلاع می دهد که آماده خاموش شدن است. انتظار می رود VMCU SoC را در Deep Sleep قرار دهد و انرژی را از پردازنده برنامه حذف کند. سپس AAOS در حالت Suspend-to-RAM قرار دارد، اگرچه هیچ کدی اجرا نمی شود.

ماژول های مدیریت انرژی

سیستم مدیریت انرژی از این ماژول ها تشکیل شده است:

نام ماژول شرح
CarPowerManager Java یا C++ API.
CarPowerManagement Service انتقال حالت قدرت را هماهنگ می کند.
CarPowerPolicyDaemon با مشتریان خط مشی قدرت بومی ارتباط برقرار می کند.
HAL وسیله نقلیه رابط به VMCU.
هسته تعلیق در اجرای رم یا دیسک.

ویژگی خواب عمیق/هبرناسیون (تعلیق اندروید به رم/دیسک) در هسته پیاده سازی شده است. این ویژگی به عنوان یک فایل خاص در /sys/power/state در معرض فضای کاربر قرار می گیرد. AAOS با نوشتن mem یا disk در این فایل به حالت تعلیق در می آید.

CPMS وضعیت قدرت را با سایر سرویس ها و HAL ها هماهنگ می کند. CPMS ماشین حالتی را که در بالا توضیح داده شد پیاده‌سازی می‌کند و هنگامی که یک انتقال حالت قدرت اتفاق می‌افتد، اعلان‌هایی را برای هر ناظری ارسال می‌کند. این سرویس همچنین از VHAL برای ارسال پیام به سخت افزار استفاده می کند.

CPPD سیاست قدرت را تا زمانی که CPMS کنترل کند مدیریت می کند. همچنین اعلان‌های تغییر خط‌مشی قدرت را به شنوندگان بومی ارسال می‌کند.

برخی از ویژگی ها در VHAL تعریف شده اند. برای برقراری ارتباط با VMCU، CPMS این ویژگی ها را می خواند و می نویسد. برنامه ها می توانند از رابط تعریف شده در CPM برای نظارت بر تغییرات وضعیت برق استفاده کنند. این رابط همچنین برنامه ها را قادر می سازد تا شنوندگان سیاست قدرت را ثبت کنند. این API را می توان از جاوا فراخوانی کرد و با @hide / @System API حاشیه نویسی شده است، به این معنی که فقط برای برنامه های دارای امتیاز در دسترس است. رابطه بین این ماژول ها، برنامه ها و سرویس ها در زیر نشان داده شده است:

نمودار مرجع اجزای قدرت

شکل 2. نمودار مرجع اجزای قدرت.

دنباله پیام

بخش قبلی ماژول هایی را که سیستم مدیریت توان را تشکیل می دهند توضیح داد. این بخش از مثال‌های خواب عمیق و خروج از خواب عمیق برای توضیح نحوه ارتباط ماژول‌ها و برنامه‌ها استفاده می‌کند:

وارد خواب عمیق شوید

فقط VMCU می تواند خواب عمیق را آغاز کند. هنگامی که خواب عمیق شروع می شود، VMCU یک اعلان از طریق VHAL به CPMS ارسال می کند. CPMS وضعیت را به SHUTDOWN PREPARE تغییر می‌دهد و با فراخوانی متد onStateChanged() با شناسه وضعیت جدید ارائه‌شده توسط CPM، این انتقال حالت را برای همه ناظران (برنامه‌ها و سرویس‌هایی که CPMS را نظارت می‌کنند) پخش می‌کند.

CPM بین برنامه‌ها/سرویس‌ها و CPMS واسطه می‌شود. متد onStateChanged() برای برنامه ها/سرویس ها به طور همزمان در روش onStateChanged() CPM فراخوانی می شود. بیشتر برنامه‌ها و سرویس‌ها باید آماده‌سازی خود را قبل از بازگشت از این تماس تکمیل کنند. سرویس‌های ممتاز اجازه دارند پس از بازگشت به PRE_SHUTDOWN_PREPARE ، SUSPEND_ENTER ، POST_SUSPEND_ENTER آماده‌سازی خود را به صورت ناهمزمان ادامه دهند. در این مورد، سرویس ممتاز قرار است پس از اتمام آماده سازی، () () را در شیء ارائه شده CompletablePowerStateChangeFuture فراخوانی کند. توجه داشته باشید که آماده سازی ناهمزمان برای SHUTDOWN_PREPARE مجاز نیست. قبل از اینکه DEEP_SLEEP_ENTRY به VHAL ارسال شود، CPMS به طور دوره‌ای درخواست‌های تعویق خاموش شدن را به VHAL ارسال می‌کند.

هنگامی که تمام اشیاء CPM آماده سازی خاموش شدن را کامل کردند، CPMS AP_POWER_STATE_REPORT به VHAL ارسال می کند، که سپس به VMCU اطلاع می دهد که AP آماده تعلیق است. CPMS روش suspend خود را نیز نامیده می‌شود که هسته را معلق می‌کند.

توالی شرح داده شده در بالا در زیر نشان داده شده است:

وارد خواب عمیق شوید

شکل 3. وارد خواب عمیق شوید.

رابط های برنامه نویسی ارائه شده توسط CPM

این بخش جاوا API ارائه شده توسط CPM برای برنامه ها و سرویس های سیستم را شرح می دهد. این API نرم افزار سیستم را قادر می سازد تا:

  • نظارت بر تغییرات وضعیت قدرت در AP.
  • سیاست های قدرت را اعمال کنید.

از این مراحل برای فراخوانی API های ارائه شده توسط CPM استفاده کنید:

  1. برای به دست آوردن نمونه CPM، با Car API تماس بگیرید.
  2. متد مناسب را روی شی ایجاد شده در مرحله 1 فراخوانی کنید.

یک شی CarPowerManager ایجاد کنید

برای ایجاد یک شی CPM، متد getCarManager() شی Car را فراخوانی کنید. این روش یک نما است که برای ایجاد اشیاء CPM استفاده می شود. android.car.Car.POWER_SERVICE به عنوان آرگومان برای ایجاد یک شی CPM مشخص کنید.

Car car = Car.createCar(this);
CarPowerManager powerManager =
  (CarPowerManager) car.getCarManager(android.car.Car.POWER_SERVICE);

CarPowerStateListener و ثبت نام

برنامه‌ها و سرویس‌های سیستم می‌توانند اعلان‌های تغییر وضعیت انرژی را با پیاده‌سازی CarPowerManager.CarPowerStateListener دریافت کنند. این رابط یک متد onStateChanged() را تعریف می کند که یک تابع فراخوانی است که هنگام تغییر حالت قدرت CPMS فراخوانی می شود. مثال زیر یک کلاس ناشناس جدید را تعریف می کند که رابط را پیاده سازی می کند:

private final CarPowerManager.CarPowerStateListener powerListener =
  new CarPowerManager.CarPowerStateListener () {
    @Override
     public void onStateChanged(int state) {
       Log.i(TAG, "onStateChanged() state = " + state);
     }
};

برای دستور دادن به این شی شنونده برای نظارت بر انتقال حالت قدرت، یک رشته اجرایی جدید ایجاد کنید و شنونده و این رشته را در شی CPM ثبت کنید:

executor = new ThreadPerTaskExecutor();
powerManager.setListener(powerListener, executor);

هنگامی که حالت قدرت تغییر می کند، متد onStateChanged() شی شنونده با مقداری برای نشان دادن حالت قدرت جدید فراخوانی می شود. ارتباط بین مقدار واقعی و حالت توان در CarPowerManager تعریف شده است و در جدول زیر نشان داده شده است:

نام شرح
STATE_ON حالت روشن را وارد کنید. سیستم کاملاً فعال است.
STATE_SHUTDOWN_CANCELLED خاموش شدن لغو شده و حالت برق به حالت عادی برمی گردد.
STATE_SHUTDOWN_ENTER انتظار می رود برنامه ها پاک شوند و آماده خاموش شدن باشند.
STATE_POST_SHUTDOWN_ENTER آماده سازی برای خاموش شدن کامل شده است و VMCU آماده خاموش شدن است. حالت خاموش شدن را وارد کنید.
STATE_PRE_SHUTDOWN_PREPARE فرآیند خاموش کردن درخواست شده است اما CPMS هنوز این فرآیند را شروع نمی‌کند. صفحه نمایش و صدا هنوز روشن هستند
STATE_SHUTDOWN_PREPARE حالت گاراژ ممکن است در طول دوره اجرا شود.
STATE_SUSPEND_ENTER انتظار می رود برنامه ها پاک شوند و برای تعلیق در RAM آماده شوند.
STATE_POST_SUSPEND_ENTER آماده سازی برای تعلیق به رم به پایان رسیده است و VMCU برای تعلیق به رم آماده است. حالت تعلیق را وارد کنید.
STATE_SUSPEND_EXIT از تعلیق بیدار شوید یا از تعلیق لغو شده از سر بگیرید.
STATE_HIBERNATION_ENTER انتظار می رود برنامه ها پاک شوند و برای خواب زمستانی آماده شوند.
STATE_POST_HIBERNATION_ENTER آماده سازی برای خواب زمستانی به پایان رسیده است و VMCU برای خواب زمستانی آماده است وارد حالت خواب زمستانی شوید.
STATE_HIBERNATION_EXIT از خواب زمستانی بیدار شوید یا از خواب زمستانی لغو شده از سر بگیرید.
STATE_WAIT_FOR_VHAL سیستم در حال راه اندازی است، اما در انتظار برقراری ارتباط با VHAL قبل از رفتن به حالت ON است.

لغو ثبت نام CarPowerStateListener

برای لغو ثبت همه اشیاء شنونده ثبت شده در CPM، متد clearListener را فراخوانی کنید:

powerManager.clearListener();

یکپارچه سازی سیستم در پیاده سازی اندروید شما

یکپارچه سازها مسئول موارد زیر هستند:

  • پیاده سازی رابط هسته برای تعلیق اندروید.
  • پیاده سازی توابع VHAL برای:
    • انتشار شروع تعلیق یا خاموش شدن از خودرو به اندروید.
    • پیام خاموش شدن آماده از اندروید را به ماشین ارسال کنید.
    • خاموش کردن یا تعلیق اندروید را از طریق رابط هسته لینوکس آغاز کنید.
  • وقتی دستگاه در حالت تعلیق است، اطمینان حاصل کنید که همه منابع بیداری غیرفعال هستند.
  • اطمینان حاصل کنید که برنامه ها به اندازه کافی سریع خاموش می شوند تا به طور نامحدود روند خاموش شدن را به تعویق نیندازید.
  • اطمینان حاصل کنید که BSP اجزای دستگاه را مطابق با خط مشی برق روشن (یا خاموش) می کند تا مانع از تعلیق یا خواب زمستانی نشود.

رابط هسته: /sys/power/state

هنگامی که یک برنامه یا سرویس، mem برای suspend-to-RAM یا disk برای suspend-to-disk در فایلی که در /sys/power/state قرار دارد، می نویسد، AAOS دستگاه را در حالت تعلیق قرار می دهد. ادغام کننده باید تابعی را ارائه دهد که این فایل را نظارت کند و لینوکس را در حالت تعلیق برق قرار دهد. این عملکرد ممکن است یک GPIO به VMCU بفرستد تا به VMCU اطلاع دهد که دستگاه کاملاً خاموش شده است. یکپارچه کننده همچنین مسئول حذف هر گونه شرایط مسابقه بین VHAL ارسال پیام نهایی به VMCU و رفتن سیستم به حالت تعلیق یا خاموش شدن است.

مسئولیت VHAL

VHAL یک رابط بین شبکه خودرو و اندروید فراهم می کند. VHAL:

  • شروع تعلیق یا خاموش شدن خودرو را به اندروید منتشر می کند.
  • پیام آماده خاموش شدن را از اندروید به ماشین می فرستد.
  • خاموش کردن یا تعلیق اندروید را از طریق رابط هسته لینوکس آغاز می کند.

هنگامی که CPMS به VHAL اطلاع می دهد که آماده خاموش شدن است، VHAL پیغام آماده شدن خاموش شدن را به VMCU می فرستد. به طور معمول، تجهیزات جانبی روی تراشه مانند UART، SPI و USB پیام را منتقل می کنند. پس از ارسال پیام، CPMS فرمان هسته را برای تعلیق یا خاموش کردن دستگاه فراخوانی می کند. قبل از انجام این کار، VHAL یا BSP ممکن است یک GPIO را تغییر دهد تا به VMCU دستور دهد که حذف برق از دستگاه بی خطر است.

VHAL باید از ویژگی های زیر پشتیبانی کند که مدیریت توان را از طریق VHAL کنترل می کند:

نام شرح
AP_POWER_STATE_REPORT Android با استفاده از مقادیر enum VehicleApPowerStateReport، انتقال وضعیت به VMCU را گزارش می‌کند.
AP_POWER_STATE_REQ VMCU از این ویژگی برای دستور دادن به Android برای انتقال به حالت های مختلف قدرت با استفاده از مقادیر enum VehicleApPowerStateReq استفاده می کند.

AP_POWER_STATE_REPORT

از این ویژگی برای گزارش وضعیت فعلی مدیریت انرژی اندروید استفاده کنید. این ویژگی شامل دو عدد صحیح است:

  • int32Values[0] : VehicleApPowerStateNum وضعیت فعلی را گزارش کنید.
  • int32Values[1] : زمان به تعویق انداختن یا خوابیدن یا خاموش شدن بر حسب میلی ثانیه. معنای این مقدار به مقدار اول بستگی دارد.

مقدار اول می تواند یکی از مقادیر زیر را بگیرد. VehicleApPowerStateReport.aidl حاوی توضیحات خاص تری است که در hardware/interfaces/automotive/vehicle/aidl/android/hardware/automotive/vehicle ذخیره می شود.

نام ارزش شرح مقدار دوم
WAIT_FOR_VHAL AP در حال شروع است و نیاز به برقراری ارتباط با VHAL دارد.
DEEP_SLEEP_ENTRY AP در حال ورود به حالت خواب عمیق است. VMCU باید AP را پس از زمان مشخص شده در مقدار دوم دوباره روشن کند. باید تنظیم شود
DEEP_SLEEP_EXIT AP در حال خروج از حالت خواب عمیق است.
HIBERNATION_ENTRY AP در حال ورود به حالت خواب زمستانی است. VMCU باید AP را پس از زمان مشخص شده در مقدار دوم دوباره روشن کند. باید تنظیم شود
HIBERNATION_EXIT AP در حال خروج از حالت خواب زمستانی است.
SHUTDOWN_POSTPONE اندروید آماده خاموش شدن نیست. VMCU باید قبل از خاموش کردن AP منتظر زمان مشخص شده در مقدار دوم باشد. Android ممکن است با ارائه گزارش های SHUTDOWN_POSTPONE اضافی درخواست تعویق بیشتر کند. باید تنظیم شود
SHUTDOWN_PREPARE اندروید در حال آماده شدن برای خاموش شدن است. باید تنظیم شود
SHUTDOWN_START AP آماده خاموش شدن است. VMCU باید AP را پس از زمان مشخص شده در مقدار دوم دوباره روشن کند. (VMCU برای پشتیبانی از ویژگی روشن کردن زمان‌بندی شده لازم نیست.) باید تنظیم شود
SHUTDOWN_CANCELLED Android آماده شدن برای خاموش شدن را متوقف می کند و به WAIT_FOR_VHAL ادامه می دهد.
بر اندروید به طور معمول در حال اجرا است.

حالت را می توان به صورت مستقل یا در پاسخ به درخواست از طریق VMCU تنظیم کرد.

AP_POWER_STATE_REQ

این ویژگی توسط VMCU برای انتقال اندروید به حالت قدرت متفاوت ارسال می شود و شامل دو عدد صحیح است:

  • int32Values[0] : مقدار enum VehicleApPowerStateReq ، که وضعیت جدیدی را نشان می دهد که باید به آن انتقال داده شود.
  • int32Values[1] : VehicleApPowerStateShutdownParam مقدار enum. این مقدار فقط برای یک پیام SHUTDOWN_PREPARE ارسال می شود و گزینه های موجود در آن را به Android منتقل می کند.

اولین مقدار صحیح نشان دهنده وضعیت جدیدی است که اندروید قرار است به آن منتقل شود. معناشناسی در VehicleApPowerStateReq.aidl تعریف شده و در زیر ارائه شده است:

نام ارزش شرح
بر AP باید عملیات کامل را آغاز کند.
SHUTDOWN_PREPARE AP باید برای خاموش شدن آماده شود. مقدار دوم نشان می دهد که آیا AP مجاز است خاموش شدن را به تعویق بیندازد و آیا AP باید منتظر خاموش شدن یا ورود به خواب عمیق باشد.
CANCEL_SHUTDOWN AP باید آماده شدن برای خاموش شدن را متوقف کند و برای روشن شدن آماده شود.
تمام شده AP اکنون تعطیل یا تعلیق خواهد شد.

VehicleApPowerStateShutdownParam در VehicleApPowerStateShutdownParam.aidl تعریف شده است. این فهرست دارای این عناصر است:

نام ارزش شرح
CAN_SLEEP AP می تواند به جای خاموش شدن کامل، وارد خواب عمیق شود. تعویق مجاز است.
CAN_HIBERNATE AP می تواند به جای خاموش شدن کامل، وارد حالت خواب زمستانی شود. تعویق مجاز است.
SHUTDOWN_ONLY AP باید خاموش شود. تعویق مجاز است. خواب عمیق مجاز نیست
SLEEP_IMMEDIATELY AP ممکن است وارد خواب عمیق شود، اما باید یا بخوابد یا فورا خاموش شود. به تعویق انداختن جایز نیست.
HIBERNATE_IMMEDIATELY AP ممکن است وارد suspend-to-disk شود، اما باید یا Hibernate شود یا فوراً خاموش شود. به تعویق انداختن جایز نیست.
SHUTDOWN_IMMEDIATELY AP باید فوراً خاموش شود. به تعویق انداختن مجاز نیست خواب عمیق مجاز نیست

منابع بیدار

هنگامی که دستگاه در حالت تعلیق است، یکپارچه ساز باید منابع بیدار مناسب را غیرفعال کند. منابع بیداری متداول عبارتند از ضربان قلب، مودم، وای فای و بلوتوث. تنها منبع بیدار معتبر باید یک وقفه از VMCU باشد تا SoC را بیدار کند. این فرض را بر این می‌گذارد که VMCU می‌تواند برای رویدادهای بیداری از راه دور (مانند راه‌اندازی موتور از راه دور) به مودم گوش دهد. اگر این عملکرد به AP فشار داده شود، باید منبع بیدار دیگری برای سرویس مودم اضافه شود.

برنامه ها

OEM ها باید مراقب باشند که برنامه ها را بنویسند تا به سرعت خاموش شوند و این روند برای مدت نامحدود به تعویق نیفتد.

ضمیمه

دایرکتوری ها در درخت کد منبع

محتوا فهرست راهنما
کدهای مرتبط با CarPowerManager. packages/services/Car/car-lib/src/android/car/hardware/power
CarPowerManagementService و غیره. packages/services/Car/service/src/com/android/car/power
خدماتی که با VHAL سروکار دارند، مانند VehicleHal و HAlClient . packages/services/Car/service/src/com/android/car/hal
تعاریف رابط VHAL و ویژگی. hardware/interfaces/automotive/vehicle/aidl/android/hardware/automotive/vehicle/
نمونه برنامه برای ارائه ایده ای در مورد CarPowerManager packages/services/Car/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink

نمودار کلاس

این نمودار کلاس کلاس ها و رابط های جاوا را در سیستم مدیریت انرژی نمایش می دهد:

نمودار کلاس قدرت

شکل 4. نمودار کلاس قدرت.

رابطه شی

شکل 5 نشان می دهد که کدام اشیا به اشیاء دیگر ارجاع دارند. لبه به این معنی است که شی مبدأ یک ارجاع به شی مورد نظر دارد. به عنوان مثال، VehicleHAL به یک شی PropertyHalService اشاره دارد.

نمودار مرجع شی

شکل 5. نمودار مرجع شی.