این سند «دستگاههای مجازی Android» را برای Test Lab شرح میدهد، ازجمله مزایا و محدودیتهای شناختهشده. همچنین توصیههایی درباره نحوه آزمایش برنامه درطول چرخه حیات توسعه ارائه میدهیم. Test Lab «دستگاههای مجازی Android» شبیه به «دستگاههای مجازی Android» برای Android Studio هستند اما برای عملکرد با آزمایش ابری بهینهسازی شدهاند، بنابراین چند تفاوت بین این دو وجود دارد.
Test Lab دستگاههای مجازی Android با پسوند arm .یا (Arm) شبیهسازهای پیشرفتهای هستند که مزایای زیر را ارائه میدهند:
زمان اجرای آزمایشی سریعتر
اندازهها و تراکمهای صفحه با AVDهای «استودیو 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 اجرا میشود یا قبلاز هر درخواست pull، برنامههایتان را در دستگاههای مجازی آزمایش کنید. برای کسب اطلاعات بیشتر درباره استفاده از Test Lab با سیستمهای CI، به استفاده از Test Lab برای Android با سیستمهای ادغام مداوم مراجعه کنید.
قبلاز انتشار بهروزرسانیهای مهم برنامه، برنامهتان را با Test Lab در دستگاههای فیزیکی آزمایش کنید
قبلاز انتشار بهروزرسانیهای برنامه با تغییرات قابلتوجه در میانای کاربر و عملکرد، توصیه میکنیم از Test Lab برای آزمایش برنامهتان در دستگاههای فیزیکی استفاده کنید. این کار کمک میکند مطمئن شوید برنامهتان در طیف وسیعی از دستگاههای فیزیکی محبوب پایدار و کارا است. آزمایش روی دستگاههای فیزیکی همچنین پوشش آزمایشی را برای هر عملکرد برنامه که به ویژگیهای دستگاه فیزیکی متکی است و توسط دستگاههای مجازی شبیهسازی نمیشود، تضمین میکند. برای کسب اطلاعات بیشتر درباره این ویژگیها، به محدودیتهای شناختهشده مراجعه کنید.
بهروزرسانیهای دستگاه مجازی
تیم Android بهطور دورهای تصاویر دستگاه مجازی جدید اضافه میکند، تصاویر قدیمی را منسوخ میکند، و تصاویر موجود را بهروز میکند. این بهروزرسانیها را در تصاویر دستگاه مجازیمان اعمال میکنیم تا مطمئن شویم که درحال آزمایش نسخههای بهروز Android هستید که بازتابدهنده تجربههای کاربران شما است.
در موارد نادر، این بهروزرسانیها ممکن است باعث شود آزمایشها بهطور غیرمنتظرهای ناموفق باشد. وقتی بهروزرسانی بالقوه مخربی وجود داشته باشد، Test Lab اطلاعاتی را در یادداشتهای انتشار قرار میدهد. بهعنوان بهترین شیوه، توصیه میکنیم از چارچوبهای آزمایشی – برای مثال، Espresso – استفاده کنید که درصورت امکان دربرابر این تغییرات مقاوم باشند. وقتی این کار ممکن نیست، توصیه میکنیم دستگاههای مجازی Arm را هدف قرار دهید که میتوانید انتظار داشته باشید کمتر بهروزرسانی شوند.
محدودیتهای شناختهشده
برخیاز ویژگیهای دستگاه فیزیکی درحالحاضر توسط دستگاههای مجازی شبیهسازی نمیشوند، یا با برخی محدودیتها شبیهسازی میشوند. جدول زیر ویژگیهایی را خلاصه میکند که درحالحاضر در دستگاههای مجازی دردسترس نیستند یا با محدودیتهای خاصی دردسترس هستند:
| ویژگی | جزئیات |
| میانای دودویی کاربردی (ABI) | همه دستگاهها از همه ABIها پشتیبانی نمیکنند. اگر
با Android NDK توسعه میدهید، حتماً برای رابطهای دودویی نرمافزار پشتیبانیشده توسط دستگاههایی که هدفیابی میکنید کد تولید کنید (به دستگاههای
موجود در
Test Lab مراجعه کنید). برای آشنایی بیشتر با مدیریت رابط دودویی نرمافزار، به رابطهای دودویی نرمافزار
Android مراجعه کنید.
توجه: اگر آزمایشی در ماتریس آزمایشی شما بهعنوان «نامعتبر» علامتگذاری شده باشد، ممکن است به این دلیل باشد که برنامه شما به کد بومیای وابسته است که ABI دستگاه از آن پشتیبانی نمیکند. |
| عملکرد گرافیک | دستگاههای مجازی Nexus و Pixel از پردازش گرافیکی نرمافزاری استفاده میکنند. برنامههایی که گرافیک سنگین دارند ممکن است عملکرد ضعیفتری داشته باشند. اگر برنامهتان گرافیک سنگینی دارد، بهجای آن از SmallPhone.arm، MediumPhone.arm، یا دستگاههای فیزیکی استفاده کنید. |
| میاناهای برنامهسازی کاربردی گرافیک | OpenGL ES 3.x در دستگاههای پایینتر از سطح میانای برنامهسازی کاربردی ۲۹ پشتیبانی نمیشود. دستگاههای جدیدتر ۱۰۰٪ با میاناهای برنامهسازی کاربردی OpenGL/Vulkan سازگار نیستند، ممکن است متوجه تفاوتهای کوچکی در گرافیک شوید. |
| برنامه فروشگاه Google Play | برنامه «فروشگاه Google Play» در دستگاههای مجازی Arm پشتیبانی نمیشود. |
| عملکرد واقعیت افزوده (AR) | آزمایش عملکرد «واقعیت افزوده» (AR) در دستگاههای مجازی پشتیبانی نمیشود. |
| سطوح قدیمیتر میانای برنامهسازی کاربردی | Test Lab دستگاههای مجازی Arm از سطوح API کمتر از ۲۶ پشتیبانی نمیکنند. |