কমান্ড লাইন থেকে ইমুলেটর চালু করা

Android SDK-তে Android ডিভাইস এমুলেটর থাকে—এটি একটি ভার্চুয়াল ডিভাইস যা আপনার কম্পিউটারে চলে। Android এমুলেটর আপনাকে কোনও ফিজিক্যাল ডিভাইস ব্যবহার না করেই Android অ্যাপ ডেভেলপ ও টেস্ট করতে দেয়।

এই পৃষ্ঠায় কমান্ড-লাইন ফিচার সম্পর্কে বর্ণনা করা হয়েছে যা আপনি Android এমুলেটরের সাথে ব্যবহার করতে পারবেন। Android এমুলেটর UI ব্যবহার করা সম্পর্কে তথ্য পেতে, Android এমুলেটরে অ্যাপ রান করান দেখুন।

ইমুলেটর চালু করুন

আপনার প্রোজেক্ট রান করা অথবা AVD ম্যানেজারের মাধ্যমে এটি চালু করার বিকল্প হিসেবে, এমুলেটর চালু করতে emulator কমান্ড ব্যবহার করুন।

টার্মিনাল প্রম্পট থেকে ভার্চুয়াল ডিভাইস চালু করার জন্য এখানে বেসিক কমান্ড-লাইন সিনট্যাক্স দেওয়া হল:

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

অথবা

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

যেমন, আপনি যদি Mac-এ Android Studio-এর মধ্যে থেকে এমুলেটর চালু করেন, তাহলে ডিফল্ট কমান্ড লাইনটি নিম্নলিখিতগুলির মতো হবে:

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

মনে রাখবেন, আর্গুমেন্ট -qt-hide-window -grpc-use-token -idle-grpc-timeout 300 শুধুমাত্র Android Studio-র মধ্যে এমুলেটর উইন্ডো চালানোর জন্য ব্যবহার করা হয়। আপনি যদি এমুলেটরকে নিজস্ব উইন্ডোতে চালাতে চান, তাহলে আপনার সেইসব অতিরিক্ত প্যারামিটার ব্যবহার করা উচিত নয়।

আপনি এমুলেটর চালু করার সময় স্টার্ট-আপ বিকল্প নির্দিষ্ট করতে পারবেন, তবে এটি চালু হয়ে যাওয়ার পরে আর তা করতে পারবেন না।

AVD নামের তালিকার জন্য, নিম্নলিখিত কমান্ড লিখুন:

emulator -list-avds

আপনার Android হোম ডিরেক্টরি থেকে AVD নামের তালিকা দেখাতে এই বিকল্প ব্যবহার করুন। আপনি ANDROID_SDK_HOME এনভায়রনমেন্ট ভেরিয়েবল সেট করে ডিফল্ট হোম ডিরেক্টরি ওভাররাইড করতে পারবেন। এটি ব্যবহারকারী-নির্দিষ্ট ডিরেক্টরির রুট নির্দিষ্ট করে যেখানে সব কনফিগারেশন ও AVD কন্টেন্ট স্টোর করা হয়।

ভার্চুয়াল ডিভাইস লঞ্চ করার আগে টার্মিনাল উইন্ডোতে অথবা অপারেটিং সিস্টেমে ব্যবহারকারীর সেটিংসের মাধ্যমে এনভায়রনমেন্ট ভেরিয়েবল সেট করতে পারেন। যেমন, Linux-এ আপনার .bashrc ফাইলে।

Android এমুলেটর বন্ধ করতে, এমুলেটর উইন্ডো বন্ধ করুন।

অ্যাপ ইনস্টল করা

Android Studio বা ইমুলেটর UI-এর মাধ্যমে অ্যাপ ইনস্টল করা ছাড়াও, আপনি adb ইউটিলিটি ব্যবহার করে ভার্চুয়াল ডিভাইসে অ্যাপ ইনস্টল করতে পারবেন।

আপনার অ্যাপ ইনস্টল, রান ও পরীক্ষা করতে adb ব্যবহার করতে, এইসব সাধারণ ধাপ অনুসরণ করুন:

  1. আপনার অ্যাপ তৈরি ও রান করুন নিবন্ধে যেভাবে বর্ণনা করা হয়েছে, সেইভাবে আপনার অ্যাপ তৈরি ও APK-তে প্যাকেজ করুন।
  2. প্রয়োজনীয় স্টার্ট-আপ বিকল্প ব্যবহার করে, আগের বিভাগে বর্ণিত কমান্ড লাইন থেকে ইমুলেটর চালু করুন।
  3. adb ব্যবহার করে আপনার অ্যাপ ইনস্টল করুন।
  4. এমুলেটরে আপনার অ্যাপ রান ও পরীক্ষা করুন।
    ইমুলেটর চালু থাকাকালীন, প্রয়োজনমতো কমান্ড ইস্যু করতে, আপনি ইমুলেটর কনসোল ব্যবহার করতে পারবেন।

কোনও অ্যাপ আনইনস্টল করতে, Android ডিভাইসে যেভাবে করেন সেইভাবে করুন।

ভার্চুয়াল ডিভাইস, ব্যবহারকারীর ডেটা ডিস্ক পার্টিশনে (userdata-qemu.img) রিস্টার্ট করার সময় অ্যাপ ও এর স্টেট ডেটা সংরক্ষণ করে। এই ডেটা মুছে দিতে, -wipe-data বিকল্পের মাধ্যমে এমুলেটর চালু করুন অথবা AVD ম্যানেজারে ডেটা মুছে দিন। ব্যবহারকারীর ডেটা পার্টিশন ও অন্যান্য স্টোরেজ সম্পর্কে আরও জানতে, নিম্নলিখিত বিভাগ দেখুন।

মনে রাখবেন: adb ইউটিলিটি ভার্চুয়াল ডিভাইসকে প্রকৃত ফিজিক্যাল ডিভাইস হিসেবে দেখে। এই কারণে, আপনাকে কিছু সাধারণ adb কমান্ডের সাথে -d ফ্ল্যাগ ব্যবহার করতে হতে পারে, যেমন install। -d ফ্ল্যাগ আপনাকে নির্দিষ্ট করতে দেয় যে কমান্ডের টার্গেট হিসেবে কানেক্ট করা একাধিক ডিভাইসের মধ্যে কোনটি ব্যবহার করতে হবে। আপনি উল্লেখ না করলে -d, এমুলেটর তার তালিকায় থাকা প্রথম ডিভাইসকে টার্গেট করে।

ডিফল্ট ডিরেক্টরি ও ফাইল সম্পর্কে বোঝা

ইমুলেটর সংশ্লিষ্ট ফাইল ব্যবহার করে, যার মধ্যে AVD সিস্টেম ও ডেটা ডিরেক্টরি সবচেয়ে গুরুত্বপূর্ণ। কমান্ড-লাইন বিকল্প নির্দিষ্ট করার সময় এমুলেটর ডিরেক্টরি স্ট্রাকচার ও ফাইল সম্পর্কে জানলে সুবিধা হয়, যদিও সাধারণত আপনাকে ডিফল্ট ডিরেক্টরি বা ফাইল পরিবর্তন করতে হয় না।

Android Emulator (QEMU) হাইপারভাইজার ব্যবহার করে।

AVD সিস্টেম ডিরেক্টরি

সিস্টেম ডিরেক্টরিতে Android সিস্টেমের ছবি থাকে যা এমুলেটর অপারেটিং সিস্টেম সিমুলেট করার জন্য ব্যবহার করে। এই ডিরেক্টরিতে প্ল্যাটফর্ম-নির্দিষ্ট, শুধু-পঠনযোগ্য ফাইল আছে যা একই ধরনের সব AVD শেয়ার করে, এর মধ্যে API লেভেল, CPU আর্কিটেকচার ও Android ভার্সন অন্তর্ভুক্ত। ডিফল্ট লোকেশনগুলি হল:

  • macOS ও Linux - ~/Library/Android/sdk/system-images/android-apiLevel/variant/arch/
  • Windows - C:\Users\user\Library\Android\sdk\system-images\android-apiLevel\variant\arch\\

যেখানে:

  • apiLevel হল সংখ্যাসূচক API লেভেল বা প্রিভিউ রিলিজের জন্য অক্ষর। যেমন, android-V থেকে Android VanillaIceCream প্রিভিউ সম্পর্কে জানা যায়। রিলিজ করার পরে, এটি API লেভেল ৩৫ হয়ে গেছে, যা android-35 দ্বারা নির্ধারিত হয়েছে।
  • variant হল সিস্টেম ইমেজ দ্বারা প্রয়োগ করা নির্দিষ্ট ফিচারের সাথে সম্পর্কিত নাম। যেমন, google_apis বা android-wear.
  • arch হল টার্গেট সিপিইউ আর্কিটেকচার। যেমন, x86.

AVD-এর জন্য অন্য সিস্টেম ডিরেক্টরি নির্দিষ্ট করতে -sysdir বিকল্প ব্যবহার করুন।

ইমুলেটর সিস্টেম ডিরেক্টরি থেকে নিম্নলিখিত ফাইলগুলি পড়ে:

টেবিল ১. Android Emulator-এর দ্বারা পড়া সিস্টেম ডিরেক্টরি ফাইল

ফাইল বর্ণনা অন্য ফাইল নির্দিষ্ট করার বিকল্প
kernel-ranchu AVD-এর জন্য বাইনারি কার্নেল ইমেজ। -kernel
ramdisk.img বুট পার্টিশন ইমেজ। সিস্টেম ইমেজ মাউন্ট করার আগে কার্নেল দ্বারা প্রাথমিকভাবে লোড করা system.img এর এটি একটি সাবসেট। এতে সাধারণত অল্প কয়েকটি বাইনারি ও ইনিশিয়ালাইজেশন স্ক্রিপ্ট থাকে। -ramdisk
system.img সিস্টেম ইমেজের শুধু-পঠনযোগ্য, প্রাথমিক ভার্সন। বিশেষ করে, API লেভেল ও ভেরিয়েন্টের সাথে সম্পর্কিত সিস্টেম লাইব্রেরি ও ডেটা ধারণকারী পার্টিশন। -system
userdata.img ডেটা পার্টিশনের প্রাথমিক ভার্সন, যা এমুলেটেড সিস্টেমে data/ হিসেবে দেখা যায় এবং এতে AVD-এর জন্য সব রাইটেবল ডেটা থাকে। আপনি নতুন AVD তৈরি করলে বা ‑wipe-data বিকল্প ব্যবহার করলে এমুলেটর এই ফাইল ব্যবহার করে। আরও তথ্যের জন্য, নিম্নলিখিত বিভাগে userdata-qemu.img ফাইলের বিবরণ দেখুন। -initdata

AVD ডেটা ডিরেক্টরি

AVD ডেটা ডিরেক্টরি, যাকে কন্টেন্ট ডিরেক্টরিও বলা হয়, সেটি একটি সিঙ্গেল AVD ইনস্ট্যান্সের জন্য নির্দিষ্ট এবং এতে AVD-এর জন্য সব পরিবর্তনযোগ্য ডেটা থাকে।

ডিফল্ট লোকেশন হল নিম্নলিখিত, যেখানে name হল AVD নাম:

  • macOS ও Linux - ~/.android/avd/name.avd/
  • Windows 10 ও তার পরবর্তী যেকোনও ভার্সন - C:\Users\user\.android\name.avd\\

অন্য AVD ডেটা ডিরেক্টরি নির্দিষ্ট করতে -datadir বিকল্প ব্যবহার করুন।

এই ডিরেক্টরিতে থাকা সবচেয়ে গুরুত্বপূর্ণ ফাইলগুলির তালিকা নিচে দেওয়া হল:

টেবিল ২. AVD ডেটা ডিরেক্টরিতে গুরুত্বপূর্ণ ফাইল

ফাইল বর্ণনা অন্য ফাইল নির্দিষ্ট করার বিকল্প
userdata-qemu.img

