«میاناهای برنامهسازی کاربردی Google Home» برای Android سطحی یکپارچه از API ارائه میدهد تا توسعهدهندگان بتوانند با وضعیت نهادهای خانه کاربر تعامل داشته باشند. این نهادها میتوانند دستگاهها و اطلاعات غیردستگاهی مرتبط با ساختار و اتاقهای کاربر را توصیف کنند.
«میاناهای برنامهسازی کاربردی خانه» نهادهای زیر را که کاربر میتواند با آنها تعامل داشته باشد تعریف میکند:
- ساختمانها نشاندهنده خانهای هستند که شامل اتاقها و دستگاهها میشود.
- اتاقها بخشی از ساختار هستند و شامل دستگاهها میشوند.
- دستگاهها مشخصههای حاوی صفات را پیادهسازی میکنند، با انواع مطابقت دارند، رویدادها را منتشر میکنند، و به فرمانها پاسخ میدهند.
- گروههای دستگاه مجموعههای تعریفشده توسط کاربر از دستگاهها در یک ساختار هستند.
- خودکارسازیها بخشی از ساختار هستند و از فرادادههای خانه و دستگاهها برای خودکارسازی کردن کارها در خانه استفاده میکنند.
شکل ۱ این معماری را نشان میدهد:
انواع دستگاه Home API ممکن است توسط Matter، یک استاندارد باز برای خانه هوشمند، پشتیبانی شوند یا دستگاه Cloud-to-cloud در اکوسیستم Google Home باشند. برخیاز انواع دستگاه ممکن است عملکرد هر دو را داشته باشند. برای اطلاعات بیشتر، انواع دستگاههای پشتیبانیشده در Android را ببینید.
در Matter، عملکرد دستگاه براساس خوشهها گروهبندی میشود، که در «میاناهای برنامهسازی کاربردی Home» بهعنوان Matter ویژگیهای استاندارد نشان داده میشود. «میاناهای برنامهسازی کاربردی خانه» از مجموعه استاندارد Matter خوشهها که در مشخصات Matter فعلی تعریف شده است پشتیبانی میکند.
در بومسازگان Google Home، عملکرد دستگاه براساس ویژگیهای خانه هوشمند گروهبندی میشود که در «میاناهای برنامهسازی کاربردی Home» بهعنوان ویژگیهای خانه هوشمند Google نشان داده میشوند. «میاناهای برنامهسازی کاربردی خانه» از مجموعه مشخصههای خانه هوشمند که در Cloud-to-cloud برنامه تعریف شده است پشتیبانی میکند.
ویژگیهای دیگر، مثل خوشههای مختص سازنده و ویژگیهای پلاتفرم، نیز دردسترس هستند. برای کسب اطلاعات بیشتر، مدل داده در Android را ببینید.
بومسازگان
بومسازگان Google Home زیربنایی ساده برای ساخت، مدیریت، ایمنسازی، و ادغام تجربههای خانه هوشمند فراهم میکند. شکل ۲ نشان میدهد که اجزا چگونه با هم کار میکنند.
این بومسازگان شامل موتور خودکارسازی Google است که خودکارسازیها را ذخیره و اجرا میکند و روشی برای خودکارسازی کردن تکالیف و تنظیمات دستگاه در خانه ارائه میدهد.
«میاناهای برنامهسازی کاربردی خانه» از OAuth 2.0 برای اعطای دسترسی به دستگاههای موجود در ساختار استفاده میکند. OAuth به کاربر امکان میدهد بدون نیاز به آشکار کردن اطلاعات اعتباری ورود به سیستم خود، به برنامه یا سرویس اجازه دهد.
از Google Home Developer Console برای مدیریت همه مراحل پروژه «میاناهای برنامهسازی کاربردی Home» استفاده میشود، از درستیسنجی نمانام گرفته تا توسعه، آزمایش، و صدور گواهینامه و درنهایت راهاندازی. این پلتفرم فرایند توسعه را ساده میکند و درعینحال ابزارهای قدرتمند و توزیع ازطریق بومسازگان Google Home را ارائه میدهد.
زبان
«میاناهای برنامهسازی کاربردی خانه» برای Android به زبان Kotlin نوشته شده است و یک رابط Kotlin اصطلاحی ارائه میدهد که از Flow برای مدیریت وضعیت و اشتراک استفاده میکند. این امر مزایای متعددی نسبت به API اشتراک استاندارد ارائه میدهد.
اگر با مستندات Kotlin درباره روالهای مشترک، جریان، و Jetpack Compose آشنا نیستید، توصیه میکنیم با آنها آشنا شوید:
- توسعه برنامههای Android با Kotlin
- آشنایی با Kotlin برای Android
- روالهای مشترک Kotlin در Android. این codelabهای خاص ممکن است مفید باشند:
- جریانهای Kotlin در Android و بهطور خاصتر، StateFlow.
- حالت و Jetpack Compose، بهویژه تابع
collectAsStateWithLifecycle(). این تابع بهطور خودکار براساس اینکه آیا واسط کاربر نشاندهنده آن وضعیت واقعاً در پیشزمینه است یا نه، اشتراک و لغو اشتراک از جاریسازیها را مدیریت میکند. - اگر با «میانای برنامهسازی کاربردی خودکارسازی» کار میکنید، خواندن درباره سازندگان ایمن نوع Kotlin برای درک نحوه عملکرد «زبان خودکارسازی دامنه خاص» مفید است.
شناسههای نهاد
هر نهاد در «میاناهای برنامهسازی کاربردی خانه» شناسه دارد که نشاندهنده شناسه اصلی آن است. این شناسه یک شناسه یکتا و پایدار است که در طول عمر نهاد هرگز تغییر نخواهد کرد. از این شناسه میتوان برای ذخیره کردن اشیا در حافظه نهان یا بررسی برابری استفاده کرد زیرا فراداده یک نهاد میتواند تغییر کند.
برای آشنایی با نهادهایی که شناسه دارند،
واسط HasId را ببینید.
نگاشت اصطلاحات
نهادهای موجود در Home APIs به مفاهیم Matter و Cloud-to-cloud بهصورت زیر نگاشت میشوند:
| Home APIs | Matter | Cloud-to-cloud |
|---|---|---|
| ویژگی | خوشه | ویژگی |
| مشخصه | مشخصه | مشخصه، ایالت |
| فرمان | فرمان | فرمان |
| رویداد | رویداد | پاسخ پیگیری، اعلان |