আপনার নিজস্ব কাস্টম অ্যান্ড্রয়েড সিস্টেম ইমেজ চালানোর জন্য আপনি Android ডিভাইসের অনুকরণ তৈরি করতে Android এমুলেটর ব্যবহার করতে পারেন। এছাড়াও, আপনি অ্যান্ড্রয়েড এমুলেটর এমুলেশনে মাল্টি-ডিসপ্লে সমর্থন যোগ করতে পারেন।
অ্যান্ড্রয়েড এমুলেটর আর্কিটেকচার
অ্যান্ড্রয়েড এমুলেটর Android ভার্চুয়াল ডিভাইস (AVD) নামে একটি ভার্চুয়াল মেশিনে অ্যান্ড্রয়েড অপারেটিং সিস্টেম চালায়। প্রতিটি AVD-এ সম্পূর্ণ অ্যান্ড্রয়েড সফ্টওয়্যার স্ট্যাক থাকে এবং এটি এমনভাবে চলে যেন এটি একটি শারীরিক ডিভাইসে ছিল। চিত্র 1 এন্ড্রয়েড এমুলেটরের উচ্চ-স্তরের আর্কিটেকচারকে চিত্রিত করে। এমুলেটর সম্পর্কে আরও তথ্যের জন্য, Android এমুলেটরে অ্যাপ চালান দেখুন।
চিত্র 1. অ্যান্ড্রয়েড এমুলেটর আর্কিটেকচার।
AVD ছবি তৈরি করুন
প্রতিটি AVD-এ একটি Android সিস্টেমের ছবি থাকে, যা সেই AVD-তে চলে। AVD ম্যানেজার কিছু সিস্টেম ইমেজ অন্তর্ভুক্ত করে। এবং আপনি আপনার সোর্স কোড থেকে কাস্টম AVD সিস্টেম ইমেজ তৈরি করতে পারেন এবং সেগুলি চালানোর জন্য ডিভাইস ইমুলেশন তৈরি করতে পারেন।
একটি AVD সিস্টেম ইমেজ তৈরি এবং চালানোর জন্য:
- অ্যান্ড্রয়েড উৎস ডাউনলোড করুন: - mkdir aosp-android-latest-release; cd aosp-android-latest-release- repo init -u- repo sync -j24
আপনি যদি অন্যান্য অ্যান্ড্রয়েড সংস্করণ তৈরি করতে চান, আপনি সর্বজনীন অ্যান্ড্রয়েড সংগ্রহস্থলে তাদের শাখার নাম খুঁজে পেতে পারেন। তারা Android কোডনেম, ট্যাগ এবং বিল্ড নম্বরে ম্যাপ করে।
- একটি AVD সিস্টেম ইমেজ তৈরি করুন। এটি একটি অ্যান্ড্রয়েড ডিভাইস সিস্টেম ইমেজ নির্মাণের মতো একই প্রক্রিয়া। উদাহরণস্বরূপ, একটি x86 64-বিট AVD তৈরি করতে: - source ./build/envsetup.sh- lunch sdk_phone_x86_64- make -j32
- অ্যান্ড্রয়েড এমুলেটরে AVD সিস্টেম ইমেজ চালান: - emulator
এমুলেটর চালানোর বিষয়ে আরও বিস্তারিত জানার জন্য কমান্ড-লাইন স্টার্টআপ বিকল্পগুলি দেখুন। চিত্র 2 একটি AVD চালানোর Android এমুলেটরের একটি উদাহরণ দেখায়:
চিত্র 2। অ্যান্ড্রয়েড এমুলেটর একটি AVD চালাচ্ছে।
Android স্টুডিওর সাথে অন্যদের ব্যবহার করার জন্য AVD সিস্টেমের ছবি শেয়ার করুন
অন্যদের সাথে আপনার AVD সিস্টেমের ছবি শেয়ার করতে এই নির্দেশাবলী অনুসরণ করুন। তারা অ্যাপ্লিকেশানগুলি বিকাশ এবং পরীক্ষা করতে Android স্টুডিওর সাথে আপনার AVD সিস্টেম চিত্রগুলি ব্যবহার করতে পারে৷
- অতিরিক্ত - sdkএবং- sdk_repoপ্যাকেজ তৈরি করুন:- Android 13 এবং উচ্চতর জন্য, - emu_img_zipকমান্ড ব্যবহার করুন:- $ make emu_img_zip- এটি একটি - sdk-repo-linux-system-images-eng.[username]].zipফাইল তৈরি করে।- অ্যান্ড্রয়েড 12 এবং তার নিচের জন্য, - sdk_repoকমান্ডটি ব্যবহার করুন:- $ make -j32 sdk sdk_repo- make sdk sdk_repoকমান্ডটি- aosp-android-latest-release/out/host/linux-x86/sdk/sdk_phone_x86অধীনে দুটি ফাইল তৈরি করে :-  sdk-repo-linux-system-images-eng.[username].zip
-  repo-sys-img.xml
 