ডেটা পার্টিশনের কন্টেন্ট, যা এমুলেটেড সিস্টেমে data/ হিসেবে দেখা যায়। আপনি নতুন AVD তৈরি করলে অথবা AVD-কে ফ্যাক্টরি ডিফল্টে রিসেট করার জন্য -wipe-data বিকল্প ব্যবহার করলে, emulator সিস্টেম ডিরেক্টরির userdata.img ফাইলটি কপি করে এই ফাইল তৈরি করে।

প্রতিটি ভার্চুয়াল ডিভাইস ইনস্ট্যান্স, ব্যবহারকারী ও সেশন-নির্দিষ্ট ডেটা সেভ করতে রাইটেবল ব্যবহারকারী-ডেটা ইমেজ ব্যবহার করে। যেমন, এটি কোনও অনন্য ব্যবহারকারীর ইনস্টল করা অ্যাপ ডেটা, সেটিংস, ডেটাবেস এবং ফাইল স্টোর করার জন্য ছবি ব্যবহার করে। প্রত্যেক ব্যবহারকারীর আলাদা ANDROID_SDK_HOME ডিরেক্টরি থাকে যা সেই ব্যবহারকারীর তৈরি করা AVD-এর ডেটা ডিরেক্টরি স্টোর করে। প্রতিটি AVD-তে একটি করে userdata-qemu.img ফাইল থাকে।

-data
cache.img ক্যাশে পার্টিশন ইমেজ, যা এমুলেটেড সিস্টেমে cache/ হিসেবে দেখা যায়। আপনি প্রথমবার AVD তৈরি করলে অথবা -wipe-data বিকল্প ব্যবহার করলে এটি খালি থাকে। এটি অস্থায়ী ডাউনলোড ফাইল সেভ করে এবং ডাউনলোড ম্যানেজার ও কখনও কখনও সিস্টেম দ্বারা পপুলেট করা হয়। যেমন, ইমুলেটর চালু থাকাকালীন ডাউনলোড করা ওয়েবপেজ ও ছবি ক্যাশে করার জন্য ব্রাউজার এটি ব্যবহার করে। আপনি ভার্চুয়াল ডিভাইস বন্ধ করে দিলে, ফাইলটি মুছে যায়। আপনি -cache বিকল্প ব্যবহার করে ফাইলটি পারসিস্ট করতে পারবেন। -cache
sdcard.img

(ঐচ্ছিক) একটি এসডি কার্ড পার্টিশন ইমেজ যা আপনাকে ভার্চুয়াল ডিভাইসে এসডি কার্ড সিমুলেট করতে দেয়। আপনি AVD ম্যানেজার বা mksdcard টুল ব্যবহার করে এসডি কার্ড ইমেজ ফাইল তৈরি করতে পারবেন। ফাইলটি আপনার ডেভেলপমেন্ট কম্পিউটারে স্টোর করা থাকে এবং স্টার্ট-আপে সেটি লোড করতে হয়।

AVD ম্যানেজারে AVD নির্ধারণ করার সময়, আপনি অটোমেটিক ম্যানেজ করা এসডি কার্ড ফাইল বা mksdcard টুল দিয়ে তৈরি করা ফাইল ব্যবহার করার বিকল্প বেছে নিতে পারেন। আপনি AVD ম্যানেজারে AVD-এর সাথে যুক্ত sdcard.img ফাইল দেখতে পারবেন। -sdcard বিকল্পটি AVD-তে নির্দিষ্ট করা এসডি কার্ড ফাইলকে ওভাররাইড করে। মনে রাখবেন, Apple Silicon সহ Mac-এ এই এসডি কার্ড বিকল্প কাজ করবে না।

ভার্চুয়াল ডিভাইস চলাকালীন আপনি এমুলেটর UI বা adb ইউটিলিটি ব্যবহার করে সিমুলেটেড SD কার্ড ব্রাউজ করতে, ফাইল পাঠাতে এবং ফাইল কপি ও সরাতে পারবেন। চলমান ভার্চুয়াল ডিভাইস থেকে আপনি সিমুলেট করা SD কার্ড সরাতে পারবেন না।

এসডি কার্ডে ফাইল লোড করার আগে সেটি কপি করতে, ইমেজ ফাইলকে লুপ ডিভাইস হিসেবে মাউন্ট করুন এবং তারপর ফাইল কপি করুন। অথবা, সরাসরি ছবিতে ফাইল কপি করার জন্য mtools প্যাকেজের মতো কোনও ইউটিলিটি ব্যবহার করুন।

ইমুলেটর ফাইলটিকে বাইটের পুল হিসেবে বিবেচনা করে, তাই এসডি কার্ডের ফর্ম্যাট গুরুত্বপূর্ণ নয়।

-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.

কমান্ড-লাইন স্টার্ট-আপ বিকল্প

এই বিভাগে, আপনি এমুলেটর চালু করার সময় কমান্ড লাইনে যেসব বিকল্প দিতে পারেন সেগুলি তালিকাভুক্ত করা আছে।

মনে রাখবেন: Android এমুলেটরকে আরও নির্ভরযোগ্য করে তোলার জন্য এটি ক্রমাগত ডেভেলপ করা হচ্ছে। বিভিন্ন কমান্ড-লাইন বিকল্পের বিরুদ্ধে অভিযোগ জানানো সমস্যাগুলির স্ট্যাটাস এবং বাগ সম্পর্কে অভিযোগ জানাতে, Android সমস্যা ট্র্যাকার দেখুন।

সাধারণভাবে ব্যবহার করা বিকল্প

নিম্নলিখিত সারণীতে কমান্ড-লাইন স্টার্ট-আপ বিকল্পগুলি তালিকাভুক্ত করা হয়েছে যা আপনি প্রায়ই ব্যবহার করতে পারেন:

টেবিল ৩. সাধারণত ব্যবহৃত কমান্ড-লাইন বিকল্প

কমান্ড-লাইন বিকল্প বর্ণনা
দ্রুত বুট
-no-snapshot-load কোল্ড বুট করে এবং বেরিয়ে আসার সময় ইমুলেটরের স্টেট সেভ করে।
-no-snapshot-save সম্ভব হলে দ্রুত বুট করে, কিন্তু বেরিয়ে যাওয়ার সময় ইমুলেটর স্টেট সেভ করে না।
-no-snapshot সম্পূর্ণভাবে 'দ্রুত বুট' ফিচার বন্ধ করে দেয় এবং এমুলেটর স্টেট লোড বা সেভ করে না।
ডিভাইস হার্ডওয়্যার
-camera-back mode
-camera-front mode

পিছনের বা সামনের দিকে মুখ করা ক্যামেরার জন্য এমুলেশন মোড সেট করে। এটি AVD-তে থাকা যেকোনও ক্যামেরা সেটিংসকে ওভাররাইড করে।

mode নিম্নলিখিত মানগুলির মধ্যে যেকোনও একটি হতে পারে:

  • emulated - ইমুলেটর সফ্টওয়্যারে একটি ক্যামেরার সিমুলেশন তৈরি করে।
  • environment - AVD-এর এনভায়রনমেন্ট কনফিগারেশন ফাইলে সংজ্ঞায়িত ভার্চুয়াল দৃশ্য এমুলেটর ব্যবহার করে।
  • webcamn - এমুলেটর আপনার ডেভেলপমেন্ট কম্পিউটারের সাথে কানেক্ট করা ওয়েবক্যাম ব্যবহার করে, যা নম্বর দিয়ে নির্দিষ্ট করা হয়। ওয়েবক্যামের তালিকা দেখতে, -webcam-list বিকল্প ব্যবহার করুন। যেমন, webcam0.
  • imagefile:filename - এমুলেটর ক্যামেরা আউটপুটের জন্য একটি ইমেজ ফাইল ব্যবহার করে।
  • videofile:filename - এমুলেটর ক্যামেরা আউটপুটের জন্য ভিডিও ব্যবহার করে।
  • image360:filename - এমুলেটর, ক্যামেরা আউটপুটের জন্য একটি ইকুইরেক্ট্যাঙ্গুলার প্যানোরামিক ছবি ব্যবহার করে। 36.6.4 এবং তার পরবর্তী যেকোনও ভার্সনে উপলভ্য।
  • 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 হল ডেভেলপমেন্ট কম্পিউটারে OS-এর ব্যবহার করা নাম। দ্বিতীয় নাম OS-এর উপর নির্ভর করে আলাদা আলাদা হয়।

SDK টুল 25.2.4 ভার্সন অনুযায়ী, AVD-এর নাম প্রয়োজন।

ডিস্ক ইমেজ ও মেমরি
-memory size

১৫৩৬ থেকে ৮১৯২ এমবি পর্যন্ত ফিজিক্যাল RAM সাইজ নির্দিষ্ট করে। যেমন:

emulator @Pixel8_API_34 -memory 2048

এই ভ্যালু AVD সেটিংকে ওভাররাইড করে।

-sdcard filepath

এসডি কার্ড পার্টিশন ইমেজ ফাইলের ফাইলের নাম ও পাথ নির্দিষ্ট করে। যেমন:

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

ফাইলটি খুঁজে না পাওয়া গেলেও, এমুলেটরটি চালু হবে, তবে এসডি কার্ড ছাড়াই। কমান্ডটি কোনও SD কার্ডের ছবি নেই সতর্কতা দেখায়।

আপনি এই বিকল্প নির্দিষ্ট না করলে, AVD অন্য কিছু নির্দিষ্ট না করলে, ডেটা ডিরেক্টরিতে ডিফল্ট হল sdcard.img । ইমুলেটেড এসডি কার্ড সম্পর্কে আরও জানতে, 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
-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'

এছাড়াও, আপনি 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 হল সর্বাধিক চারটি DNS সার্ভারের নাম বা IP অ্যাড্রেসের কমা-সেপারেটেড তালিকা। যেমন:

emulator @Pixel8_API_34 -dns-server 192.0.2.0,
192.0.2.255

ডিফল্ট হিসেবে, আপনি যে ডিএনএস সার্ভার ব্যবহার করছেন তা এমুলেটর শনাক্ত করার চেষ্টা করে এবং Android সিস্টেমকে সরাসরি সার্ভারের সাথে কানেক্ট করার অনুমতি দিতে এমুলেটেড ফায়ারওয়াল নেটওয়ার্কে বিশেষ অ্যালিয়াস সেট-আপ করে। ডিএনএস সার্ভারের অন্য তালিকা নির্দিষ্ট করতে -dns-server বিকল্প ব্যবহার করুন।

-http-proxy proxy

নির্দিষ্ট HTTP/HTTPS প্রক্সির মাধ্যমে সব TCP কানেকশন তৈরি করে। আপনার ইমুলেটরকে যদি প্রক্সি সার্ভারের মাধ্যমে ইন্টারনেট অ্যাক্সেস করতে হয়, তাহলে আপনি এই বিকল্প বা 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 (ন্যূনতম ৮০, সর্বাধিক ৪০০)।
  • gprs - GPRS (ন্যূনতম ৩৫, সর্বাধিক ২০০)।
  • edge - EDGE/EGPRS (ন্যূনতম ৮০, সর্বাধিক ৪০০)।
  • umts - UMTS/3G (ন্যূনতম ৩৫, সর্বাধিক ২০০)।
  • hsdpa - HSDPA (সর্বনিম্ন ০, সর্বাধিক ০)।
  • lte - LTE (সর্বনিম্ন ০, সর্বাধিক ০)।
  • evdo - 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

নেটওয়ার্ক স্পিড এমুলেশন সেট করে। kbps-এ নিম্নলিখিত speed ভ্যালুগুলির মধ্যে একটির সাহায্যে সর্বাধিক নেটওয়ার্ক আপলোড ও ডাউনলোড স্পিড নির্দিষ্ট করে:

  • gsm - GSM/CSD (আপ: ১৪.৪, ডাউন: ১৪.৪)।
  • hscsd - HSCSD (আপ: ১৪.৪, ডাউন: ৫৭.৬)।
  • gprs - GPRS (আপলোড: ২৮.৮, ডাউনলোড: ৫৭.৬)।
  • edge - EDGE/EGPRS (আপলোড: ৪৭৩.৬, ডাউনলোড: ৪৭৩.৬)।
  • umts - UMTS/3G (আপ: ৩৮৪.০, ডাউন: ৩৮৪.০)।
  • hsdpa - HSDPA (আপলোড: ৫৭৬০.০, ডাউনলোড: ১৩৯৮০.০)।
  • lte - LTE (আপ: ৫৮,০০০, ডাউন: ১৭৩,০০০)।
  • evdo - EVDO (আপলোড: ৭৫,০০০, ডাউনলোড: ২৮০,০০০)।
  • full - কোনও সীমা নেই, ডিফল্ট (আপ: ০.০, ডাউন: ০.০)।
  • 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

কনসোল ও adb-এর জন্য ব্যবহৃত TCP পোর্ট নম্বর সেট করে। যেমন:

emulator @Pixel8_API_34 -port 5556

আপনার মেশিনে রান করা প্রথম ভার্চুয়াল ডিভাইস ইনস্ট্যান্সের জন্য ডিফল্ট ভ্যালু হল ৫৫৫৪। একটি ভার্চুয়াল ডিভাইস সাধারণত দুটি সংলগ্ন পোর্ট দখল করে: একটি কনসোল পোর্ট এবং একটি adb পোর্ট। কোনও নির্দিষ্ট মেশিনে চলমান প্রথম ভার্চুয়াল ডিভাইসের কনসোল, কনসোল পোর্ট 5554 এবং adb পোর্ট 5555 ব্যবহার করে। পরবর্তী ইনস্ট্যান্সের ক্ষেত্রে পোর্ট নম্বর দুই করে বাড়ানো হয়। যেমন, ৫৫৫৬/৫৫৫৭, ৫৫৫৮/৫৫৫৯ এবং আরও অনেক কিছু। রেঞ্জ হল ৫৫৫৪ থেকে ৫৬৮২, যা ৬৪টি কনকারেন্ট ভার্চুয়াল ডিভাইসের জন্য অনুমতি দেয়।

পোর্ট অ্যাসাইনমেন্ট প্রায়শই -ports port,{port + 1} নির্দিষ্ট করার মতোই হয়। {port + 1} অবশ্যই ফ্রি হতে হবে এবং এটি adb-এর জন্য রিজার্ভ করা আছে। কনসোল বা adb পোর্টগুলির মধ্যে কোনও একটি আগে থেকেই ব্যবহার করা হলে, এমুলেটর চালু হবে না।

‑port বিকল্প কোন পোর্ট ও সিরিয়াল নম্বর ভার্চুয়াল ডিভাইস ব্যবহার করছে তা জানায় এবং আপনার দেওয়া ভ্যালুতে কোনও সমস্যা থাকলে সতর্ক করে দেয়। ইমুলেটর UI-তে, আপনি উইন্ডো শিরোনামে কনসোল পোর্ট নম্বর দেখতে এবং adb পোর্ট নম্বর দেখতে সহায়তা > সম্পর্কে বিকল্প বেছে নিতে পারবেন।

মনে রাখবেন, port ভ্যালু জোড় সংখ্যা না হলে এবং সেটি যদি ৫৫৫৪ থেকে ৫৫৮৪ রেঞ্জের মধ্যে থাকে, তাহলে ভার্চুয়াল ডিভাইস চালু হবে, কিন্তু আপনি adb devices কমান্ড ব্যবহার করলে সেটি দেখা যাবে না, যদি adb server এমুলেটরের পরে চালু হয়। এই কারণে, আমরা একটি জোড় কনসোল পোর্ট নম্বর ব্যবহার করার জন্য সাজেস্ট করি।

-ports
console-port,adb-port

কনসোল ও adb-এর জন্য ব্যবহৃত TCP পোর্ট সেট করে। যেমন:

emulator @Pixel8_API_34 -ports 5556,5559

সঠিক পোর্ট রেঞ্জ হল 5554 থেকে 5682, যা ৬৪টি কনকারেন্ট ভার্চুয়াল ডিভাইসের জন্য অনুমতি দেয়। -ports বিকল্পটি কোন পোর্ট ও সিরিয়াল নম্বর এমুলেটর ইনস্ট্যান্স ব্যবহার করছে তা রিপোর্ট করে এবং আপনার দেওয়া ভ্যালুতে কোনও সমস্যা থাকলে তা জানায়।

সম্ভব হলে, আমরা এর পরিবর্তে -port বিকল্প ব্যবহার করার সাজেশন দিই। বিশেষ সেটিংসের প্রয়োজন হয় এমন নেটওয়ার্ক কনফিগারেশনের জন্য -ports বিকল্প উপলভ্য।

কনসোল ও adb পোর্ট সেট করা সম্পর্কে আরও জানতে, -port বিকল্প দেখুন।

-tcpdump filepath

নেটওয়ার্ক প্যাকেট ক্যাপচার করে এবং সেগুলিকে একটি ফাইলে স্টোর করে। যেমন:

emulator @Pixel8_API_34 -tcpdump /path/dumpfile.cap

ইমুলেটরের ভার্চুয়াল ইথারনেট ল্যানের মাধ্যমে পাঠানো সব নেটওয়ার্ক প্যাকেট ক্যাপচার করা শুরু করতে এই বিকল্প ব্যবহার করুন। এর পরে, ট্রাফিক বিশ্লেষণ করতে আপনি Wireshark-এর মতো টুল ব্যবহার করতে পারবেন।

মনে রাখবেন, এই বিকল্পটি সমস্ত ইথারনেট প্যাকেট ক্যাপচার করে এবং এটি TCP কানেকশনের মধ্যে সীমাবদ্ধ নয়।

সিস্টেম
-accel mode

ইমুলেটর VM অ্যাক্সিলারেশন কনফিগার করে। যেমন:

emulator @Pixel8_API_34 -accel auto

অ্যাক্সিলারেটেড এমুলেশনের জন্য হোস্ট CPU আর্কিটেকচারের সাথে ম্যাচ করে এমন একটি সিস্টেম ইমেজ প্রয়োজন। Linux-এ, এটি KVM-এর উপর নির্ভর করে। Windows-এ, এটি Windows Hypervisor Platform (WHPX)-এর উপর নির্ভর করে। macOS-এ, এটি Hypervisor.Framework (HVF)-এর উপর নির্ভর করে।

mode-এর জন্য সঠিক ভ্যালু হল:

  • auto - অ্যাক্সিলারেশন কাজ করে কিনা তা অটোমেটিক নির্ধারণ করে এবং সম্ভব হলে এটি ব্যবহার করে (ডিফল্ট)।
  • off - অ্যাক্সিলারেশন বন্ধ করে দেয় এবং সফ্টওয়্যার ইমুলেশন ব্যবহার করে। এই মোড কাজ করে না এবং খুব ধীরে কাজ করে। এটি ব্যবহার করতে, ANDROID_I_WANT_MY_TCG এনভায়রনমেন্ট ভেরিয়েবলকে yes হিসেবে সেট করুন। অন্যথায়, এমুলেটর চালু হবে না এবং একটি সমস্যার মেসেজ প্রিন্ট করবে।
  • on - অ্যাক্সিলারেশন প্রয়োগ করে। হাইপারভাইজর ইনস্টল করা না থাকলে বা ব্যবহারযোগ্য না হলে, এমুলেটর চালু হবে না এবং একটি সমস্যার মেসেজ প্রিন্ট করবে।

আরও তথ্যের জন্য, Android এমুলেটরের জন্য হার্ডওয়্যার অ্যাক্সিলারেশন কনফিগার করুন দেখুন।

-accel-check

এমুলেটর VM অ্যাক্সিলারেশনের জন্য প্রয়োজনীয় হাইপারভাইজর ইনস্টল করা আছে কিনা তা চেক করে (KVM, WHPX বা HVF)। যেমন:

emulator -accel-check

আরও তথ্যের জন্য, হাইপারভাইজার ইনস্টল করা আছে কিনা তা চেক করুন দেখুন।

-gpu mode

GPU ইমুলেশন মোড বেছে নেয়। যেমন:

emulator @Pixel8_API_34 -gpu swiftshader_indirect

আরও তথ্যের জন্য, গ্রাফিক্স অ্যাক্সিলারেশন কনফিগার করা দেখুন।

-selinux {disabled|permissive}

Linux অপারেটিং সিস্টেমে নিরাপত্তা-উন্নত Linux (SELinux) নিরাপত্তা মডিউলকে disabled বা permissive মোডে সেট করে। যেমন:

me-linux$ emulator @Pixel8_API_34 -selinux permissive

সাধারণত, SELinux enforcing মোডে থাকে, অর্থাৎ নিরাপত্তা নীতি প্রয়োগ করা হয়। permissive মোড SELinux নীতি লোড করে কিন্তু এটি এনফোর্স করে না। এই বিকল্প শুধুমাত্র নীতি লঙ্ঘন লগ করে। disabled মোড SELinux-এর জন্য কার্নেল সাপোর্ট বন্ধ করে দেয়। API লেভেল 23 ও তার পরবর্তী যেকোনও লেভেলে, disabled-কে permissive হিসেবে গণ্য করা হয়।

-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
UI
-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 সিস্টেম ডিরেক্টরি ও ডেটা ডিরেক্টরি এবং সেগুলির মধ্যে সেভ করা ফাইল সম্পর্কে জানতে, ডিফল্ট ডিরেক্টরি ও ফাইল সম্পর্কিত বিভাগ দেখুন।

এইসব বিকল্পের মধ্যে কিছু এক্সটার্নাল অ্যাপ ডেভেলপারদের জন্য উপযুক্ত এবং কিছু বিকল্প মূলত প্ল্যাটফর্ম ডেভেলপারদের দ্বারা ব্যবহৃত হয়। অ্যাপ ডেভেলপাররা Android অ্যাপ তৈরি করেন এবং নির্দিষ্ট AVD-তে সেগুলি চালান। প্ল্যাটফর্ম ডেভেলপাররা Android সিস্টেমে কাজ করেন এবং আগে থেকে তৈরি করা কোনও AVD ছাড়াই এমুলেটরের মধ্যে এটি রান করান।

টেবিল ৪. উন্নত কমান্ড-লাইন বিকল্প

উন্নত বিকল্প সংক্ষিপ্ত বিবরণ
-bootchart timeout

সেকেন্ডে টাইম-আউট সহ বুটচার্টিং চালু করে। কিছু Android সিস্টেম ইমেজে একটি পরিবর্তিত ইনিট সিস্টেম আছে যা বুটচার্টিং সুবিধা ইন্টিগ্রেট করে। এই বিকল্পের সাহায্যে আপনি সিস্টেমকে বুটচার্টিং টাইম-আউট পিরিয়ড পাস করতে পারবেন। আপনার ইনিট সিস্টেমে বুটচার্টিং অ্যাক্টিভেট করা না থাকলে, এই বিকল্পটি কোনও কাজ করে না। এই বিকল্পটি মূলত প্ল্যাটফর্ম ডেভেলপারদের জন্য উপযোগী, এক্সটার্নাল অ্যাপ ডেভেলপারদের জন্য নয়।

যেমন:

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

MB-তে ক্যাশে পার্টিশনের সাইজ সেট করে।

যেমন:

emulator @Pixel8_API_34 -cache-size 1000

আপনি এই বিকল্প নির্দিষ্ট না করলে, ডিফল্ট হিসেবে ৬৬ এমবি সেট করা হয়। সাধারণত, বেশিরভাগ অ্যাপ ডেভেলপারদের এই বিকল্পের প্রয়োজন হয় না, যদি না তাদের খুব বড় ফাইল ডাউনলোড করতে হয় যা ডিফল্ট ক্যাশের চেয়ে বড়। ক্যাশে ফাইল সম্পর্কে আরও জানতে, AVD ডেটা ডিরেক্টরি দেখুন।

-data filepath

ব্যবহারকারীর ডেটা পার্টিশন ইমেজ ফাইল সেট করে। স্থায়ী ব্যবহারকারীর ডেটা ফাইল সেট-আপ করতে ফাইলের নাম এবং একটি অ্যাবসলিউট পাথ বা ওয়ার্কিং ডিরেক্টরির সাথে সম্পর্কিত পাথ প্রদান করে। ফাইলটি না থাকলে, এমুলেটর ডিফল্ট userdata.img ফাইল থেকে একটি ছবি তৈরি করে, আপনার উল্লেখ করা filename-এ সেটি সেভ করে এবং শাটডাউন করার সময় ব্যবহারকারীর ডেটা এতে সেভ করে।

যেমন:

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
-help-disk-images

ডিস্ক ইমেজ সম্পর্কে সাহায্য পাওয়া। এই বিকল্পটি অ্যাপ এবং প্ল্যাটফর্ম, উভয় ডেভেলপারদের জন্য প্রাসঙ্গিক তথ্য প্রদান করে। যেমন:

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

device স্পেসিফিকেশন সম্পর্কে সাহায্য পায়। কিছু এমুলেটর বিকল্পের জন্য A device প্যারামিটার প্রয়োজন। যেমন:

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

অ্যাপ ডেভেলপারদের জন্য প্রাসঙ্গিক ডিস্ক ইমেজ সম্পর্কে সহায়তা পান। SDK টুল দিয়ে তৈরি AVD-এর জন্য ইমেজ ফাইল কোথায় আছে সেই সম্পর্কে এই বিকল্পটি তথ্য পায়। যেমন:

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

প্ল্যাটফর্ম ডেভেলপারদের জন্য প্রাসঙ্গিক ডিস্ক ইমেজ সম্পর্কে সহায়তা পায়। যেমন:

emulator -help-build-images
-initdata 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

এই ভার্চুয়াল ডিভাইসের জন্য অডিও সহায়তা বন্ধ করে দেয়। কিছু Linux এবং Windows কম্পিউটারে ত্রুটিপূর্ণ অডিও ড্রাইভার থাকে যার ফলে বিভিন্ন লক্ষণ দেখা যায়, যেমন এমুলেটর চালু হতে বাধা দেয়। এই ক্ষেত্রে, সমস্যা সমাধান করতে এই বিকল্প ব্যবহার করুন। বিকল্প হিসেবে, অডিও ব্যাকএন্ড পরিবর্তন করতে আপনি QEMU_AUDIO_DRV এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করতে পারেন।

যেমন:

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-window

ইমুলেটরে গ্রাফিক্যাল উইন্ডো ডিসপ্লে বন্ধ করে দেয়। যেসব সার্ভারে ডিসপ্লে নেই সেগুলিতে এমুলেটর চালানোর সময় এই বিকল্পটি কাজে লাগে। আপনি adb বা কনসোলের মাধ্যমে এমুলেটর অ্যাক্সেস করতে পারবেন। যেমন:

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

MB-তে সিস্টেম ডেটা পার্টিশনের সাইজ নির্দিষ্ট করে। যেমন:

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

ইমুলেটর বুট করার সময় Android সিস্টেম প্রপার্টি সেট করে। name অবশ্যই qemu_prop হিসেবে লেবেল করা একটি প্রপার্টির নাম হতে হবে, যার দৈর্ঘ্য সর্বাধিক ৩২ অক্ষর হতে হবে, কোনও স্পেস থাকা চলবে না এবং value অবশ্যই সর্বাধিক ৯২ অক্ষরের একটি স্ট্রিং হতে হবে। যেমন, property_contexts ফাইল দেখুন। আপনি একটি কমান্ড লাইনে একাধিক ‑prop বিকল্প নির্দিষ্ট করতে পারবেন। এই বিকল্পটি ডিবাগ করার জন্য সহায়ক হতে পারে। যেমন:

emulator @Pixel8_API_34 -prop qemu.name=value -prop qemu.abc=xyz
-qemu args QEMU ইমুলেটর সফ্টওয়্যারে আর্গুমেন্ট পাস করে। এই বিকল্প ব্যবহার করার সময়, এটি যেন উল্লেখ করা শেষ বিকল্প হয় তা নিশ্চিত করুন, কারণ এর পরে থাকা সব বিকল্পকে QEMU-নির্দিষ্ট বিকল্প হিসেবে ব্যাখ্যা করা হয়। এই বিকল্পটি বেশ উন্নত এবং শুধুমাত্র সেইসব ডেভেলপারদের ব্যবহার করা উচিত যারা QEMU এবং Android এমুলেশন সম্পর্কে খুবই পরিচিত।
-qemu -h

-qemu সহায়তা দেখায়। যেমন:

emulator -qemu -h
-ramdisk filepath

একটি র‌্যামডিস্ক বুট ইমেজ নির্দিষ্ট করে। ফাইলের নাম এবং একটি অ্যাবসলিউট পাথ অথবা ওয়ার্কিং ডিরেক্টরির সাথে সম্পর্কিত পাথ নির্দিষ্ট করে।

যেমন:

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 (বা macOS-এ Command-C) প্রেস করুন।

যেমন:

emulator @Pixel8_API_34 -shell
-snapshot name

অটোমেটিক শুরু ও সেভ অপারেশনের জন্য স্ন্যাপশটের নাম নির্দিষ্ট করে।

সম্পূর্ণ বুট সিকোয়েন্স এক্সিকিউট করার পরিবর্তে, এমুলেটর আগের কোনও স্টেট স্ন্যাপশট থেকে এক্সিকিউশন আবার শুরু করতে পারে, যা সাধারণত অনেক বেশি দ্রুত হয়। আপনি এই বিকল্পটি দিলে, এমুলেটর সেই নামের স্ন্যাপশট লোড করে এবং বেরিয়ে আসার সময় সেটি একই নামে সেভ করে।

আপনি এই বিকল্প ব্যবহার না করলে, এমুলেটর কুইক বুট ব্যবহার করে এবং default_boot স্ন্যাপশট থাকলে সেটি লোড করে। উল্লিখিত স্ন্যাপশট না থাকলে, এমুলেটর পরিবর্তে সম্পূর্ণ বুট সিকোয়েন্স পারফর্ম করে এবং সেভ অপারেশন পারফর্ম করে।

emulator @Pixel8_API_34 -snapshot snapshot2

