شبیه ساز را از خط فرمان شروع کنید

کیت توسعه نرم‌افزار اندروید (SDK) شامل یک شبیه‌ساز دستگاه اندروید است - یک دستگاه مجازی که روی رایانه شما اجرا می‌شود. شبیه‌ساز اندروید به شما امکان می‌دهد برنامه‌های اندروید را بدون استفاده از یک دستگاه فیزیکی توسعه داده و آزمایش کنید.

این صفحه ویژگی‌های خط فرمانی را که می‌توانید با شبیه‌ساز اندروید استفاده کنید، شرح می‌دهد. برای اطلاعات بیشتر در مورد استفاده از رابط کاربری شبیه‌ساز اندروید، به بخش اجرای برنامه‌ها در شبیه‌ساز اندروید مراجعه کنید.

شبیه‌ساز را شروع کنید

برای شروع شبیه‌ساز، به عنوان جایگزینی برای اجرای پروژه یا شروع آن از طریق AVD Manager ، از دستور emulator استفاده کنید.

در اینجا سینتکس خط فرمان پایه برای شروع یک دستگاه مجازی از طریق اعلان ترمینال آمده است:

emulator -avd avd_name [ {-option [value]} … ]

یا

emulator @avd_name [ {-option [value]} … ]

برای مثال، اگر شبیه‌ساز را از داخل اندروید استودیو که روی مک اجرا می‌شود، اجرا کنید، خط فرمان پیش‌فرض مشابه زیر خواهد بود:

/Users/janedoe/Library/Android/sdk/emulator/emulator -avd Pixel8_API_34 -netdelay none -netspeed full -qt-hide-window -grpc-use-token -idle-grpc-timeout

لطفاً توجه داشته باشید که آرگومان‌های -qt-hide-window -grpc-use-token -idle-grpc-timeout ‎ فقط برای اجرای پنجره شبیه‌ساز در اندروید استودیو استفاده می‌شوند. اگر می‌خواهید شبیه‌ساز را در پنجره خودش اجرا کنید، نباید از این پارامترهای اضافی استفاده کنید.

شما می‌توانید گزینه‌های راه‌اندازی را هنگام شروع شبیه‌ساز مشخص کنید، اما نه پس از شروع آن.

برای مشاهده لیست نام‌های AVD، دستور زیر را وارد کنید:

emulator -list-avds

از این گزینه برای نمایش لیستی از نام‌های AVD از دایرکتوری خانگی اندروید خود استفاده کنید. می‌توانید با تنظیم متغیر محیطی ANDROID_SDK_HOME که ریشه دایرکتوری مخصوص کاربر را که تمام پیکربندی‌ها و محتوای AVD در آن ذخیره می‌شود، مشخص می‌کند، دایرکتوری خانگی پیش‌فرض را لغو کنید.

شما می‌توانید متغیر محیطی را در پنجره ترمینال قبل از راه‌اندازی یک دستگاه مجازی یا از طریق تنظیمات کاربری خود در سیستم عامل تنظیم کنید. به عنوان مثال، در فایل .bashrc خود در لینوکس.

برای متوقف کردن شبیه‌ساز اندروید، پنجره شبیه‌ساز را ببندید.

نصب یک برنامه

علاوه بر نصب برنامه از طریق اندروید استودیو یا رابط کاربری شبیه‌ساز ، می‌توانید برنامه خود را با استفاده از ابزار adb روی یک دستگاه مجازی نصب کنید.

برای استفاده از adb برای نصب، اجرا و آزمایش برنامه خود، این مراحل کلی را دنبال کنید:

  1. همانطور که در بخش «ساخت و اجرای برنامه» توضیح داده شده است، برنامه خود را در یک فایل APK بسازید و بسته‌بندی کنید.
  2. همانطور که در بخش قبل توضیح داده شد، شبیه‌ساز را از خط فرمان و با استفاده از هر گزینه راه‌اندازی لازم، اجرا کنید.
  3. برنامه خود را با استفاده از adb نصب کنید.
  4. برنامه خود را روی شبیه‌ساز اجرا و آزمایش کنید.
    در حالی که شبیه‌ساز در حال اجرا است، می‌توانید از کنسول شبیه‌ساز برای صدور دستورات مورد نیاز استفاده کنید.

برای حذف نصب یک برنامه، مانند حذف نصب آن در دستگاه‌های اندروید عمل کنید.

دستگاه مجازی، برنامه و داده‌های وضعیت آن را در طول راه‌اندازی‌های مجدد در یک پارتیشن دیسک داده‌های کاربر ( userdata-qemu.img ) حفظ می‌کند. برای پاک کردن این داده‌ها، شبیه‌ساز را با گزینه -wipe-data اجرا کنید یا داده‌ها را در AVD Manager پاک کنید. برای اطلاعات بیشتر در مورد پارتیشن داده‌های کاربر و سایر حافظه‌ها، به بخش زیر مراجعه کنید.

نکته: ابزار adb دستگاه مجازی را به عنوان یک دستگاه فیزیکی واقعی در نظر می‌گیرد. به همین دلیل، ممکن است مجبور شوید از پرچم -d با برخی از دستورات رایج adb ، مانند install استفاده کنید. پرچم -d به شما امکان می‌دهد مشخص کنید کدام یک از چندین دستگاه متصل به عنوان هدف یک دستور استفاده شود. اگر -d را مشخص نکنید، شبیه‌ساز اولین دستگاه موجود در لیست خود را هدف قرار می‌دهد.

آشنایی با دایرکتوری‌ها و فایل‌های پیش‌فرض

این شبیه‌ساز از فایل‌های مرتبط استفاده می‌کند که از بین آنها، دایرکتوری‌های سیستم و داده‌های AVD مهمترین هستند. درک ساختار دایرکتوری و فایل‌های شبیه‌ساز هنگام تعیین گزینه‌های خط فرمان مفید است، اگرچه معمولاً نیازی به تغییر دایرکتوری‌ها یا فایل‌های پیش‌فرض ندارید.

شبیه‌ساز اندروید از هایپروایزر ( QEMU ) استفاده می‌کند.

دایرکتوری سیستم AVD

دایرکتوری سیستم شامل تصاویر سیستم اندروید است که شبیه‌ساز برای شبیه‌سازی سیستم عامل از آنها استفاده می‌کند. این دایرکتوری حاوی فایل‌های فقط خواندنی و مختص پلتفرم است که توسط همه AVD های هم نوع، از جمله سطح API، معماری CPU و نوع اندروید، به اشتراک گذاشته می‌شود. مکان‌های پیش‌فرض به شرح زیر هستند:

  • macOS و لینوکس - ~/Library/Android/sdk/system-images/android- apiLevel / variant / arch /
  • ویندوز - C:\Users\ user \Library\Android\sdk\system-images\android- apiLevel \ variant \ arch \

کجا:

  • apiLevel یک سطح API عددی یا یک حرف برای نسخه‌های پیش‌نمایش است. برای مثال، android-V نشان‌دهنده پیش‌نمایش Android VanillaIceCream است. در زمان انتشار، به سطح API 35 تبدیل شد که با android-35 مشخص می‌شود.
  • variant نامی است که با ویژگی‌های خاصی که توسط تصویر سیستم پیاده‌سازی شده‌اند، مطابقت دارد. برای مثال، google_apis یا android-wear .
  • معماری پردازنده هدف، arch است. برای مثال، x86 .

از گزینه -sysdir برای مشخص کردن یک دایرکتوری سیستمی متفاوت برای AVD استفاده کنید.

شبیه‌ساز فایل‌های زیر را از دایرکتوری سیستم می‌خواند:

جدول 1. فایل‌های دایرکتوری سیستم که توسط شبیه‌ساز اندروید خوانده می‌شوند

فایل توضیحات گزینه‌ای برای مشخص کردن یک فایل متفاوت
kernel-qemu یا kernel-ranchu تصویر هسته دودویی برای AVD.kernel kernel-ranchu مبتنی بر شبیه‌ساز QEMU است. -kernel
ramdisk.img ایمیج پارتیشن بوت. این زیرمجموعه‌ای از system.img است که توسط هسته در ابتدا و قبل از نصب ایمیج سیستم بارگذاری می‌شود. این فایل معمولاً فقط شامل چند فایل باینری و اسکریپت‌های مقداردهی اولیه است. -ramdisk
system.img نسخه اولیه و فقط خواندنی از تصویر سیستم. به طور خاص، پارتیشنی که شامل کتابخانه‌های سیستم و داده‌های مربوط به سطح و نوع API است. -system
userdata.img نسخه اولیه پارتیشن داده، که در سیستم شبیه‌سازی شده به صورت data/ نمایش داده می‌شود و شامل تمام داده‌های قابل نوشتن برای AVD است. شبیه‌ساز هنگام ایجاد یک AVD جدید یا استفاده از گزینه ‑wipe-data از این فایل استفاده می‌کند. برای اطلاعات بیشتر، به توضیحات فایل userdata-qemu.img در بخش بعدی مراجعه کنید. -initdata
-init-data

دایرکتوری داده AVD

دایرکتوری داده AVD که دایرکتوری محتوا نیز نامیده می‌شود، مختص یک نمونه AVD واحد است و شامل تمام داده‌های قابل تغییر برای AVD می‌باشد.

مکان پیش‌فرض به صورت زیر است که در آن name همان نام AVD است:

  • macOS و لینوکس - ~/.android/avd/ name .avd/
  • ویندوز ۱۰ و بالاتر - C:\Users\ user \.android\ name .avd\

از گزینه -datadir برای مشخص کردن یک دایرکتوری داده AVD متفاوت استفاده کنید.

جدول زیر مهم‌ترین فایل‌های موجود در این دایرکتوری را فهرست می‌کند:

جدول ۲. فایل‌های مهم در دایرکتوری داده‌های AVD

فایل توضیحات گزینه‌ای برای مشخص کردن یک فایل متفاوت
userdata-qemu.img

محتوای پارتیشن داده، که در سیستم شبیه‌سازی شده به صورت data/ نمایش داده می‌شود. وقتی یک AVD جدید ایجاد می‌کنید یا وقتی از گزینه -wipe-data برای تنظیم مجدد AVD به تنظیمات کارخانه استفاده می‌کنید، شبیه‌ساز فایل userdata.img را در دایرکتوری سیستم کپی می‌کند تا این فایل را ایجاد کند.

هر نمونه دستگاه مجازی از یک تصویر داده کاربر قابل نوشتن برای ذخیره داده‌های خاص کاربر و جلسه استفاده می‌کند. به عنوان مثال، از این تصویر برای ذخیره داده‌های برنامه نصب شده، تنظیمات، پایگاه‌های داده و فایل‌های منحصر به فرد یک کاربر استفاده می‌کند. هر کاربر یک دایرکتوری ANDROID_SDK_HOME متفاوت دارد که دایرکتوری‌های داده را برای AVD های ایجاد شده توسط آن کاربر ذخیره می‌کند. هر AVD یک فایل userdata-qemu.img واحد دارد.

-data
cache.img تصویر پارتیشن کش، که در سیستم شبیه‌سازی شده به صورت cache/ نمایش داده می‌شود. وقتی برای اولین بار AVD ایجاد می‌کنید یا از گزینه -wipe-data استفاده می‌کنید، خالی است. این فایل‌ها، فایل‌های دانلود موقت را ذخیره می‌کنند و توسط مدیر دانلود و گاهی اوقات سیستم پر می‌شوند. به عنوان مثال، مرورگر از آن برای ذخیره صفحات وب و تصاویر دانلود شده در حین اجرای شبیه‌ساز استفاده می‌کند. وقتی دستگاه مجازی را خاموش می‌کنید، فایل حذف می‌شود. می‌توانید با استفاده از گزینه -cache ، فایل را حفظ کنید. -cache
sdcard.img

(اختیاری) یک تصویر پارتیشن کارت SD که به شما امکان می‌دهد یک کارت SD را روی یک دستگاه مجازی شبیه‌سازی کنید. می‌توانید یک فایل تصویر کارت SD را در AVD Manager یا با استفاده از ابزار mksdcard ایجاد کنید. این فایل در رایانه توسعه شما ذخیره می‌شود و باید در هنگام راه‌اندازی بارگیری شود.

هنگام تعریف AVD در AVD Manager، می‌توانید از یک فایل کارت SD که به طور خودکار مدیریت می‌شود یا فایلی که با ابزار mksdcard ایجاد کرده‌اید، استفاده کنید. می‌توانید فایل sdcard.img مرتبط با یک AVD را در AVD Manager مشاهده کنید. گزینه -sdcard فایل کارت SD مشخص شده در AVD را لغو می‌کند. توجه داشته باشید که این گزینه کارت SD در مک با Apple Silicon کار نخواهد کرد.

شما می‌توانید با استفاده از رابط کاربری شبیه‌ساز یا ابزار adb در حالی که دستگاه مجازی در حال اجرا است، به مرور فایل‌ها بپردازید، به آنها فایل ارسال کنید، فایل‌ها را از کارت SD شبیه‌سازی شده کپی و حذف کنید. شما نمی‌توانید یک کارت SD شبیه‌سازی شده را از یک دستگاه مجازی در حال اجرا خارج کنید.

برای کپی کردن فایل‌ها به کارت SD قبل از بارگذاری آن، فایل ایمیج را به عنوان یک دستگاه حلقه‌ای mount کنید و سپس فایل‌ها را کپی کنید. یا از ابزاری مانند بسته mtools برای کپی کردن مستقیم فایل‌ها به ایمیج استفاده کنید.

شبیه‌ساز با فایل به عنوان مجموعه‌ای از بایت‌ها رفتار می‌کند، بنابراین فرمت کارت SD اهمیتی ندارد.

گزینه -wipe-data روی این فایل تأثیری ندارد. اگر می‌خواهید فایل را پاک کنید، آن را حذف کرده و سپس با استفاده از AVD Manager یا ابزار mksdcard آن را دوباره ایجاد کنید. تغییر اندازه فایل نیز فایل را حذف کرده و یک فایل جدید ایجاد می‌کند.

-sdcard

فهرست دایرکتوری‌ها و فایل‌های استفاده شده توسط شبیه‌ساز

شما می‌توانید به دو روش محل قرارگیری فایل‌ها را پیدا کنید:

  • هنگام اجرای شبیه‌ساز از خط فرمان، از گزینه‌های -verbose یا -debug init استفاده کنید. به خروجی نگاه کنید.
  • از دستور emulator -help- option برای فهرست کردن دایرکتوری پیش‌فرض استفاده کنید. برای مثال:
    emulator -help-datadir
    Use '-datadir <dir>' to specify a directory where writable image files will be searched. On this system, the default directory is: /Users/me/.android See '-help-disk-images' for more information about disk image files.

گزینه‌های راه‌اندازی خط فرمان

این بخش گزینه‌هایی را که می‌توانید هنگام شروع شبیه‌ساز در خط فرمان ارائه دهید، فهرست می‌کند.

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

گزینه‌های پرکاربرد

