این سند «دستگاههای مجازی Android» برای Test Lab را شرح میدهد، ازجمله مزایا و محدودیتهای شناختهشده. همچنین توصیههایی درباره نحوه آزمایش برنامه در طول چرخه حیات توسعه ارائه میدهیم. Test Lab AVDها شبیه AVDها برای Android Studio هستند اما برای عملکرد با آزمایش ابری بهینهسازی شدهاند، بنابراین تفاوتهای کمی بین این دو وجود دارد.
Test Lab «دستگاههای مجازی Android» با پسوند .arm یا (Arm) شبیهسازهای پیشرفتهای هستند که مزایای زیر را ارائه میدهند:
زمان اجرای تست سریعتر
اندازهها و تراکمهای صفحهنمایش با «دستگاههای مجازی Android» در «استودیو Android» برای یکپارچگی هماهنگ شده است
واحد پردازش گرافیکی از گرافیک شتابدار پشتیبانی میکند
جدول زیر مزایای استفاده از دستگاههای مجازی را شرح میدهد:
| مزایا | شرح | کاربرد(ها) |
| دسترسیپذیری بالا | وقتی با دستگاههای مجازی آزمایش میکنید، میتوانید آزمایشها را اجرا کنید و نتایج آزمایش را سریعتر دریافت کنید. چون دستگاههای مجازی بهمحض درخواست ایجاد میشوند، آزمایشهای شما تقریباً بلافاصله شروع میشوند و درستیسنجی سریع برنامهتان را فراهم میکنند. | آزمایش بهروزرسانیهای کوچک برای برنامه شما، یا برای آزمایش پسرفت. |
| مدت زمان طولانیتر آزمایش | دستگاههای مجازی از مدت آزمایش حداکثر تا ۶۰ دقیقه پشتیبانی میکنند. آزمایشها در دستگاههای فیزیکی به مدت آزمایش ۴۵ دقیقه در هر دستگاه محدود میشود. | اجرای آزمایشهای طولانیتر |
| هزینههای کمتر | قیمت دستگاههای مجازی ۱ دلار در ساعت برای هر دستگاه مجازی مورداستفاده برای آزمایش برنامه شما است. | آزمایش روزانه بااستفاده از سیستمهای یکپارچهسازی مداوم، یا قبلاز بررسی کد. برای کسب اطلاعات بیشتر، سطوح استفاده، سهمیهها، و قیمتگذاری برای Test Lab را ببینید. |
آزمایش کردن برنامه با دستگاههای مجازی
میتوانید برنامهتان را با دستگاههای مجازی به همان روشی که با دستگاههای فیزیکی آزمایش میکنید آزمایش کنید. وقتی ماتریس آزمایشی را پیکربندی میکنید، میتوانید دستگاههای مجازی را برای آزمایشهایتان انتخاب کنید. برای کسب اطلاعات بیشتر درباره اجرای آزمایشها با Test Lab، به شروع آزمایش برای Android با Firebase Test Lab مراجعه کنید.
مشاهده مدلها و میاناهای برنامهسازی کاربردی پشتیبانیشده
برای مشاهده مدلهای AVD و میاناهای برنامهسازی کاربردی پشتیبانیشده توسط Test Lab، فرمان زیر را اجرا کنید:
gcloud firebase test android models list --filter=virtual
روالهای مطلوب برای آزمایش برنامه
دستگاههای مجازی هنگام آزمایش برنامه با Test Lab، دامنه گزینههایتان را افزایش میدهند. توصیه میکنیم از روالهای مطلوب زیر برای آزمایش برنامه درطول چرخه عمر توسعه برنامه استفاده کنید:
از شبیهساز «استودیو Android» یا دستگاه فیزیکی متصل استفاده کنید
هنگام توسعه برنامه، از شبیهساز Android Studio یا دستگاه فیزیکی متصل برای بررسی هر ساختار برای اعتبارسنجی اولیه استفاده کنید. اگر آزمایشهای ابزار دقیق دارید، میتوانید این آزمایشها را از Android Studio در دستگاههای فیزیکی یا مجازی ارائهشده توسط Test Lab اجرا کنید.
هنگام کار روی پروژههای مشترک، از سیستمهای CI در هر تغییر کد استفاده کنید
اگر روی پروژهای بزرگ کار میکنید یا در پروژههایی که بااستفاده از GitHub یا سایتی مشابه همرسانی میشوند مشارکت میکنید، توصیه میکنیم از سیستمهای یکپارچهسازی مداوم (CI) استفاده کنید. هر بار که سیستم CI اجرا میشود یا قبلاز هر درخواست کشیدن، برنامههایتان را در دستگاههای مجازی آزمایش کنید. برای کسب اطلاعات بیشتر درباره استفاده از Test Lab با سیستمهای CI، به استفاده از Test Lab برای Android با سیستمهای یکپارچهسازی مداوم مراجعه کنید.
پیشاز انتشار بهروزرسانیهای مهم برنامه، آن را در دستگاههای فیزیکی با Test Lab آزمایش کنید
قبلاز انتشار بهروزرسانیهای برنامه با تغییرات قابلتوجه در میانای کاربر و عملکرد، توصیه میکنیم از Test Lab برای آزمایش برنامهتان در دستگاههای فیزیکی استفاده کنید. این کار کمک میکند مطمئن شوید که برنامه شما در طیف وسیعی از دستگاههای فیزیکی محبوب پایدار و کارآمد است. آزمایش در دستگاههای فیزیکی همچنین پوشش آزمایشی برای هر عملکرد برنامه که به ویژگیهای دستگاه فیزیکی متکی است و توسط دستگاههای مجازی شبیهسازی نمیشود را تضمین میکند. برای کسب اطلاعات بیشتر درباره این ویژگیها، محدودیتهای شناختهشده را ببینید.
بهروزرسانیهای دستگاه مجازی
تیم Android بهصورت دورهای تصاویر دستگاه مجازی جدید اضافه میکند، تصاویر قدیمی را منسوخ میکند، و تصاویر موجود را بهروز میکند. این بهروزرسانیها را روی تصاویر دستگاه مجازی خود اعمال میکنیم تا مطمئن شویم که نسخههای Android بهروزی را که منعکسکننده تجربههای کاربران شما است آزمایش میکنید.
در موارد نادر، این بهروزرسانیها ممکن است باعث شوند آزمایشها بهطور غیرمنتظرهای ناموفق شوند. وقتی بهروزرسانی بالقوه مخربی وجود داشته باشد، Test Lab اطلاعات را در یادداشتهای انتشار درج خواهد کرد. بهعنوان روال مطلوب، توصیه میکنیم درصورت امکان از چارچوبهای آزمایش – برای مثال، Espresso – که دربرابر این تغییرات مقاوم هستند استفاده کنید. وقتی این امکان وجود ندارد، توصیه میکنیم دستگاههای مجازی Arm را هدفیابی کنید، زیرا میتوانید انتظار داشته باشید که کمتر بهروزرسانی شوند.
محدودیتهای شناختهشده
درحالحاضر برخیاز ویژگیهای دستگاه فیزیکی توسط دستگاههای مجازی شبیهسازی نمیشوند، یا با برخی محدودیتها شبیهسازی میشوند. جدول زیر ویژگیهایی را که درحالحاضر در دستگاههای مجازی دردسترس نیستند یا با محدودیتهای خاصی دردسترس هستند خلاصه میکند:
| ویژگی | جزئیات |
| میاناهای دودویی کاربردی (ABI) | همه دستگاهها از همه ABIها پشتیبانی نمیکنند. اگر با Android NDK توسعه میدهید، حتماً برای
رابطهای دودویی نرمافزار پشتیبانیشده توسط دستگاههایی که هدفیابی میکنید کد تولید کنید (به دستگاههای
درحال استفاده در
Test Lab مراجعه کنید). برای کسب اطلاعات بیشتر درباره مدیریت ABI، به Android
ABIs مراجعه کنید.
توجه: اگر آزمایشی در ماتریس آزمون شما بهعنوان «نامعتبر» علامتگذاری شده است، این ممکن است به این دلیل رخ دهد که برنامه شما به کد بومیای وابسته است که دستگاه ABI از آن پشتیبانی نمیکند. |
| عملکرد گرافیک | دستگاههای مجازی Nexus و Pixel از پردازش گرافیکی نرمافزاری استفاده میکنند. برنامههایی که از گرافیک سنگین استفاده میکنند ممکن است عملکرد پایینتری داشته باشند. اگر برنامه شما از نظر گرافیکی سنگین است، بهجای آن از SmallPhone.arm، MediumPhone.arm، یا دستگاههای فیزیکی استفاده کنید. |
| میاناهای برنامهسازی کاربردی گرافیک | OpenGL ES 3.x در دستگاههای دارای میانای برنامهسازی کاربردی پایینتر از ۲۹ پشتیبانی نمیشود. دستگاههای جدیدتر با میاناهای برنامهسازی کاربردی OpenGL/Vulkan ۱۰۰٪ سازگار نیستند، ممکن است تفاوتهای کوچکی در گرافیک مشاهده کنید. |
| برنامه «فروشگاه Google Play» | «برنامه فروشگاه Google Play» در دستگاههای مجازی Arm پشتیبانی نمیشود. |
| کارکرد «واقعیت افزوده» (AR) | آزمایش عملکرد «واقعیت افزوده» (AR) در دستگاههای مجازی پشتیبانی نمیشود. |
| سطوح قدیمیتر میانای برنامهسازی کاربردی | دستگاههای مجازی Test Lab Arm از سطوح API کمتر از ۲۶ پشتیبانی نمیکنند. |