মনে রাখবেন, স্ন্যাপশট লোড করার প্রসেসে, সিস্টেমের সব কন্টেন্ট, ব্যবহারকারীর ডেটা এবং SD কার্ডের ছবি ওভাররাইট করা হয় স্ন্যাপশট নেওয়ার সময় সেগুলিতে থাকা কন্টেন্ট দিয়ে। আপনি অন্য স্ন্যাপশটে এই তথ্য সেভ না করলে, তারপর থেকে করা যেকোনও পরিবর্তন আর পাওয়া যাবে না।

এছাড়াও, আপনি avd snapshot save name কমান্ড ব্যবহার করে এমুলেটর কনসোল থেকে স্ন্যাপশট তৈরি করতে পারবেন। আরও তথ্যের জন্য, Emulator কনসোল কমান্ড পাঠানো দেখুন।

-snapshot-list

AVD-র জন্য উপলভ্য স্ন্যাপশটের তালিকা দেখায়, তারপর বেরিয়ে আসে।

যেমন:

emulator @Pixel8_API_34 -snapshot-list

আপনি আউটপুটে ID এবং TAG কলামের ভ্যালু -snapshot বিকল্পের আর্গুমেন্ট হিসেবে ব্যবহার করতে পারবেন।

-sysdir dir

অ্যাবসলিউট পাথ ব্যবহার করে সিস্টেম ডিরেক্টরি নির্দিষ্ট করে। আরও তথ্যের জন্য, AVD সিস্টেম ডিরেক্টরি দেখুন। যেমন:

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

প্রাথমিক সিস্টেম ফাইল নির্দিষ্ট করে। ফাইলের নাম এবং একটি অ্যাবসলিউট পাথ অথবা ওয়ার্কিং ডিরেক্টরির সাথে সম্পর্কিত পাথ প্রদান করে।

যেমন:

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

আপনি এই বিকল্প ব্যবহার না করলে, ডিফল্ট হিসেবে সিস্টেম ডিরেক্টরিতে system.img ফাইল ব্যবহার করা হয়। আরও তথ্যের জন্য, AVD সিস্টেম ডিরেক্টরি দেখুন।

-writable-system

ইমুলেশন সেশন চলাকালীন রাইটেবল সিস্টেম ইমেজ পেতে এই বিকল্প ব্যবহার করুন। এটি করতে:

  1. -writable-system বিকল্পের মাধ্যমে ভার্চুয়াল ডিভাইস চালু করুন।
  2. কমান্ড টার্মিনাল থেকে adb remount কমান্ড লিখে এমুলেটরকে system/-কে রিড/রাইট হিসেবে আবার মাউন্ট করতে বলুন। ডিফল্ট হিসেবে, এটি রিড-অনলি হিসেবে মাউন্ট করা হয়।

এই ফ্ল্যাগ ব্যবহার করলে সিস্টেম ইমেজের একটি সাময়িক কপি তৈরি হয় যা খুব বড় হতে পারে, কয়েকশো MB পর্যন্ত হতে পারে, কিন্তু এমুলেটর বন্ধ হয়ে গেলে এটি মুছে যায়।

পুরনো হয়ে যাওয়া বিকল্প

নিম্নলিখিত কমান্ড-লাইন বিকল্পগুলি বন্ধ হয়ে গেছে। ইমুলেটর ভার্সনের উপর নির্ভর করে, এগুলি সতর্কতা সহ উপেক্ষা করা হয় অথবা অজানা বিকল্প হিসেবে বাতিল করা হয়:

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

কমান্ড-লাইন বিকল্প সম্পর্কে সহায়তা পাওয়া

কমান্ড-লাইন বিকল্প সম্পর্কে কীভাবে সহায়তা পাবেন তা এই বিভাগে বর্ণনা করা হয়েছে। এটি সাধারণত ব্যবহৃত ইমুলেটর কমান্ড-লাইন বিকল্প সম্পর্কে আরও বিস্তারিত তথ্য প্রদান করে যা আপনি ইমুলেটর চালু করলে উপলভ্য হয়।

সব এমুলেটর বিকল্পের তালিকা তৈরি করো

সংক্ষিপ্ত বিবরণ সহ সব এমুলেটর বিকল্পের তালিকা প্রিন্ট করতে, নিম্নলিখিত কমান্ডটি লিখুন:

emulator -help

নির্দিষ্ট বিকল্পের জন্য বিস্তারিত সহায়তা পাওয়া

নির্দিষ্ট স্টার্ট-আপ বিকল্পের জন্য সহায়তা প্রিন্ট করতে, নিম্নলিখিত কমান্ড লিখুন:

emulator -help-option

যেমন:

emulator -help-netspeed

এই সহায়তা, -help বিকল্পের মাধ্যমে দেওয়া বিবরণের চেয়ে আরও বিস্তারিত।

সব বিকল্পের জন্য বিস্তারিত সাহায্য পান

সব এমুলেটর বিকল্পের জন্য বিস্তারিত সহায়তা পেতে, নিম্নলিখিত কমান্ড লিখুন:

emulator -help-all

ইমুলেটর এনভায়রনমেন্ট ভেরিয়েবলের তালিকা

ইমুলেটর এনভায়রনমেন্ট ভেরিয়েবলের তালিকা পেতে, নিম্নলিখিত কমান্ড লিখুন:

emulator -help-environment

ভার্চুয়াল ডিভাইস লঞ্চ করার আগে আপনি টার্মিনাল উইন্ডোতে এনভায়রনমেন্ট ভেরিয়েবল সেট করতে পারেন অথবা অপারেটিং সিস্টেমে আপনার ব্যবহারকারীর সেটিংসের মাধ্যমে এটি সেট করতে পারেন। যেমন, Linux-এ আপনার .bashrc ফাইলে এটি সেট করুন।

ডিবাগ ট্যাগ তালিকাভুক্ত করা

-debug বিকল্পের জন্য ট্যাগগুলির একটি তালিকা প্রিন্ট করতে, নিম্নলিখিত কমান্ডটি লিখুন:

emulator -help-debug-tags

-debug বিকল্প আপনাকে ট্যাগ দ্বারা নির্দিষ্ট করা নির্দিষ্ট এমুলেটর কম্পোনেন্ট থেকে ডিবাগ মেসেজ চালু বা বন্ধ করতে দেয়।