جدول زیر گزینه‌های راه‌اندازی خط فرمان را که ممکن است بیشتر از آنها استفاده کنید، فهرست می‌کند:

جدول ۳. گزینه‌های خط فرمان پرکاربرد

گزینه خط فرمان توضیحات
بوت سریع
-no-snapshot-load بوت سرد را انجام می‌دهد و وضعیت شبیه‌ساز را در هنگام خروج ذخیره می‌کند.
-no-snapshot-save در صورت امکان، بوت سریع را انجام می‌دهد، اما وضعیت شبیه‌ساز را در هنگام خروج ذخیره نمی‌کند.
-no-snapshot قابلیت بوت سریع را به طور کامل غیرفعال می‌کند و حالت شبیه‌ساز را بارگذاری یا ذخیره نمی‌کند.
سخت‌افزار دستگاه
-camera-back mode
-camera-front mode
حالت شبیه‌سازی را برای دوربین رو به عقب یا جلو تنظیم می‌کند. این گزینه، هرگونه تنظیم دوربین در AVD را لغو می‌کند.

mode می‌تواند هر یک از مقادیر زیر باشد:

  • emulated - شبیه‌ساز، یک دوربین را در نرم‌افزار شبیه‌سازی می‌کند.
  • webcam n - شبیه‌ساز از یک وب‌کم متصل به رایانه توسعه شما استفاده می‌کند که با شماره مشخص شده است. برای مشاهده لیستی از وب‌کم‌ها، از گزینه -webcam-list استفاده کنید. به عنوان مثال، webcam0 .
  • none - دوربین را در دستگاه مجازی غیرفعال می‌کند.

برای مثال:

emulator @Pixel8_API_34 -camera-back webcam0
-webcam-list وب‌کم‌های موجود در رایانه توسعه شما را که برای شبیه‌سازی در دسترس هستند، فهرست می‌کند. برای مثال:
emulator @Pixel8_API_34 -webcam-list
        List of web cameras connected to the computer:
        Camera 'webcam0' is connected to device 'webcam0'
        on channel 0 using pixel format 'UYVY'

در این مثال، اولین webcam0 نامی است که شما در خط فرمان استفاده می‌کنید. دومین webcam0 نامی است که توسط سیستم عامل در رایانه توسعه استفاده می‌شود. نام دوم بسته به سیستم عامل متفاوت است.

از نسخه SDK Tools 25.2.4، نام AVD الزامی است.

تصاویر دیسک و حافظه
-memory size

اندازه رم فیزیکی را از ۱۵۳۶ تا ۸۱۹۲ مگابایت مشخص می‌کند. برای مثال:

emulator @Pixel8_API_34 -memory 2048

این مقدار، تنظیمات AVD را لغو می‌کند.

-sdcard filepath نام فایل و مسیر فایل ایمیج پارتیشن کارت SD را مشخص می‌کند. برای مثال:

emulator @Pixel8_API_34 -sdcard C:/sd/sdcard.img

اگر فایل پیدا نشود، شبیه‌ساز همچنان اجرا می‌شود، اما بدون کارت SD. این دستور هشدار « تصویر کارت SD وجود ندارد» را برمی‌گرداند.

اگر این گزینه را مشخص نکنید، پیش‌فرض sdcard.img در دایرکتوری داده است، مگر اینکه AVD چیز متفاوتی را مشخص کند. برای جزئیات بیشتر در مورد کارت‌های SD شبیه‌سازی شده، به دایرکتوری داده AVD مراجعه کنید.

-wipe-data داده‌های کاربر را حذف کرده و داده‌ها را از فایل داده اولیه کپی می‌کند. این گزینه داده‌ها را برای دستگاه مجازی پاک می‌کند و آن را به همان حالتی که برای اولین بار تعریف شده بود، برمی‌گرداند. تمام برنامه‌ها و تنظیمات نصب شده حذف می‌شوند. به عنوان مثال:

emulator @Pixel8_API_34 -wipe-data

به طور پیش‌فرض، فایل داده‌های کاربر userdata-qemu.img و فایل داده‌های اولیه userdata.img است. هر دوی این فایل‌ها در دایرکتوری داده‌ها قرار دارند. گزینه -wipe-data تاثیری بر فایل sdcard.img ندارد. برای اطلاعات بیشتر در مورد داده‌های کاربر، به بخشی با عنوان « درک دایرکتوری‌ها و فایل‌های پیش‌فرض» مراجعه کنید.

اشکال‌زدایی
-debug tags نمایش پیام‌های اشکال‌زدایی را برای یک یا چند برچسب فعال یا غیرفعال می‌کند. چندین برچسب را با فاصله، ویرگول یا ستون از هم جدا کنید. برای مثال:

$ emulator @Pixel8_API_34 -debug init,metrics

برای غیرفعال کردن یک برچسب، قبل از آن یک خط تیره (-) قرار دهید. برای مثال، گزینه زیر تمام پیام‌های اشکال‌زدایی را نمایش می‌دهد، به جز آنهایی که مربوط به سوکت‌ها و معیارهای شبکه هستند:

-debug all,-socket,-metrics

برای مشاهده‌ی فهرستی از برچسب‌ها و توضیحات، از گزینه‌ی -help-debug-tags استفاده کنید. برای مثال:

emulator -help-debug-tags

شما می‌توانید تگ‌های پیش‌فرض اشکال‌زدایی را در متغیر محیطی ANDROID_VERBOSE تعریف کنید. تگ‌هایی را که می‌خواهید استفاده کنید در یک لیست جدا شده با کاما تعریف کنید. در اینجا مثالی آورده شده است که نحوه مشخص کردن تگ‌های socket و gles را نشان می‌دهد:

ANDROID_VERBOSE=socket,gles

معادل استفاده از این است:

-debug-socket -debug-gles

یا

-debug socket,gles

-debug- tag
-debug-no- tag
یک نوع پیام اشکال‌زدایی خاص را فعال می‌کند. از فرم no برای غیرفعال کردن یک نوع پیام اشکال‌زدایی استفاده کنید. برای مثال:

emulator @Pixel8_API_34 -debug-all -debug-no-metrics

برای مشاهده لیست تگ‌ها، از دستور emulator -help-debug-tags استفاده کنید.

-logcat logtags نمایش پیام‌های Logcat را برای یک یا چند تگ فعال می‌کند و آنها را در پنجره ترمینال می‌نویسد. برای مثال، دستور زیر پیام‌های خطا را از همه اجزا فعال می‌کند:

emulator @Pixel8_API_34 -logcat *:e

logtags از همان قالب دستور adb logcat logtags استفاده می‌کند. برای اطلاعات بیشتر adb logcat -help را وارد کنید. این لیستی از فیلترهای گزارش است که با فاصله یا کاما از هم جدا شده‌اند و فرمت componentName : logLevel دارند. componentName می‌تواند یک ستاره ( * ) یا نام یک کامپوننت مانند ActivityManager ، SystemServer ، InputManager یا WindowManager باشد.

logLevel یکی از این مقادیر است:

  • v - مفصل
  • d - اشکال‌زدایی
  • i - آموزنده
  • w - سطح گزارش هشدار
  • خطای e
  • s - ساکت

مثال زیر پیام‌های مؤلفه GSM را در سطح گزارش اطلاعاتی نمایش می‌دهد:

emulator @Pixel8_API_34 -logcat '*:s GSM:i'

اگر گزینه -logcat در خط فرمان وارد نکنید، شبیه‌ساز به دنبال متغیر محیطی ANDROID_LOG_TAGS می‌گردد. اگر ANDROID_LOG_TAGS با مقدار logtags معتبر تعریف شده باشد و خالی نباشد، شبیه‌ساز از مقدار آن برای فعال کردن خروجی Logcat به ترمینال به طور پیش‌فرض استفاده می‌کند. همچنین می‌توانید همین پیام‌ها یا پیام‌های لاگ دیگر را از طریق adb به ترمینال هدایت کنید.

برای اطلاعات بیشتر در مورد Logcat و adb ، به ابزار خط فرمان Logcat ، مشاهده و نوشتن گزارش‌ها با Logcat ، کلاس Log و صدور دستورات adb مراجعه کنید.

-show-kernel پیام‌های اشکال‌زدایی هسته را در پنجره ترمینال نمایش می‌دهد. برای مثال:

emulator @Pixel8_API_34 -show-kernel

یکی از کاربردهای این گزینه، بررسی صحت عملکرد فرآیند بوت است.

-verbose پیام‌های مقداردهی اولیه شبیه‌ساز را در پنجره ترمینال چاپ می‌کند. برای مثال:

emulator @Pixel8_API_34 -verbose

این گزینه نمایش می‌دهد که هنگام شروع یک دستگاه مجازی تعریف شده در AVD، کدام فایل‌ها و تنظیمات در واقع انتخاب شده‌اند. این گزینه مشابه تعیین -debug-init است.

شبکه
-dns-server servers از سرورهای DNS مشخص شده استفاده می‌کند. servers لیستی از حداکثر چهار نام یا آدرس IP سرور DNS است که با کاما از هم جدا شده‌اند. برای مثال:
emulator @Pixel8_API_34 -dns-server 192.0.2.0,
192.0.2.255

به طور پیش‌فرض، شبیه‌ساز سعی می‌کند سرورهای DNS مورد استفاده شما را شناسایی کند و نام‌های مستعار خاصی را در شبکه فایروال شبیه‌سازی شده تنظیم می‌کند تا سیستم اندروید بتواند مستقیماً به سرورها متصل شود. از گزینه -dns-server برای مشخص کردن لیست متفاوتی از سرورهای DNS استفاده کنید.

-http-proxy proxy تمام اتصالات TCP را از طریق یک پروکسی HTTP/HTTPS مشخص شده برقرار می‌کند. اگر شبیه‌ساز شما باید از طریق یک سرور پروکسی به اینترنت دسترسی داشته باشد، می‌توانید از این گزینه یا متغیر محیطی http_proxy برای تنظیم تغییر مسیر مناسب استفاده کنید. به عنوان مثال:

emulator @Pixel8_API_34 -http-proxy myserver:1981

proxy می‌تواند یکی از موارد زیر باشد:

http:// server : port
http:// username : password @ server : port

پیشوند http:// را می‌توان حذف کرد.

اگر این گزینه ارائه نشود، شبیه‌ساز متغیر محیطی http_proxy را جستجو می‌کند و به‌طور خودکار از هر مقداری که با قالب proxy مطابقت دارد استفاده می‌کند. برای اطلاعات بیشتر، به استفاده از شبیه‌ساز با پروکسی مراجعه کنید.

توجه: هنگام اجرای چندین شبیه‌ساز، این پرچم باید در اولین اجرا تنظیم شود.

-netdelay delay

شبیه‌سازی تأخیر شبکه را روی یکی از مقادیر delay زیر بر حسب میلی‌ثانیه تنظیم می‌کند:

  • gsm - GSM/CSD (حداقل ۱۵۰، حداکثر ۵۵۰).
  • hscsd - HSCSD (حداقل 80، حداکثر 400).
  • gprs - GPRS (حداقل ۳۵، حداکثر ۲۰۰).
  • edge - EDGE/EGPRS (حداقل ۸۰، حداکثر ۴۰۰).
  • umts - UMTS/3G (حداقل 35، حداکثر 200).
  • hsdpa - HSDPA (حداقل 0، حداکثر 0).
  • lte - LTE (حداقل 0، حداکثر 0).
  • evdo - ای‌وی‌دو (حداقل ۰، حداکثر ۰).
  • none - بدون تأخیر، پیش‌فرض (حداقل ۰، حداکثر ۰).
  • num - زمان تأخیر دقیق را مشخص می‌کند.
  • min : max - حداقل و حداکثر تأخیرهای جداگانه را مشخص می‌کند.

برای مثال:

emulator @Pixel8_API_34 -netdelay gsm

این شبیه‌ساز از تنظیم سرعت شبکه و همچنین تأخیر اتصال بالاتر پشتیبانی می‌کند. می‌توانید آن را یا از طریق پیکربندی پوسته یا با گزینه‌های ‑netspeed ‎ و -netdelay ‎ تعریف کنید.

توجه: این تنظیم برای اترنت و تلفن همراه اعمال می‌شود.

-netfast تنظیم سرعت شبکه را غیرفعال می‌کند. برای مثال:

emulator @Pixel8_API_34 -netfast

این گزینه مشابه تعیین -netspeed full -netdelay none است. اینها مقادیر پیش‌فرض برای این گزینه‌ها هستند.

توجه: این تنظیم برای اترنت و تلفن همراه اعمال می‌شود.

-netspeed speed

شبیه‌سازی سرعت شبکه را تنظیم می‌کند. حداکثر سرعت آپلود و دانلود شبکه را با یکی از مقادیر speed زیر بر حسب کیلوبیت بر ثانیه مشخص می‌کند:

  • gsm - GSM/CSD (افزایش: ۱۴.۴، کاهش: ۱۴.۴).
  • hscsd - HSCSD (افزایش: ۱۴.۴، کاهش: ۵۷.۶).
  • gprs - GPRS (افزایش: ۲۸.۸، کاهش: ۵۷.۶).
  • edge - EDGE/EGPRS (افزایش: ۴۷۳.۶، کاهش: ۴۷۳.۶).
  • umts - UMTS/3G (افزایش: ۳۸۴.۰، کاهش: ۳۸۴.۰).
  • hsdpa - HSDPA (افزایش: ۵۷۶۰٫۰، کاهش: ۱۳۹۸۰٫۰).
  • lte - LTE (افزایش: ۵۸۰۰۰، کاهش: ۱۷۳۰۰۰).
  • evdo - ای‌وی‌دو (افزایش: ۷۵۰۰۰، کاهش: ۲۸۰۰۰۰).
  • full - بدون محدودیت، پیش‌فرض (بالا: 0.0، پایین: 0.0).
  • num - سرعت آپلود و دانلود را مشخص می‌کند.
  • up : down - سرعت‌های بالا و پایین رفتن را به صورت جداگانه مشخص می‌کند.

برای مثال:

emulator @Pixel8_API_34 -netspeed edge

این شبیه‌ساز از تنظیم سرعت شبکه و همچنین تأخیر اتصال بالاتر پشتیبانی می‌کند. می‌توانید آن را یا از طریق پیکربندی پوسته یا با گزینه‌های ‑netspeed ‎ و -netdelay ‎ تعریف کنید.

توجه: این تنظیم برای اترنت و تلفن همراه اعمال می‌شود.

-netsim-args arguments آرگومان‌های اضافی را به شبیه‌ساز شبکه ( netsim ) ارسال می‌کند. arguments فهرستی از پرچم‌ها است که با فاصله از هم جدا شده‌اند.

برای مثال، برای فعال کردن ضبط بسته و هدایت گزارش‌گیری به stderr:

emulator @Pixel8_API_34 -netsim-args="--pcap --logtostderr"

برای اطلاعات بیشتر، به ویژگی‌های پیشرفته شبکه شبیه‌ساز مراجعه کنید.

-port port شماره پورت TCP مورد استفاده برای کنسول و adb را تنظیم می‌کند. برای مثال:

emulator @Pixel8_API_34 -port 5556

مقدار پیش‌فرض برای اولین نمونه دستگاه مجازی که روی دستگاه شما اجرا می‌شود، ۵۵۵۴ است. یک دستگاه مجازی معمولاً یک جفت پورت مجاور را اشغال می‌کند: یک پورت کنسول و یک پورت adb . کنسول اولین دستگاه مجازی که روی یک دستگاه خاص اجرا می‌شود، از پورت کنسول ۵۵۵۴ و پورت adb ۵۵۵۵ استفاده می‌کند. نمونه‌های بعدی از شماره پورت‌هایی استفاده می‌کنند که دو واحد افزایش می‌یابند. به عنوان مثال، ۵۵۵۶/۵۵۵۷، ۵۵۵۸/۵۵۵۹ و غیره. محدوده ۵۵۵۴ تا ۵۶۸۲ است که امکان ۶۴ دستگاه مجازی همزمان را فراهم می‌کند.

تخصیص پورت اغلب مشابه مشخص کردن -ports port ,{ port + 1} ‎ است. { port + 1} ‎ باید آزاد باشد و برای adb رزرو شده است. اگر هر یک از پورت‌های کنسول یا adb از قبل در حال استفاده باشند، شبیه‌ساز شروع به کار نخواهد کرد.

گزینه ‑port گزارش می‌دهد که دستگاه مجازی از کدام پورت‌ها و شماره سریال استفاده می‌کند و در صورت وجود هرگونه مشکل در مقادیر ارائه شده توسط شما، هشدار می‌دهد. در رابط کاربری شبیه‌ساز، می‌توانید شماره پورت کنسول را در عنوان پنجره مشاهده کنید و با انتخاب Help > About شماره پورت adb را مشاهده کنید.

توجه داشته باشید که اگر مقدار port زوج نباشد و در محدوده ۵۵۵۴ تا ۵۵۸۴ باشد، دستگاه مجازی هنگام استفاده از دستور adb devices شروع به کار می‌کند اما قابل مشاهده نیست، البته اگر adb server بعد از شبیه‌ساز شروع به کار کند. به همین دلیل، توصیه می‌کنیم از شماره پورت کنسول زوج استفاده کنید.

-ports
console-port , adb-port
پورت‌های TCP مورد استفاده برای کنسول و adb را تنظیم می‌کند. برای مثال:

emulator @Pixel8_API_34 -ports 5556,5559

محدوده پورت‌های معتبر بین ۵۵۵۴ تا ۵۶۸۲ است که امکان استفاده همزمان از ۶۴ دستگاه مجازی را فراهم می‌کند. گزینه -ports گزارش می‌دهد که نمونه شبیه‌ساز از کدام پورت‌ها و شماره سریال استفاده می‌کند و در صورت وجود هرگونه مشکل در مقادیر ارائه شده توسط شما، هشدار می‌دهد.

توصیه می‌کنیم در صورت امکان از گزینه -port استفاده کنید. گزینه -ports برای پیکربندی‌های شبکه‌ای که نیاز به تنظیمات ویژه دارند، در دسترس است.

برای اطلاعات بیشتر در مورد تنظیم پورت‌های کنسول و adb ، به گزینه -port ‎ مراجعه کنید.

-tcpdump filepath بسته‌های شبکه را ضبط کرده و آنها را در یک فایل ذخیره می‌کند. برای مثال:

emulator @Pixel8_API_34 -tcpdump /path/dumpfile.cap

از این گزینه برای شروع ضبط تمام بسته‌های شبکه‌ای که از طریق شبکه محلی اترنت مجازی شبیه‌ساز ارسال می‌شوند، استفاده کنید. پس از آن، می‌توانید از ابزاری مانند Wireshark برای تجزیه و تحلیل ترافیک استفاده کنید.

توجه داشته باشید که این گزینه تمام بسته‌های اترنت را ضبط می‌کند و محدود به اتصالات TCP نیست.

سیستم
-accel mode شتاب‌دهی ماشین مجازی شبیه‌ساز را پیکربندی می‌کند. برای مثال:

emulator @Pixel8_API_34 -accel auto

شبیه‌سازی شتاب‌یافته فقط برای ایمیج‌های سیستم x86 و x86_64 کار می‌کند. در لینوکس، به KVM متکی است. در ویندوز و مک، به پردازنده اینتل و درایور HAXM اینتل متکی است. اگر دستگاه x86 یا x86_64 را شبیه‌سازی نمی‌کنید، این گزینه نادیده گرفته می‌شود.

مقادیر معتبر برای mode عبارتند از:

  • auto - به طور خودکار تعیین می‌کند که آیا شتاب پشتیبانی می‌شود و در صورت امکان از آن استفاده می‌کند (پیش‌فرض).
  • off - شتاب را به طور کامل غیرفعال می‌کند، که در درجه اول برای اشکال‌زدایی مفید است.
  • on - شتاب را اجباری می‌کند. اگر KVM یا HAXM نصب یا قابل استفاده نباشند، شبیه‌ساز شروع به کار نمی‌کند و یک پیام خطا چاپ می‌کند.

برای اطلاعات بیشتر، به پیکربندی شتاب سخت‌افزاری برای شبیه‌ساز اندروید مراجعه کنید.

-accel-check بررسی می‌کند که آیا هایپروایزر مورد نیاز برای شتاب‌دهی ماشین مجازی شبیه‌ساز (HAXM یا KVM) نصب شده است یا خیر. برای مثال:

emulator -accel-check

برای اطلاعات بیشتر، به بررسی نصب بودن هایپروایزر مراجعه کنید.

-engine engine

موتور شبیه‌ساز را مشخص می‌کند:

  • auto - به طور خودکار یک موتور (پیش‌فرض) را انتخاب می‌کند.
  • classic - از موتور قدیمی‌تر QEMU 1 (منسوخ شده) استفاده می‌کند.
  • qemu2 - از موتور جدیدتر QEMU 2 استفاده می‌کند.

برای مثال:

emulator @Pixel8_API_34 -engine auto

تشخیص خودکار باید مقداری را انتخاب کند که هنگام شبیه‌سازی یک AVD خاص، بهترین عملکرد را ارائه دهد. از گزینه -engine فقط برای اشکال‌زدایی و مقایسه استفاده کنید.

-gpu mode حالت شبیه‌سازی GPU را انتخاب می‌کند. برای مثال:

emulator @Pixel8_API_34 -gpu swiftshader_indirect

برای اطلاعات بیشتر، به پیکربندی شتاب گرافیکی مراجعه کنید.

-no-accel شتاب‌دهی ماشین مجازی شبیه‌ساز را هنگام استفاده از تصویر سیستم x86 یا x86_64 غیرفعال می‌کند. این فقط برای اشکال‌زدایی مفید است و مانند تعیین -accel off عمل می‌کند. برای مثال:

emulator @Pixel8_API_34 -no-accel

برای اطلاعات بیشتر، به پیکربندی شتاب سخت‌افزاری برای شبیه‌ساز اندروید مراجعه کنید.

-nojni
-no-jni
بررسی‌های رابط بومی جاوا (JNI) را در Android Dalvik یا ART runtime غیرفعال می‌کند. برای مثال:

emulator @Pixel8_API_34 -nojni

وقتی یک دستگاه مجازی را راه‌اندازی می‌کنید، بررسی‌های JNI توسعه‌یافته به‌طور پیش‌فرض فعال می‌شوند. برای اطلاعات بیشتر، به نکات JNI مراجعه کنید.

-selinux {disabled|permissive} ماژول امنیتی SELinux (Security-Enhanced Linux) را در سیستم عامل لینوکس روی حالت disabled یا permissive تنظیم می‌کند. برای مثال:

me-linux$ emulator @Pixel8_API_34 -selinux permissive

به طور پیش‌فرض، SELinux در حالت enforcing mode) است، به این معنی که سیاست امنیتی اعمال می‌شود. حالت permissive mode) سیاست SELinux را بارگذاری می‌کند اما آن را اجرا نمی‌کند. این گزینه فقط موارد نقض سیاست را ثبت می‌کند. حالت disabled mode) پشتیبانی هسته از SELinux را غیرفعال می‌کند.

-timezone timezone

منطقه زمانی دستگاه مجازی را به جای منطقه زمانی میزبان، روی timezone تنظیم می‌کند. برای مثال:

emulator @Pixel8_API_34 -timezone Europe/Paris

به طور پیش‌فرض، شبیه‌ساز از منطقه زمانی رایانه توسعه‌دهنده شما استفاده می‌کند. از این گزینه برای تعیین منطقه زمانی متفاوت یا اگر تشخیص خودکار به درستی کار نمی‌کند، استفاده کنید. مقدار timezone باید در قالب zoneinfo باشد که به صورت area / location یا area / subarea / location است. برای مثال:

  • America/Los_Angeles
  • Europe/Paris
  • America/Argentina/Buenos_Aires

منطقه زمانی مشخص شده باید در پایگاه داده zoneinfo موجود باشد.

-version شماره نسخه شبیه‌ساز را نمایش می‌دهد. برای مثال:

emulator @Pixel8_API_34 -version

یا

emulator -version
رابط کاربری
-no-boot-anim انیمیشن بوت را در هنگام راه‌اندازی شبیه‌ساز غیرفعال می‌کند تا بوت سریع‌تر انجام شود. برای مثال:

emulator @Pixel8_API_34 -no-boot-anim

در رایانه‌های کندتر، این گزینه می‌تواند سرعت بوت شدن را به میزان قابل توجهی افزایش دهد.

-screen mode حالت صفحه لمسی شبیه‌سازی شده را تنظیم می‌کند. برای مثال:

emulator @Pixel8_API_34 -screen no-touch

mode می‌تواند هر یک از مقادیر زیر باشد:

  • touch - یک صفحه لمسی را شبیه‌سازی می‌کند (پیش‌فرض).
  • multi-touch - یک صفحه نمایش چند لمسی را شبیه‌سازی می‌کند.
  • no-touch - شبیه‌سازی صفحه لمسی و چند لمسی را غیرفعال می‌کند.

گزینه‌های پیشرفته

گزینه‌های راه‌اندازی خط فرمان در جدول زیر موجود هستند اما معمولاً توسط توسعه‌دهندگان برنامه‌ی معمولی استفاده نمی‌شوند.

در توضیحات، دایرکتوری کاری ، دایرکتوری فعلی در ترمینال است که در آن دستورات را وارد می‌کنید. برای اطلاعات مربوط به دایرکتوری سیستم AVD و دایرکتوری داده و فایل‌های ذخیره شده در آنها، به بخش مربوط به دایرکتوری‌ها و فایل‌های پیش‌فرض مراجعه کنید.

برخی از این گزینه‌ها برای توسعه‌دهندگان برنامه‌های خارجی مناسب هستند و برخی دیگر عمدتاً توسط توسعه‌دهندگان پلتفرم استفاده می‌شوند. توسعه‌دهندگان برنامه ، برنامه‌های اندروید را ایجاد کرده و آنها را روی AVD های خاص اجرا می‌کنند. توسعه‌دهندگان پلتفرم روی سیستم اندروید کار می‌کنند و آن را درون شبیه‌ساز و بدون AVD از پیش ایجاد شده اجرا می‌کنند.

جدول ۴. گزینه‌های پیشرفته خط فرمان

گزینه پیشرفته شرح مختصر
-bootchart timeout

فعال کردن بوت‌چارتینگ با زمان انقضا بر حسب ثانیه. برخی از تصاویر سیستم اندروید دارای یک سیستم init اصلاح‌شده هستند که امکان بوت‌چارتینگ را در خود جای داده است. می‌توانید با این گزینه، یک دوره زمانی انقضای بوت‌چارتینگ را به سیستم منتقل کنید. اگر بوت‌چارتینگ در سیستم init شما فعال نباشد، این گزینه هیچ کاری انجام نمی‌دهد. این گزینه در درجه اول برای توسعه‌دهندگان پلتفرم مفید است، نه توسعه‌دهندگان برنامه‌های خارجی.

برای مثال:

emulator @Pixel8_API_34 -bootchart 120
-cache filepath

یک فایل تصویر پارتیشن حافظه پنهان را مشخص می‌کند. یک نام فایل و یک مسیر مطلق یا یک مسیر نسبت به دایرکتوری داده برای تنظیم یک فایل حافظه پنهان پایدار ارائه می‌دهد. اگر فایل وجود نداشته باشد، شبیه‌ساز آن را به عنوان یک فایل خالی ایجاد می‌کند.

برای مثال:

emulator @Pixel8_API_34 -cache
   ~/.android/avd/Pixel8_API_34.avd/cache_persistent.img

اگر از این گزینه استفاده نکنید، پیش‌فرض یک فایل موقت با نام cache.img است. برای اطلاعات بیشتر، به فهرست داده‌های AVD مراجعه کنید.

-cache-size size

اندازه پارتیشن کش را بر حسب مگابایت تنظیم می‌کند.

برای مثال:

emulator @Pixel8_API_34 -cache-size 1000

اگر این گزینه را مشخص نکنید، پیش‌فرض ۶۶ مگابایت است. معمولاً، اکثر توسعه‌دهندگان برنامه به این گزینه نیاز ندارند، مگر اینکه نیاز به دانلود فایل‌های بسیار بزرگی داشته باشند که از حافظه پنهان پیش‌فرض بزرگتر باشند. برای اطلاعات بیشتر در مورد فایل حافظه پنهان، به فهرست داده‌های AVD مراجعه کنید.

-data filepath

فایل تصویر پارتیشن داده‌های کاربر را تنظیم می‌کند. یک نام فایل و یک مسیر مطلق یا یک مسیر نسبت به دایرکتوری کاری برای راه‌اندازی یک فایل داده کاربر دائمی ارائه می‌دهد. اگر فایل وجود نداشته باشد، شبیه‌ساز یک تصویر از فایل پیش‌فرض userdata.img ایجاد می‌کند، آن را در نام فایلی که شما مشخص کرده‌اید ذخیره می‌کند و داده‌های کاربر را در هنگام خاموش شدن در آن ذخیره می‌کند.

برای مثال:

emulator @Pixel8_API_34 -data
   ~/.android/avd/Pixel8_API_34.avd/userdata-test.img

اگر از این گزینه استفاده نکنید، فایل پیش‌فرض userdata-qemu.img است. برای اطلاعات بیشتر در مورد فایل داده‌های کاربر، به دایرکتوری داده‌های AVD مراجعه کنید.

-datadir dir

یک دایرکتوری داده را با استفاده از یک مسیر مطلق مشخص می‌کند. برای اطلاعات بیشتر، به دایرکتوری داده AVD مراجعه کنید.

برای مثال:

emulator @Pixel8_API_34 -datadir
   ~/.android/avd/Pixel8_API_34.avd/mytest
-force-32bit

از شبیه‌ساز ۳۲ بیتی روی پلتفرم‌های ۶۴ بیتی استفاده می‌کند. گاهی اوقات، این گزینه برای آزمایش یا اشکال‌زدایی مفید است. برای مثال، مشکلی وجود داشت که شبیه‌ساز گاهی اوقات روی ویندوز ۶۴ بیتی اجرا نمی‌شد، اما ۳۲ بیتی اجرا می‌شد. این گزینه برای انجام مقایسه‌ها برای اشکال‌زدایی مشکل مفید بود. در اینجا مثالی آورده شده است:

emulator @Pixel8_API_34 -force-32bit
-help-disk-images

در مورد تصاویر دیسک کمک می‌گیرد. این گزینه اطلاعاتی مرتبط با توسعه‌دهندگان برنامه و پلتفرم ارائه می‌دهد. برای مثال:

emulator -help-disk-images
-help-char-devices

در مورد مشخصات device کاراکتری کمک می‌گیرد. پارامتر device توسط برخی از گزینه‌های شبیه‌ساز مورد نیاز است. برای مثال:

emulator -help-char-devices
-help-sdk-images

در مورد تصاویر دیسک مربوط به توسعه‌دهندگان برنامه، راهنمایی دریافت می‌کند. این گزینه اطلاعاتی در مورد محل قرارگیری فایل‌های تصویر برای AVD ایجاد شده با ابزارهای SDK ارائه می‌دهد. برای مثال:

emulator -help-sdk-images
-help-build-images

در مورد تصاویر دیسک مربوط به توسعه‌دهندگان پلتفرم کمک می‌گیرد. برای مثال:

emulator -help-build-images
-initdata filepath
-init-data filepath

نسخه اولیه پارتیشن داده را مشخص می‌کند. پس از پاک کردن داده‌های کاربر، شبیه‌ساز به جای استفاده از فایل پیش‌فرض userdata.img به عنوان نسخه اولیه، محتویات فایل مشخص شده را در داده‌های کاربر (به طور پیش‌فرض، فایل userdata-qemu.img ) کپی می‌کند. نام فایل و یک مسیر مطلق یا یک مسیر نسبت به دایرکتوری کاری را مشخص می‌کند.

برای مثال:

emulator @Pixel8_API_34 -initdata
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/userdata-test.img

اگر مسیری مشخص نکنید، فایل را در دایرکتوری سیستم قرار می‌دهد. برای اطلاعات بیشتر، به دایرکتوری سیستم AVD مراجعه کنید.

-kernel filepath

از یک هسته شبیه‌سازی‌شده خاص استفاده می‌کند. اگر مسیری را مشخص نکنید، شبیه‌ساز در دایرکتوری سیستم جستجو می‌کند.

برای مشاهده پیام‌های اشکال‌زدایی هسته، از گزینه ‑show‑kernel استفاده کنید.

برای مثال:

emulator @Pixel8_API_34 -kernel
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/kernel-test.img -show-kernel

اگر این گزینه را مشخص نکنید، پیش‌فرض kernel-ranchu است. برای اطلاعات بیشتر، به دایرکتوری سیستم AVD مراجعه کنید.

-noaudio
-no-audio

پشتیبانی صوتی را برای این دستگاه مجازی غیرفعال می‌کند. برخی از رایانه‌های لینوکس و ویندوز درایورهای صوتی معیوبی دارند که باعث بروز علائم مختلفی مانند جلوگیری از شروع شبیه‌ساز می‌شوند. در این حالت، از این گزینه برای غلبه بر مشکل استفاده کنید. به عنوان یک جایگزین، می‌توانید از متغیر محیطی QEMU_AUDIO_DRV برای تغییر backend صوتی استفاده کنید.

برای مثال:

emulator @Pixel8_API_34 -noaudio
-nocache
-no-cache

شبیه‌ساز را بدون پارتیشن کش اجرا می‌کند. اگر از این گزینه استفاده نکنید، پیش‌فرض یک فایل موقت با نام cache.img است. این گزینه فقط برای توسعه‌دهندگان پلتفرم است. برای اطلاعات بیشتر، به دایرکتوری داده AVD مراجعه کنید.

برای مثال:

emulator @Pixel8_API_34 -nocache
-no-snapshot

مانع از اجرای خودکار عملیات بارگذاری و ذخیره می‌شود و باعث می‌شود شبیه‌ساز یک توالی بوت کامل را اجرا کند و هنگام بسته شدن، وضعیت خود را از دست بدهد. این گزینه -snapshot را لغو می‌کند.

برای مثال:

emulator @Pixel8_API_34 -no-snapshot
-no-snapshot-load

از بارگذاری وضعیت AVD از حافظه اسنپ‌شات توسط شبیه‌ساز جلوگیری می‌کند. بوت کامل را انجام می‌دهد.

برای مثال:

emulator @Pixel8_API_34 -no-snapshot-load
-no-snapshot-save

از ذخیره وضعیت AVD در حافظه اسنپ‌شات توسط شبیه‌ساز در هنگام خروج جلوگیری می‌کند، به این معنی که تمام تغییرات از بین خواهند رفت.

برای مثال:

emulator @Pixel8_API_34 -no-snapshot-save
-no-snapshot-update-time

سعی نمی‌کند زمان ساعت AVD را بلافاصله پس از بازیابی اسنپ‌شات اصلاح کند. این گزینه می‌تواند در حین آزمایش مفید باشد زیرا از پرش ناگهانی زمان جلوگیری می‌کند. به‌روزرسانی‌های زمان همچنان تقریباً هر ۱۵ ثانیه به AVD ارسال می‌شوند.

برای مثال:

emulator @Pixel8_API_34 -no-snapshot-update-time
-no-snapstorage

شبیه‌ساز را بدون نصب فایلی برای ذخیره یا بارگذاری اسنپ‌شات‌های وضعیت، راه‌اندازی می‌کند و بوت کامل را اجباری کرده و قابلیت اسنپ‌شات وضعیت را غیرفعال می‌کند. این گزینه، گزینه‌های -snapstorage و -snapshot را لغو می‌کند.

برای مثال:

emulator @Pixel8_API_34 -no-snapstorage
-no-window

نمایش پنجره گرافیکی را در شبیه‌ساز غیرفعال می‌کند. این گزینه هنگام اجرای شبیه‌ساز روی سرورهایی که نمایشگر ندارند مفید است. می‌توانید از طریق adb یا کنسول به شبیه‌ساز دسترسی داشته باشید. برای مثال:

emulator @Pixel8_API_34 -no-window
-partition-size size

اندازه پارتیشن داده سیستم را بر حسب مگابایت مشخص می‌کند. برای مثال:

emulator @Pixel8_API_34 -partition-size 1024
-prop name = value

هنگام بوت شدن شبیه‌ساز، یک ویژگی سیستم اندروید را در آن تنظیم می‌کند. name باید یک نام ویژگی با برچسب qemu_prop باشد که حداکثر ۳۲ کاراکتر و بدون هیچ فاصله‌ای داشته باشد و value باید رشته‌ای با حداکثر ۹۲ کاراکتر باشد. برای مثال، به فایل property_contexts مراجعه کنید. می‌توانید چندین گزینه ‑prop را در یک خط فرمان مشخص کنید. این گزینه می‌تواند برای اشکال‌زدایی مفید باشد. به عنوان مثال:

emulator @Pixel8_API_34 -prop qemu.name=value -prop qemu.abc=xyz
-qemu args آرگومان‌ها را به نرم‌افزار شبیه‌ساز QEMU ارسال می‌کند. هنگام استفاده از این گزینه، مطمئن شوید که آخرین گزینه مشخص شده باشد، زیرا تمام گزینه‌های بعد از آن به عنوان گزینه‌های مخصوص QEMU تفسیر می‌شوند. این گزینه کاملاً پیشرفته است و فقط باید توسط توسعه‌دهندگانی که با QEMU و شبیه‌سازی اندروید بسیار آشنا هستند، استفاده شود.
-qemu -h

-qemu ‎ را برای کمک نمایش می‌دهد. برای مثال:

emulator -qemu -h
-ramdisk filepath

یک تصویر بوت ramdisk را مشخص می‌کند. نام فایل و یک مسیر مطلق یا یک مسیر نسبت به دایرکتوری کاری را مشخص می‌کند.

برای مثال:

emulator @Pixel8_API_34 -ramdisk
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/ramdisk-test.img

اگر از این گزینه استفاده نکنید، فایل پیش‌فرض ramdisk.img در دایرکتوری سیستم است. برای اطلاعات بیشتر، به دایرکتوری سیستم AVD مراجعه کنید.

-report-console socket

قبل از شروع شبیه‌سازی، پورت کنسول را به یک شخص ثالث از راه دور گزارش می‌دهد. این می‌تواند برای یک اسکریپت تست خودکار مفید باشد. socket باید از یکی از این قالب‌ها استفاده کند:

  • tcp: port [,server][,max= seconds ][,ipv6]
  • unix: port [,server][,max= seconds ][,ipv6]

برای اطلاعات بیشتر، از گزینه -help-report-console همانطور که در بخش مربوط به کمک برای گزینه‌های خاص توضیح داده شده است، استفاده کنید.

-shell

یک کنسول پوسته ریشه در ترمینال فعلی ایجاد می‌کند. این گزینه با دستور adb shell از جهات زیر متفاوت است:

  • این یک پوسته ریشه ایجاد می‌کند که به شما امکان می‌دهد بسیاری از قسمت‌های سیستم را تغییر دهید.
  • حتی اگر adb daemon در سیستم شبیه‌سازی‌شده خراب باشد، این برنامه کار می‌کند.
  • برای متوقف کردن شبیه‌ساز به جای پوسته، کلیدهای Control+C (یا Command-C در macOS) را فشار دهید.

برای مثال:

emulator @Pixel8_API_34 -shell
-snapshot name

نام یک اسنپ‌شات را در فایل ذخیره‌سازی اسنپ‌شات برای عملیات شروع و ذخیره خودکار مشخص می‌کند.

به جای اجرای یک توالی بوت کامل، شبیه‌ساز می‌تواند اجرا را از یک اسنپ‌شات وضعیت قبلی از سر بگیرد، که معمولاً به طور قابل توجهی سریع‌تر است. وقتی این گزینه را فعال می‌کنید، شبیه‌ساز اسنپ‌شات آن نام را از تصویر اسنپ‌شات بارگذاری می‌کند و در هنگام خروج، آن را با همان نام ذخیره می‌کند.

اگر از این گزینه استفاده نکنید، پیش‌فرض یک توالی بوت کامل است. اگر snapshot مشخص شده وجود نداشته باشد، شبیه‌ساز به جای آن یک توالی بوت کامل را انجام می‌دهد و عملیات ذخیره را انجام می‌دهد.

برای اطلاعات بیشتر در مورد مشخص کردن فایل ذخیره‌سازی اسنپ‌شات و فایل پیش‌فرض، به گزینه -snapstorage مراجعه کنید.

emulator @Pixel8_API_34 -snapshot snapshot2

به یاد داشته باشید که در فرآیند بارگذاری یک اسنپ‌شات، تمام محتویات سیستم، داده‌های کاربر و تصاویر کارت SD با محتویاتی که هنگام تهیه اسنپ‌شات در اختیار داشتند، رونویسی می‌شوند. مگر اینکه این اطلاعات را در یک اسنپ‌شات دیگر ذخیره کنید، هرگونه تغییری از آن زمان از بین می‌رود.

همچنین می‌توانید با استفاده از دستور avd snapshot save name از کنسول شبیه‌ساز یک snapshot ایجاد کنید. برای اطلاعات بیشتر، به بخش «ارسال دستورات کنسول شبیه‌ساز» مراجعه کنید.

-snapshot-list

فهرستی از اسنپ‌شات‌های موجود را نمایش می‌دهد. این دستور جدولی از اسنپ‌شات‌هایی که در فایل ذخیره‌سازی اسنپ‌شات که شبیه‌ساز با آن شروع به کار کرده است ذخیره شده‌اند را چاپ می‌کند و سپس از آن خارج می‌شود. اگر -snapstorage file نیز مشخص کنید، این دستور جدولی از اسنپ‌شات‌های ذخیره شده در file را چاپ می‌کند.

برای مثال:

emulator @Pixel8_API_34 -snapshot-list -snapstorage
   ~/.android/avd/Pixel8_API_34.avd/snapshots-test.img

می‌توانید از مقادیر ستون‌های ID و TAG در خروجی به عنوان آرگومان برای گزینه -snapshot ‎ استفاده کنید.

-snapstorage filepath

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

برای مثال:

emulator @Pixel8_API_34 -snapstorage
   ~/.android/avd/Pixel8_API_34.avd/snapshots-test.img

If you don't specify this option, the default is snapshots.img in the data directory. If the specified file doesn't exist, the emulator will start, but without support for saving or loading state snapshots.

-sysdir dir

Specifies a system directory using an absolute path. For more information, see AVD system directory . For example:

emulator @Pixel8_API_34 -sysdir
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/test
-system filepath

Specifies an initial system file. Provides the filename and an absolute path or a path relative to the working directory.

برای مثال:

emulator @Pixel8_API_34 -system
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/system-test.img

If you don't use this option, the default is the system.img file in the system directory. For more information, see AVD system directory .

-writable-system

Use this option to have a writable system image during your emulation session. To do so:

  1. Start a virtual device with the -writable-system option.
  2. Enter the adb remount command from a command terminal to tell the emulator to remount system/ as read/write. By default, it's mounted as read-only.

Using this flag creates a temporary copy of the system image that can be very large, up to several hundred MBs, but will be destroyed when the emulator exits.

Deprecated options

The following command-line options are deprecated:

  • -audio-in
  • -audio-out
  • -charmap
  • -code-profile
  • -cpu-delay
  • -dpi-device
  • -dynamic_skin
  • -enable-kvm
  • -gps
  • -image
  • -keyset
  • -help-keys
  • -help-keyset-file
  • -nand-limits
  • -noskin
  • -no-skin
  • -onion
  • -onion-alpha
  • -onion-rotation
  • -radio
  • -ranchu
  • -raw-keys
  • -scale
  • -shared-net-id
  • -shell-serial
  • -skin
  • -skindir
  • -trace
  • -useaudio

Get help about command-line options

This section describes how to get help about the command-line options. It provides more in-depth information about the commonly used emulator command-line options that are available when you start the emulator.

List all emulator options

To print a list of all emulator options, including a short description, enter the following command:

emulator -help

Get detailed help for a specific option

To print help for a specific startup option, enter the following command:

emulator -help-option

برای مثال:

emulator -help-netspeed

This help is more detailed than the description provided by the -help option.

Get detailed help for all options

To get detailed help for all emulator options, enter the following command:

emulator -help-all

List emulator environment variables

To get a list of emulator environment variables, enter the following command:

emulator -help-environment

You can set environment variables in the terminal window before launching a virtual device, or you can set it through your user settings in the operating system. For example, set it in your .bashrc file on Linux.

List debug tags

To print a list of tags for the -debug options, enter the following command:

emulator -help-debug-tags

The -debug options let you enable or disable debug messages from specific emulator components, as specified by the tags.