-  
- ফাইলটি হোস্ট করুন - sdk-repo-linux-system-images-eng.[username].zip।
- অ্যান্ড্রয়েড 12 এবং তার নিচের জন্য, সেই অনুযায়ী - repo-sys-img.xmlসম্পাদনা করুন:-  আপনার AVD সিস্টেম ইমেজ ইউআরএলে <sdk:url>আপডেট করুন।
- ফাইলের অন্যান্য আপডেট সম্পর্কে জানতে sdk-sys-img-03.xsd দেখুন।
-  আপনার ব্যবহারকারীদের কাছে অ্যাক্সেসযোগ্য কোথাও repo-sys-img.xmlহোস্ট করুন এবং কাস্টম আপডেট সাইট URL হিসাবে ব্যবহার করার জন্য এর URL পান।
 
-  আপনার AVD সিস্টেম ইমেজ ইউআরএলে 
একটি কাস্টম AVD ছবি ব্যবহার করতে, SDK ম্যানেজারে নিম্নলিখিতগুলি করুন:
- একটি SDK আপডেট সাইট হিসাবে কাস্টম আপডেট সাইট URL যোগ করুন। - এটি সিস্টেম ইমেজ পৃষ্ঠায় আপনার কাস্টম AVD সিস্টেম ইমেজ যোগ করে। 
- কাস্টম AVD সিস্টেম ইমেজ ডাউনলোড এবং নির্বাচন করে একটি AVD তৈরি করুন । 
মাল্টি-ডিসপ্লে সমর্থন যোগ করুন
Android 10 অটো এবং ডেস্কটপ মোডের মতো আরও ব্যবহারের ক্ষেত্রে আরও ভালভাবে সমর্থন করার জন্য মাল্টি-ডিসপ্লে উন্নত করে । অ্যান্ড্রয়েড এমুলেটর মাল্টি-ডিসপ্লে এমুলেশন সমর্থন করে। তাই আপনি প্রকৃত হার্ডওয়্যার সেট আপ না করে একটি নির্দিষ্ট মাল্টি-ডিসপ্লে পরিবেশ তৈরি করতে পারেন।
আপনি নিম্নলিখিত পরিবর্তনগুলি করে বা এই CL থেকে চেরি বাছাই করে একটি AVD-তে মাল্টি-ডিসপ্লে সমর্থন যোগ করতে পারেন।
- ফাইল - build/target/product/sdk_phone_x86.mkএ এই লাইনগুলি যোগ করে বিল্ডে মাল্টি-ডিসপ্লে প্রদানকারী যোগ করুন :- PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST := \ system/lib/libemulator_multidisplay_jni.so \ system/lib64/libemulator_multidisplay_jni.so \ system/priv-app/MultiDisplayProvider/MultiDisplayProvider.apk \ PRODUCT_PACKAGES += MultiDisplayProvider
- device/generic/goldfish/data/etc/advancedFeatures.iniফাইলে এই লাইনটি যোগ করে মাল্টি-ডিসপ্লে বৈশিষ্ট্য পতাকা সক্ষম করুন :- MultiDisplay = on
আপনি সর্বশেষ এমুলেটর বৈশিষ্ট্যগুলি খুঁজে পেতে পারেন এবং নিম্নলিখিত উত্সগুলি থেকে তথ্য প্রকাশ করতে পারেন: