Android Emulator হলো Android Studio-এর একটি উপাদান যা ডেভেলপারের কম্পিউটারে একটি Android ডিভাইসের সম্পূর্ণ ভার্চুয়াল কপি চালায়। এমুলেটর ARM নির্দেশাবলী হোস্টের x86_64 আর্কিটেকচারে অনুবাদ করতে QEMU ব্যবহার করে। Google ডকুমেন্টেশন AVD ভার্চুয়াল ডিভাইস এবং হার্ডওয়্যার এক্সিলারেশন সেটআপের সম্পূর্ণ চক্র বর্ণনা করে।
মূল পয়েন্ট
Android Emulator হলো একটি ভার্চুয়াল Android ডিভাইস যা QEMU (Quick EMUlator)-এর উপর চলে এবং Android হার্ডওয়্যার প্ল্যাটফর্ম এমুলেট করে। iOS Simulator-এর বিপরীতে, Android Emulator সম্পূর্ণরূপে ARM নির্দেশাবলী অনুবাদ করে, যা মোবাইল আর্কিটেকচারের জন্য কম্পাইল করা কোডকে x86_64 হোস্টে চালানোর অনুমতি দেয়।
Google 2007 সালে Android SDK-এর প্রথম সংস্করণের সাথে Android Emulator প্রকাশ করে। তারপর থেকে, এমুলেটর একটি ধীর ARM-only সমাধান থেকে GPU সমর্থন, হার্ডওয়্যার এক্সিলারেশন এবং সেন্সর এমুলেশন সহ উচ্চ-কার্যক্ষমতা সম্পন্ন সিস্টেমে বিবর্তিত হয়েছে। Google (Android Developer Blog, 2025) অনুসারে, HAxM সহ আধুনিক এমুলেটর প্রথম প্রজন্মের তুলনায় 4-5 গুণ দ্রুত চলে।
এমুলেটর একটি Android ডিভাইসের সমস্ত উপাদান সমর্থন করে: CPU, GPU, RAM, স্টোরেজ, টাচ স্ক্রিন, অ্যাক্সেলেরোমিটার, গাইরোস্কোপ, GPS, ক্যামেরা, ব্যাটারি, NFC, ব্লুটুথ এবং Wi-Fi। ডেভেলপার Extended Controls-এর মাধ্যমে ইনকামিং কল, SMS, বিভিন্ন নেটওয়ার্ক সিগন্যাল স্তর এবং জিওলোকেশন সিমুলেট করতে পারেন।
Android Emulator SDK Manager-এর মাধ্যমে ডাউনলোড করা সিস্টেম ইমেজ (System Images) ব্যবহার করে। প্রতিটি সিস্টেম ইমেজে নির্বাচিত API স্তর এবং লক্ষ্য প্রসেসর আর্কিটেকচারের জন্য Android ফার্মওয়্যারের সম্পূর্ণ কপি থাকে। বিভিন্ন আর্কিটেকচারের ইমেজ উপলব্ধ: x86_64 (HAxM সহ সুপারিশকৃত), ARM64 (ARM সামঞ্জস্য পরীক্ষার জন্য) এবং Google APIs (পূর্ব-ইনস্টল করা Google Play Services সহ)। Wear OS, Android TV এবং Automotive-এর জন্যও আলাদা ইমেজ উপলব্ধ।
// কোডে এমুলেটর টাইপ চেক
val isEmulator = Build.FINGERPRINT
.contains("generic") ||
Build.PRODUCT.contains("sdk")
if (isEmulator) {
Timber.d("অ্যাপ এমুলেটরে চলছে")
}AVD (Android Virtual Device) হলো এমুলেটরের জন্য ভার্চুয়াল ডিভাইস কনফিগারেশন। Android Studio-তে AVD Manager যে কোনো বৈশিষ্ট্যের সংমিশ্রণ সহ ডিভাইস তৈরি করার অনুমতি দেয়: মডেল, স্ক্রিন সাইজ, পিক্সেল ঘনত্ব, RAM সাইজ, স্টোরেজ সাইজ এবং Android সংস্করণ।
| AVD প্যারামিটার | ডেভেলপমেন্টের জন্য সুপারিশ | পরীক্ষার জন্য সুপারিশ |
|---|---|---|
| আর্কিটেকচার | x86_64 (HAxM সহ) | ARM64 (বিশুদ্ধ এমুলেশন) |
| RAM | 2048-4096 MB | 1536-2048 MB |
| অভ্যন্তরীণ স্টোরেজ | 8-16 GB | 4-8 GB |
| API স্তর | সর্বশেষ স্থিতিশীল | ন্যূনতম সমর্থিত |
| Google Play Services | সক্রিয় করুন | প্রয়োজন অনুযায়ী |
AVD তৈরি Android Studio-তে Device Manager-এর মাধ্যমে করা হয়: একটি হার্ডওয়্যার প্রোফাইল (Pixel, Nexus, Galaxy এবং অন্যান্য), সিস্টেম ইমেজ নির্বাচন করুন এবং প্যারামিটার কনফিগার করুন। তৈরি করার পরে, ডিভাইসটি তাৎক্ষণিক অ্যাপ লঞ্চের জন্য Run Configurations তালিকায় উপস্থিত হয়।
এমুলেটর Quick Boot সমর্থন করে — এটি AVD অবস্থা snapshot হিসেবে সংরক্ষণ করে এবং পরবর্তী লঞ্চে পুনরুদ্ধার করে। বুট সময় 30-60 সেকেন্ড থেকে 2-5 সেকেন্ডে কমে যায়। পরিষ্কার অবস্থায় রিসেট করতে AVD Manager-এ Cold Boot Now ব্যবহার করুন।
ARM অনুবাদ Android Emulator-এর একটি মূল প্রযুক্তি যা ARM নির্দেশাবলী তাৎক্ষণিকভাবে x86_64-তে রূপান্তর করে। অনুবাদ ছাড়া, এমুলেটর শুধুমাত্র x86_64 ইমেজ চালাতে পারে, যা পরীক্ষার সক্ষমতা সীমিত করে। Google ARM→x86 অনুবাদের জন্য libhoudini এবং HAXM এক্সিলারেশনের জন্য Intel লাইব্রেরি ব্যবহার করে।
# Windows-এ HAxM স্ট্যাটাস চেক
sc query "IntelHaxm"
# SDK Manager-এর মাধ্যমে HAxM ইনস্টল করা
sdkmanager "extras;intel;Hardware_Accelerated_Execution_Manager"
# হার্ডওয়্যার এক্সিলারেশন সহ এমুলেটর শুরু করা
emulator -avd Pixel_9_API_35 -accel on -gpu autoIntel HAxM (Hardware Accelerated Execution Manager) হলো Intel VT-x প্রসেসরের জন্য একটি ভার্চুয়ালাইজেশন ড্রাইভার যা এমুলেটরকে 3-5 গুণ দ্রুত করে। AMD প্রসেসর সহ Windows-এ, Windows Hyper-V Platform এবং WHPX ব্যবহার করুন। হার্ডওয়্যার এক্সিলারেশন ছাড়া, এমুলেটর ধীরে চলে, 1-2 সেকেন্ড পর্যন্ত অ্যানিমেশন বিলম্ব সহ।
Apple Silicon (M-সিরিজ) সহ macOS-এ, হার্ডওয়্যার এক্সিলারেশন Hypervisor.framework-এর মাধ্যমে নেটিভভাবে কাজ করে। Google (Android Emulator Release Notes 2025) অনুসারে, M2 Max-এ এমুলেটর মৌলিক অপারেশনে বাস্তব ডিভাইসের 95% কর্মক্ষমতা অর্জন করে।
এমুলেটর এবং বাস্তব ডিভাইসের মধ্যে পছন্দ ডেভেলপমেন্ট পর্যায়ের উপর নির্ভর করে। এমুলেটরে ডেভেলপ এবং ডিবাগ করা সুবিধাজনক: দ্রুত স্টার্টআপ, তাৎক্ষণিক ডিপ্লয়, সেন্সর সিমুলেশনের জন্য Extended Controls। বাস্তব ডিভাইসে — চূড়ান্ত কর্মক্ষমতা, ব্যাটারি এবং হার্ডওয়্যার পরীক্ষা।
| পরিস্থিতি | এমুলেটর | বাস্তব ডিভাইস |
|---|---|---|
| UI ডেভেলপমেন্ট | হ্যাঁ (দ্রুত) | না (ধীর ডিপ্লয়) |
| কর্মক্ষমতা পরীক্ষা | না (বর্ধিত মেট্রিক) | হ্যাঁ (বাস্তব মাপ) |
| সেন্সর এমুলেশন (GPS, NFC) | হ্যাঁ (Extended Controls) | সীমিত |
| শক্তি খরচ | সমর্থিত নয় | হ্যাঁ (Battery Historian) |
| নেটওয়ার্ক পরীক্ষা (2G/3G/4G/5G) | হ্যাঁ (গতি সিমুলেশন) | হ্যাঁ (SIM কার্ড সহ) |
| CI/CD অটোমেশন | হ্যাঁ (কোনো ফিজিক্যাল ডিভাইস নয়) | কঠিন (ডিভাইস ফার্ম) |
হার্ডওয়্যার এক্সিলারেশন সহ এমুলেটরের কর্মক্ষমতা প্রায়শই বাস্তব বাজেট ডিভাইসের চেয়ে বেশি হয়। তাই, লক্ষ্য কর্মক্ষমতা স্তরের বাস্তব ডিভাইসে চূড়ান্ত পরীক্ষা চালান।
Kotlin-এ রানটাইম পরিবেশ শনাক্ত করা ভুল কোড নিষ্ক্রিয় করতে বা ডিবাগ তথ্য যোগ করার জন্য উপযোগী। Android এই উদ্দেশ্যে Build.FINGERPRINT, Build.PRODUCT এবং Build.HARDWARE প্রদান করে।
object EmulatorDetector {
val isEmulator: Boolean
get() = Build.FINGERPRINT.startsWith("generic")
|| Build.FINGERPRINT.contains("emulator")
|| Build.HARDWARE == "ranchu"
|| Build.HARDWARE == "goldfish"
fun logEnvironment() {
if (isEmulator) {
Log.d("EmulatorDetector", "পরিবেশ: এমুলেটর")
}
}
}এমুলেটর ডিটেক্টর ব্যবহার ডিবাগিংয়ের সময় সাহায্য করে: এমুলেটরে আপনি বিস্তারিত লগ সক্রিয় করতে, অ্যানিমেশন নিষ্ক্রিয় করতে বা বাস্তব API কল মক দিয়ে প্রতিস্থাপন করতে পারেন। অ্যাপের ব্যবসায়িক যুক্তির জন্য প্রয়োজন না হলে প্রোডাকশন বিল্ডে চেক এড়িয়ে চলুন।
Android Emulator CI সার্ভারে স্বয়ংক্রিয় পরীক্ষার জন্য ব্যবহৃত হয়। পরীক্ষা চালানোর জন্য, AVD তৈরি করতে, এমুলেটর শুরু করতে এবং সিস্টেম সম্পূর্ণ লোড হওয়া পর্যন্ত অপেক্ষা করতে হবে। Gradle Managed Devices এই প্রক্রিয়া সহজ করে: AVD কনফিগারেশন build.gradle.kts-এ বর্ণিত হয়।
// build.gradle.kts — Gradle Managed Devices
android {
testOptions {
managedDevices {
devices {
register<ManagedVirtualDevice>("pixel9Api35") {
device = "Pixel 9"
apiLevel = 35
systemImageSource = "google"
}
}
}
}
}এমুলেটর ম্যানুয়ালি শুরু করতে কমান্ড লাইন ব্যবহার করুন: emulator -avd Pixel_9_API_35 -no-window -no-audio -gpu swiftshader_indirect। -no-window ফ্ল্যাগ সার্ভার পরিবেশের জন্য গ্রাফিক্যাল ইন্টারফেস নিষ্ক্রিয় করে, এবং -gpu swiftshader_indirect হোস্ট GPU ছাড়া সফটওয়্যার রেন্ডারিং প্রদান করে।
Android Emulator-এ Extended Controls নেটওয়ার্ক অবস্থা সিমুলেশনের জন্য শক্তিশালী টুল সরবরাহ করে: লেটেন্সি, ব্যান্ডউইথ এবং নেটওয়ার্ক টাইপ (GPRS, EDGE, 3G, 4G, 5G)। এটি খারাপ কভারেজ এলাকায় শারীরিকভাবে ভ্রমণ না করেই ধীর সংযোগে অ্যাপ আচরণ পরীক্ষা করার অনুমতি দেয়।
সেন্সর সিমুলেশন-এ ভার্চুয়াল 3D ডিভাইস মডেলের মাধ্যমে অ্যাক্সেলেরোমিটার, গাইরোস্কোপ এবং ম্যাগনেটোমিটার অন্তর্ভুক্ত। GPS-এর জন্য, আপনি রুট সহ GPX ফাইল লোড করতে পারেন — এমুলেটর স্থানাঙ্ক বরাবর গতি সিমুলেট করে, যা নেভিগেশন অ্যাপ পরীক্ষার জন্য গুরুত্বপূর্ণ। ক্যামেরা হোস্ট ওয়েবক্যাম বা ইমেজ লোডিংয়ের মাধ্যমে এমুলেট করা হয়।
Android Emulator-এ মাল্টি-ডিসপ্লে ট্যাবলেট এবং ফোল্ডেবল ডিভাইসের জন্য একাধিক স্ক্রিন সমর্থন করে। Extended Controls এমুলেটর পুনরায় শুরু না করেই ওরিয়েন্টেশন, স্ক্রিন সাইজ এবং পিক্সেল ঘনত্ব (DPI) পরিবর্তন করার অনুমতি দেয়। ফোল্ডেবল ডিভাইস পরীক্ষার জন্য, ভাঁজ করা এবং খোলা অবস্থার মধ্যে সুইচ করার Foldable মোড উপলব্ধ।
এমুলেটর শুধুমাত্র স্মার্টফোন নয়, Wear OS এবং Android TV-ও সমর্থন করে। Wear OS-এর জন্য, গোল এবং আয়তক্ষেত্রাকার AVD কনফিগারেশন, বেজেল রোটেশন সিমুলেশন এবং সোয়াইপ জেসচার, পাশাপাশি ফোন এমুলেটরের সাথে ইন্টারঅ্যাকশন পরীক্ষা উপলব্ধ। Android TV-এর জন্য D-pad নেভিগেশন সহ ইন্টারফেস ব্যবহার করা হয়। উভয় প্ল্যাটফর্ম হার্ডওয়্যার এক্সিলারেশন এবং Google Play Services সহ পরীক্ষা সমর্থন করে, যা স্মার্টওয়াচ এবং টিভি অ্যাপ ডেভেলপমেন্ট চক্রের জন্য গুরুত্বপূর্ণ।
সচরাচর জিজ্ঞাসিত প্রশ্ন
Android Emulator নির্দেশ অনুবাদ সহ QEMU-এর মাধ্যমে সম্পূর্ণ ARM এমুলেশন ব্যবহার করে, যেখানে iOS Simulator হোস্ট আর্কিটেকচারের জন্য কোড কম্পাইল করে। Android Emulator GPU, ক্যামেরা, সেন্সর, ব্লুটুথ, NFC সমর্থন করে — iOS Simulator এই বেশিরভাগ বৈশিষ্ট্য সমর্থন করে না।
Kotlin-এ, "generic" বা "emulator"-এর জন্য Build.FINGERPRINT এবং "ranchu" বা "goldfish"-এর জন্য Build.HARDWARE চেক করুন। অতিরিক্ত মার্কার হিসেবে Build.PRODUCT ব্যবহার করুন — এমুলেটরের জন্য এতে "sdk_google" বা "google_sdk" থাকে।
AMD প্রসেসরের জন্য Intel HAxM (Intel VT-x) বা Windows Hyper-V Platform (WHPX) সক্রিয় করুন। হার্ডওয়্যার এক্সিলারেশন সহ x86_64 সিস্টেম ইমেজ ব্যবহার করুন। AVD Manager-এ এমুলেটরকে কমপক্ষে 4 GB RAM বরাদ্দ করুন। Snapshot লোডিংয়ের জন্য Quick Boot সক্রিয় করুন।
হ্যাঁ, Android Emulator Android 10 (API 29) থেকে NFC এমুলেশন সমর্থন করে। Extended Controls → Phone → NFC NDEF বার্তা পাঠানোর অনুমতি দেয়। ট্যাগ রিড/রাইট, পিয়ার-টু-পিয়ার এবং HCE মোড সমর্থিত। সম্পূর্ণ পরীক্ষার জন্য NFC চিপ সহ বাস্তব ডিভাইস ব্যবহার করুন।
দৈনন্দিন ডেভেলপমেন্টের জন্য, Google APIs সহ x86_64 বেছে নিন — সর্বোচ্চ কর্মক্ষমতা এবং পরিষেবার সম্পূর্ণ সেট। সামঞ্জস্য পরীক্ষার জন্য ARM64 ইমেজ ব্যবহার করুন। CI-এর জন্য — Google Play Services ছাড়া ইমেজ, এগুলি আকারে ছোট এবং দ্রুত বুট হয়।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন