প্রতিটি চলমান ভার্চুয়াল ডিভাইস একটি কনসোল প্রদান করে, যা আপনাকে অনুকৃত ডিভাইসের পরিবেশ সম্পর্কে জানতে ও তা নিয়ন্ত্রণ করতে দেয়। উদাহরণস্বরূপ, আপনার অ্যাপটি এমুলেটরে চলার সময় আপনি কনসোলটি ব্যবহার করে পোর্ট রিডাইরেকশন, নেটওয়ার্কের বৈশিষ্ট্য এবং টেলিফোনি ইভেন্টগুলো পরিচালনা করতে পারেন।
নিম্নলিখিত কমান্ডগুলো চালানোর জন্য আপনার একটি এমুলেটর আগে থেকেই চালু থাকা প্রয়োজন। এমুলেটর চালানো সম্পর্কে আরও তথ্যের জন্য, ‘অ্যান্ড্রয়েড এমুলেটরে অ্যাপ চালান’ এবং ‘কমান্ড লাইন থেকে এমুলেটর চালু করুন’ দেখুন।
একটি কনসোল সেশন শুরু এবং বন্ধ করুন
কনসোল অ্যাক্সেস করতে এবং টার্মিনাল উইন্ডো থেকে কমান্ড দিতে, টেলনেট ব্যবহার করে কনসোল পোর্টে সংযোগ করুন এবং আপনার অথেনটিকেশন টোকেন প্রদান করুন। প্রতিবার যখন কনসোলে OK প্রদর্শিত হয়, তার মানে এটি কমান্ড গ্রহণ করার জন্য প্রস্তুত। এখানে কোনো সাধারণ প্রম্পট নেই।
চলমান ভার্চুয়াল ডিভাইসের কনসোলে সংযোগ করতে:
একটি টার্মিনাল উইন্ডো খুলুন এবং নিম্নলিখিত কমান্ডটি প্রবেশ করান:
telnet localhost console-portএমুলেটর উইন্ডোর শিরোনামে কনসোল পোর্ট নম্বরটি উল্লেখ করা থাকে যখন এটি একটি আলাদা উইন্ডোতে চলে, কিন্তু টুল উইন্ডোতে চলার সময় তা থাকে না। উদাহরণস্বরূপ, ৫৫৫৪ কনসোল পোর্ট ব্যবহারকারী একটি এমুলেটরের উইন্ডোর শিরোনাম হতে পারে Pixel8_API_34:5554। এছাড়াও,
adb devicesকমান্ডটি চলমান ভার্চুয়াল ডিভাইস এবং তাদের কনসোল পোর্ট নম্বরের একটি তালিকা প্রিন্ট করে। আরও তথ্যের জন্য, Query for devices দেখুন।দ্রষ্টব্য: এমুলেটরটি ৫৫৫৪ থেকে ৫৫৮৫ পোর্টে সংযোগের জন্য অপেক্ষা করে এবং শুধুমাত্র লোকালহোস্ট থেকে সংযোগ গ্রহণ করে।
কনসোলে OK প্রদর্শিত হওয়ার পর,
auth auth_tokenকমান্ডটি প্রবেশ করান।কনসোল কমান্ড দেওয়ার আগে, এমুলেটর কনসোলে প্রমাণীকরণের প্রয়োজন হয়।
auth_tokenঅবশ্যই আপনার হোম ডিরেক্টরিতে থাকা.emulator_console_auth_tokenফাইলের তথ্যের সাথে মিলতে হবে।যদি সেই ফাইলটি বিদ্যমান না থাকে, তাহলে
telnet localhost console-portকমান্ডটি ফাইলটি তৈরি করে, যেটিতে এলোমেলোভাবে তৈরি একটি অথেনটিকেশন টোকেন থাকে। অথেনটিকেশন নিষ্ক্রিয় করতে,.emulator_console_auth_tokenফাইল থেকে টোকেনটি মুছে ফেলুন অথবা ফাইলটি বিদ্যমান না থাকলে একটি খালি ফাইল তৈরি করুন।কনসোলে সংযুক্ত হওয়ার পর, কনসোল কমান্ডগুলো লিখুন।
কনসোল কমান্ডের তালিকা দেখতে এবং নির্দিষ্ট কমান্ড সম্পর্কে জানতে
help,help commandবাhelp-verboseলিখুন।কনসোল সেশন থেকে বের হতে
quitবাexitলিখুন।
এখানে একটি সেশনের উদাহরণ দেওয়া হলো:
$ telnet localhost 5554
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Android Console: Authentication required
Android Console: type 'auth <auth_token>' to authenticate
Android Console: you can find your <auth_token> in
'/Users/me/.emulator_console_auth_token'
OK
auth 123456789ABCdefZ
Android Console: type 'help' for a list of commands
OK
help-verbose
Android console command help:
help|h|? Prints a list of commands
help-verbose Prints a list of commands with descriptions
ping Checks if the emulator is alive
automation Manages emulator automation
event Simulates hardware events
geo Geo-location commands
gsm GSM related commands
cdma CDMA related commands
crash Crashes the emulator instance
crash-on-exit Simulates crash on exit for the emulator instance
kill Terminates the emulator instance
restart Restarts the emulator instance
network Manages network settings (ethernet and cellular only)
power Power related commands
quit|exit Quits control session
redir Manages port redirections
sms SMS related commands
avd Controls virtual device execution
qemu QEMU-specific commands
sensor Manages emulator sensors
physics Manages physical model
finger Manages emulator finger print
debug Controls the emulator debug output tags
rotate Rotates the screen clockwise by 90 degrees
screenrecord Records the emulator's display
fold Folds the device
unfold Unfolds the device
multidisplay Configures the multi-display
nodraw turn on/off NoDraw mode. (experimental)
resize-display resize the display resolution to the preset size
virtualscene-image customize virtualscene image for virtulscene camera
proxy manage network proxy server settings
phonenumber set phone number for the device
try 'help <command>' for command-specific help
OK
exit
Connection closed by foreign host.
ফায়ার-এন্ড-ফরগেট কমান্ড
যদি সেশনটি খোলা রাখার প্রয়োজন না হয়, তাহলে adb emu শর্টকাটটি ব্যবহার করুন, যা কমান্ডটি কার্যকর করে এবং সাথে সাথেই নিয়ন্ত্রণটি আহ্বানকারী শেলে ফিরিয়ে দেয়:
adb emu command commandParameter
adb emu দিয়ে কমান্ড চালালে উপলব্ধ এমুলেটরের সাথে সংযোগ স্থাপন হয়। যদি একই সময়ে একাধিক এমুলেটর চালু থাকে, তবে আপনাকে অবশ্যই নির্দিষ্ট এমুলেটরটির সিরিয়াল নম্বর দিতে হবে।
adb -s emulator-serial emu command commandParameter
এমুলেটর কমান্ড রেফারেন্স
নিম্নলিখিত তালিকাগুলিতে এমুলেটর কনসোল কমান্ড, তাদের প্যারামিটার এবং মান বর্ণনা করা হয়েছে:
সাধারণ আদেশ
avd {stop| start| status| name}নিম্নলিখিতভাবে ভার্চুয়াল ডিভাইসটিকে কোয়েরি, নিয়ন্ত্রণ এবং পরিচালনা করে:- stop : ডিভাইসটির কার্যক্রম বন্ধ করে দেয়।
- start : ডিভাইসটির কার্যক্রম শুরু করে।
- অবস্থা : ভার্চুয়াল ডিভাইসের অবস্থা জানতে চায়, যা চলমান বা বন্ধ থাকতে পারে।
- name : ভার্চুয়াল ডিভাইসের নাম জানতে চায়।
avd snapshot {list| save name| load name| delete name}ডিভাইসের অবস্থা নিম্নলিখিতভাবে স্ন্যাপশটে সংরক্ষণ ও পুনরুদ্ধার করে:- তালিকা : সংরক্ষিত সকল স্ন্যাপশটের তালিকা দেখায়।
- নাম সংরক্ষণ করুন : স্ন্যাপশটটি একটি নাম হিসাবে সংরক্ষণ করে।
- লোড নেম : নির্দিষ্ট নামের স্ন্যাপশটটি লোড করে।
- delete name : নির্দিষ্ট নামের স্ন্যাপশটটি মুছে দেয়।
নিম্নলিখিত উদাহরণটি
firstactivitysnapshotনামে একটি স্ন্যাপশট সংরক্ষণ করে:avd snapshot save firstactivitysnapshotফোল্ড : ডিভাইসটি ভাঁজযোগ্য এবং বর্তমানে খোলা অবস্থায় থাকলে, এটিকে ভাঁজ করে এর ছোট স্ক্রিন কনফিগারেশনটি প্রদর্শন করে।
আনফোল্ড : ডিভাইসটি ভাঁজযোগ্য এবং বর্তমানে ভাঁজ করা অবস্থায় থাকলে, এটি খুলে এর বড় স্ক্রিনটি প্রদর্শন করে।
kill : ভার্চুয়াল ডিভাইসটি বন্ধ করে দেয়।
পিং : ভার্চুয়াল ডিভাইসটি চালু আছে কিনা তা যাচাই করে।
ঘোরানো : AVD-কে ঘড়ির কাঁটার বিপরীত দিকে ৪৫ ডিগ্রি ধাপে ঘোরায়।
এমুলেটরটি ক্র্যাশ করুন
ক্র্যাশ : অ্যাপ চলার সময় এমুলেটরটি ক্র্যাশ করে।
প্রস্থানের সময় ক্র্যাশ : অ্যাপটি বন্ধ করার সময় এমুলেটরটি ক্র্যাশ করে।
ডিবাগ ট্যাগ
ডিবাগ ট্যাগ ... : এমুলেটরের নির্দিষ্ট অংশ থেকে ডিবাগ বার্তা চালু বা বন্ধ করে। `tags` প্যারামিটারটির মান অবশ্যই
emulator -help-debug-tagsচালানোর পর প্রদর্শিত ডিবাগ ট্যাগের তালিকা থেকে নিতে হবে।-help-debug-tagsঅপশনটি সম্পর্কে আরও তথ্যের জন্য, সাধারণভাবে ব্যবহৃত অপশনগুলোর সারণী দেখুন। নিম্নলিখিত উদাহরণটি রেডিও ট্যাগটি চালু করে:debug radio
পোর্ট পুনঃনির্দেশনা
রিডির লিস্ট : বর্তমান পোর্ট রিডিরেকশনের তালিকা দেখায়।
redir add protocol:host-port:guest-portনিম্নলিখিতভাবে একটি নতুন পোর্ট রিডাইরেকশন যোগ করে:- প্রোটোকল : অবশ্যই টিসিপি অথবা ইউডিপি হতে হবে।
- হোস্ট-পোর্ট : হোস্টে খোলার জন্য পোর্ট নম্বর।
- গেস্ট-পোর্ট : এমুলেটরে ডেটা রাউট করার জন্য পোর্ট নম্বর।
redir del protocol:host-portএকটি পোর্ট রিডাইরেকশন মুছে ফেলে।- প্রোটোকল : অবশ্যই টিসিপি অথবা ইউডিপি হতে হবে।
- হোস্ট-পোর্ট : হোস্টে খোলার জন্য পোর্ট নম্বর।
ভৌগোলিক অবস্থান
এমুলেটরে একটি জিপিএস ফিক্স পাঠানোর মাধ্যমে, এমুলেটরের ভেতরে চলমান অ্যাপগুলোতে জ্ঞাত ভৌগোলিক অবস্থান নির্ধারণ করা হয়।
একটি ভার্চুয়াল ডিভাইস চালু হওয়ার সাথে সাথেই আপনি নিম্নলিখিত জিও কমান্ডগুলির মধ্যে একটি জারি করতে পারেন। এমুলেটর একটি মক লোকেশন প্রোভাইডার তৈরি করে আপনার প্রবেশ করানো অবস্থানটি সেট করে। এই প্রোভাইডারটি অ্যাপ দ্বারা সেট করা লোকেশন লিসেনারগুলিতে সাড়া দেয় এবং লোকেশনম্যানেজারকে অবস্থানটি সরবরাহ করে। যেকোনো অ্যাপ LocationManager.getLastKnownLocation("gps") কল করে এমুলেটেড ডিভাইসটির বর্তমান GPS ফিক্স পেতে লোকেশন ম্যানেজারকে কোয়েরি করতে পারে।
geo fix longitude latitude [altitude] [satellites] [velocity] : এমুলেটরে একটি সাধারণ GPS ফিক্স পাঠায়। দ্রাঘিমাংশ এবং অক্ষাংশ দশমিক ডিগ্রিতে উল্লেখ করুন। অবস্থান নির্ধারণের জন্য ব্যবহৃত স্যাটেলাইটের সংখ্যা নির্দিষ্ট করতে ১ থেকে ১২ পর্যন্ত একটি সংখ্যা ব্যবহার করুন এবং উচ্চতা মিটারে ও বেগ নটে উল্লেখ করুন।
geo nmea sentence : একটি NMEA 0183 সেন্টেন্সকে এমুলেটেড ডিভাইসে এমনভাবে পাঠায়, যেন এটি একটি এমুলেটেড GPS মডেম থেকে পাঠানো হয়েছে। সেন্টেন্সটি '$GP' দিয়ে শুরু করুন। বর্তমানে শুধুমাত্র '$GPGGA' এবং '$GPRCM' সেন্টেন্স সমর্থিত। নিচের উদাহরণটি একটি GPGGA (গ্লোবাল পজিশনিং সিস্টেম ফিক্স ডেটা) সেন্টেন্স, যা একটি GPS রিসিভারের জন্য সময়, অবস্থান এবং ফিক্স ডেটা সংগ্রহ করে:
geo nmea $GPGGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx
নকল হার্ডওয়্যার ইভেন্ট
এমুলেটর কনসোলের হার্ডওয়্যার ইভেন্ট সাবসিস্টেম আপনাকে ডিভাইসটির সাথে কার্যত যেকোনো ভৌত মিথস্ক্রিয়া অনুকরণ করতে দেয়। এর মধ্যে রয়েছে ভৌত বোতাম, স্ক্রিন টাচ/জেসচার, রোটারি ডায়াল, জয়স্টিক ইনপুট এবং হার্ডওয়্যার সুইচ।
ইভেন্টের প্রকারভেদ : সমস্ত নকল ইভেন্টের প্রকারভেদ তালিকাভুক্ত করে। যেসব ইভেন্টের কোড আছে, সেগুলোর কোডের সংখ্যা ডানদিকে বন্ধনীর মধ্যে তালিকাভুক্ত করা হয়। উদাহরণ আউটপুট:
event types event <type> can be an integer or one of the following aliases: EV_SYN EV_KEY (405 code aliases) EV_REL (2 code aliases) EV_ABS (27 code aliases) EV_MSC EV_SW (4 code aliases) EV_LED EV_SND EV_REP EV_FF EV_PWR EV_FF_STATUS EV_MAX OKইভেন্ট প্রেরণের প্রকারভেদ [types ...] : এক বা একাধিক নকল ইভেন্টের প্রকারভেদ প্রেরণ করে।
ইভেন্ট কোডের প্রকার : নির্দিষ্ট নকল ইভেন্ট প্রকারের জন্য ইভেন্ট কোডগুলো তালিকাভুক্ত করে।
ইভেন্ট পাঠানোর ধরণ[:কোড]:[মান] [...] : ঐচ্ছিক কোড এবং কোডের মান সহ এক বা একাধিক নকল ইভেন্ট পাঠায়।
EV_KEY — কী কোড রেফারেন্স
EV_KEY ইভেন্ট টাইপটি বাটন চাপা এবং ছাড়ার অনুকরণ করতে ব্যবহৃত হয়। নিম্নলিখিত সারণিগুলো সমর্থিত কী কোডগুলোর বিশাল তালিকাটিকে যৌক্তিক শ্রেণীতে বিভক্ত করে। প্রতিটি কী কোডের জন্য, 1 মান প্রেরণ করলে চাপা এবং 0 মান প্রেরণ করলে ছাড়ার অনুকরণ হয়। 2 মানটি কী-এর পুনরাবৃত্তি বোঝায়।
উপ-সারণী A: অ্যান্ড্রয়েড সিস্টেম কী
| কোড | বর্ণনা |
|---|---|
KEY_HOME | হোম বোতাম ট্রিগার |
KEY_BACK | ব্যাক বাটন ট্রিগার |
KEY_MENU | মেনু (ওভারফ্লো) বোতাম |
KEY_POWER | পাওয়ার বাটন (একবার চাপুন/দীর্ঘক্ষণ চাপুন) |
KEY_VOLUMEUP | ভলিউম আপ বোতাম ট্রিগার |
KEY_VOLUMEDOWN | ভলিউম ডাউন বোতাম ট্রিগার |
KEY_CAMERA | ক্যামেরার ফিজিক্যাল শাটার বাটন |
KEY_FOCUS | ক্যামেরার অটো-ফোকাস শাটার |
KEY_SEARCH | অনুসন্ধান বোতাম ট্রিগার |
KEY_SLEEP | স্লিপ কমান্ড ট্রিগার |
KEY_WAKEUP | ওয়েক আপ কমান্ড ট্রিগার |
KEY_NOTIFICATION | বিজ্ঞপ্তি ড্রয়ার খুলুন |
KEY_MUTE | সিস্টেমের অডিও আউটপুট মিউট করুন |
KEY_MICMUTE | মাইক্রোফোন ইনপুট মিউট করুন |
KEY_BRIGHTNESSDOWN | ডিসপ্লের উজ্জ্বলতা কমান |
KEY_BRIGHTNESSUP | ডিসপ্লের উজ্জ্বলতা বাড়ান |
KEY_PHONE | ডিফল্ট ডায়ালার অ্যাপ খুলুন |
KEY_SEND | ফোন কল পাঠান বা শুরু করুন |
KEY_HEADSETHOOK | হেডসেট হুক (উত্তর দেওয়া/কল কেটে দেওয়া) |
KEY_SCREEN | স্ক্রিনসেভার সক্রিয় কমান্ড |
KEY_CONFIG | কনফিগারেশন সিস্টেম মেনু |
KEY_SWITCHVIDEOMODE | সিস্টেম ভিডিও মোড পরিবর্তন করুন |
KEY_KBDILLUMTOGGLE | কিবোর্ডের ব্যাকলাইট টগল করুন |
উপ-সারণী B: মিডিয়া ও প্লেব্যাক নিয়ন্ত্রণ
| কোড | বর্ণনা |
|---|---|
KEY_PLAYPAUSE | প্লে এবং পজ অবস্থা টগল করুন |
KEY_PLAY | মিডিয়া প্লেব্যাক শুরু করুন |
KEY_PAUSECD | সিডি প্লেব্যাক থামান |
KEY_STOPCD | সিডি প্লেব্যাক বন্ধ করুন |
KEY_NEXTSONG | পরবর্তী ট্র্যাকে যান |
KEY_PREVIOUSSONG | আগের ট্র্যাকে যান |
KEY_REWIND | সক্রিয় ট্র্যাকটি রিওয়াইন্ড করুন |
KEY_FASTFORWARD | ফাস্ট-ফরোয়ার্ড সক্রিয় ট্র্যাক |
KEY_RECORD | রেকর্ড ট্রিগার কমান্ড |
KEY_SHUFFLE | শাফেল প্লেব্যাক টগল করুন |
KEY_REPEAT | পুনরাবৃত্তি প্লেব্যাক টগল করুন |
KEY_MEDIA | মিডিয়া কী ট্রিগার |
উপ-সারণী C: নেভিগেশন এবং সাধারণ কীবোর্ড
| কোড | বর্ণনা |
|---|---|
KEY_UP | ডি-প্যাড উপরের দিকে |
KEY_DOWN | ডি-প্যাড নিচের দিকে |
KEY_LEFT | ডি-প্যাড বাম দিক |
KEY_RIGHT | ডি-প্যাড ডান দিক |
KEY_PAGEUP | পৃষ্ঠা আপ নেভিগেশন |
KEY_PAGEDOWN | পৃষ্ঠা ডাউন নেভিগেশন |
KEY_INSERT | কী ট্রিগার প্রবেশ করান |
KEY_DELETE | ডিলিট কী ট্রিগার |
KEY_ENTER | কী ট্রিগার প্রবেশ করান |
KEY_ESC | এস্কেপ কী ট্রিগার |
KEY_TAB | ট্যাব কী ট্রিগার |
KEY_SPACE | স্পেসবার কী ট্রিগার |
KEY_BACKSPACE | ব্যাকস্পেস কী ট্রিগার |
KEY_CLEAR | ইনপুট বাফার পরিষ্কার করুন |
KEY_CANCEL | সক্রিয় পদক্ষেপ বাতিল করুন |
KEY_OK | নির্বাচন নিশ্চিত করুন/ঠিক আছে |
KEY_SELECT | আইটেম নির্বাচন ট্রিগার |
KEY_GOTO | নির্ধারিত স্থানে যান |
KEY_HELP | সাহায্যের প্রসঙ্গ অ্যাক্সেস করুন |
উপ-সারণী D: আলফানিউমেরিক এবং কীপ্যাড প্রতীক
- সাধারণ বর্ণমালার অক্ষরসমূহ:
KEY_AথেকেKEY_Z(২৬টি কোড)। - সংখ্যাসূচক কীপ্যাড কীগুলো:
KEY_1থেকেKEY_0(১০টি কোড)।
| কোড | অক্ষর প্রতীক |
|---|---|
KEY_COMMA | , |
KEY_DOT | . |
KEY_SLASH | / |
KEY_SEMICOLON | ; |
KEY_APOSTROPHE | ' |
KEY_GRAVE | \` |
KEY_MINUS | - |
KEY_EQUAL | = |
KEY_LEFTBRACE | [ |
KEY_RIGHTBRACE | ] |
KEY_BACKSLASH | \ |
KEY_KPASTERISK | * (সংখ্যাসূচক কীপ্যাড) |
KEY_KPPLUS | + (সংখ্যাসূচক কীপ্যাড) |
KEY_KPMINUS | - (সংখ্যাসূচক কীপ্যাড) |
KEY_KPDOT | . নিউমেরিক কীপ্যাড) |
KEY_KPSLASH | / (সংখ্যাসূচক কীপ্যাড) |
KEY_KPENTER | এন্টার (নিউমেরিক কীপ্যাড) |
KEY_KPEQUAL | = (সংখ্যাসূচক কীপ্যাড) |
KEY_KPCOMMA | , (নিউমেরিক কীপ্যাড) |
KEY_KPJPCOMMA | , (জাপানি বিন্যাস) |
KEY_KPLEFTPAREN | ( (সংখ্যাসূচক কীপ্যাড) |
KEY_KPRIGHTPAREN | ) নিউমেরিক কীপ্যাড) |
KEY_KPPLUSMINUS | ± (নিউমেরিক কীপ্যাড) |
উপ-সারণী E: মডিফায়ার ও ফাংশন কী
- সাধারণ ফাংশন কীসমূহ:
KEY_F1থেকেKEY_F24(২৪টি কোড)।
| কোড | বর্ণনা |
|---|---|
KEY_LEFTSHIFT | লেফট শিফট কীবোর্ড মডিফায়ার |
KEY_RIGHTSHIFT | রাইট শিফট কীবোর্ড মডিফায়ার |
KEY_LEFTCTRL | বাম নিয়ন্ত্রণ কীবোর্ড মডিফায়ার |
KEY_RIGHTCTRL | ডান নিয়ন্ত্রণ কীবোর্ড মডিফায়ার |
KEY_LEFTALT | বাম Alt কীবোর্ড মডিফায়ার |
KEY_RIGHTALT | ডান Alt কীবোর্ড মডিফায়ার |
KEY_LEFTMETA | বাম মেটা/কমান্ড কী |
KEY_RIGHTMETA | ডান মেটা/কমান্ড কী |
KEY_CAPSLOCK | ক্যাপস লক কিবোর্ড টগল |
KEY_NUMLOCK | নাম লক কীবোর্ড টগল |
KEY_SCROLLLOCK | স্ক্রোল লক কীবোর্ড টগল |
KEY_COMPOSE | কম্পোজ ক্যারেক্টার হেল্পার |
KEY_FN | ফিজিক্যাল কীবোর্ডের FN কী |
KEY_FN_ESC | ফাংশন কী সংমিশ্রণ |
KEY_FN_1 | বিশেষ ফাংশন শর্টকাট ১ |
KEY_FN_2 | বিশেষ ফাংশন শর্টকাট ২ |
KEY_FN_D | বিশেষ ফাংশন শর্টকাট D |
KEY_FN_E | বিশেষ ফাংশন শর্টকাট E |
KEY_FN_F | বিশেষ ফাংশন শর্টকাট F |
KEY_FN_S | বিশেষ ফাংশন শর্টকাট S |
KEY_FN_B | বিশেষ ফাংশন শর্টকাট B |
উপ-সারণী F: গেমপ্যাড এবং জয়স্টিক
| কোড | বর্ণনা |
|---|---|
BTN_A / BTN_B / BTN_C | কন্ট্রোলারের সামনের বোতাম A/B/C |
BTN_X / BTN_Y / BTN_Z | কন্ট্রোলারের ফেস বাটন X/Y/Z |
BTN_START | গেমপ্যাড স্টার্ট মেনু বোতাম |
BTN_SELECT | গেমপ্যাড সিলেক্ট বোতাম |
BTN_MODE | কন্ট্রোলার মোড সুইচ |
BTN_TL / BTN_TR | বাম / ডান কাঁধের বাম্পার |
BTN_TL2 / BTN_TR2 | বাম / ডান অ্যানালগ ট্রিগার |
BTN_THUMBL / BTN_THUMBR | বাম / ডান স্টিক ক্লিক |
BTN_DPAD_UP | গেমপ্যাড ডি-প্যাড আপ ট্রিগার |
BTN_DPAD_DOWN | গেমপ্যাড ডি-প্যাড ডাউন ট্রিগার |
BTN_DPAD_LEFT | গেমপ্যাড ডি-প্যাড বাম ট্রিগার |
BTN_DPAD_RIGHT | গেমপ্যাড ডি-প্যাড ডান ট্রিগার |
BTN_THUMB | জয়স্টিকের প্রাথমিক থাম্ব ট্রিগার |
BTN_TOP / BTN_TOP2 | জয়স্টিকের উপরের বোতামগুলি |
BTN_PINKIE | জয়স্টিকের কনিষ্ঠা আঙুলের বোতাম ট্রিগার |
BTN_BASE থেকে _BASE6 | জয়স্টিক প্ল্যাটফর্মের বেস বোতামগুলি |
BTN_DEAD | নিষ্ক্রিয় গেমপ্যাড ডেডজোন ফ্ল্যাগ |
BTN_TRIGGER | ফিজিক্যাল জয়স্টিক হ্যান্ড ট্রিগার |
BTN_JOYSTICK | জেনেরিক জয়স্টিক ইনপুট কোড |
উপ-সারণী G: মাউস, টাচ ও স্টাইলাস ইনপুট
| কোড | বর্ণনা |
|---|---|
BTN_MOUSE | জেনেরিক মাউস পয়েন্টার ইভেন্ট |
BTN_LEFT | বাম মাউস বোতাম ক্লিক |
BTN_RIGHT | ডান মাউস বোতামে ক্লিক |
BTN_MIDDLE | মাঝের স্ক্রোল হুইল ক্লিক |
BTN_SIDE | নেভিগেশন সাইড কী ট্রিগার |
BTN_EXTRA | অতিরিক্ত মাউস বোতাম ট্রিগার |
BTN_FORWARD | ব্রাউজার নেভিগেশনে সামনে যেতে ক্লিক করুন |
BTN_BACK | ব্রাউজার নেভিগেশনে ফিরে যেতে ক্লিক করুন |
BTN_TASK | সিস্টেম টাস্ক সুইচার কী |
BTN_TOUCH | স্ক্রিনের সাথে শারীরিক সংস্পর্শ শনাক্ত করা হয়েছে |
BTN_STYLUS | সক্রিয় স্টাইলাস পেনের নৈকট্য |
BTN_STYLUS2 | স্টাইলাসে সেকেন্ডারি ব্যারেল সুইচ |
BTN_TOOL_PEN | স্টাইলাস পেন টুল শনাক্তকারী |
BTN_TOOL_RUBBER | স্টাইলাস ইরেজার টুল শনাক্তকারী |
BTN_TOOL_BRUSH | পেইন্টার ব্রাশ টুল শনাক্তকারী |
BTN_TOOL_PENCIL | ড্রাফটিং পেন্সিল টুল শনাক্তকারী |
BTN_TOOL_AIRBRUSH | এয়ারব্রাশ পেইন্ট টুল শনাক্তকারী |
BTN_TOOL_FINGER | টাচ স্ক্রিন আঙুলের স্পর্শ |
BTN_TOOL_MOUSE | বাহ্যিক মাউস টুল শনাক্তকারী |
BTN_TOOL_LENS | অপটিক্যাল বিবর্ধক লেন্স টুল |
BTN_TOOL_DOUBLETAP | অঙ্গভঙ্গি ডাবল-ট্যাপ গতি ফ্ল্যাগ |
BTN_TOOL_TRIPLETAP | অঙ্গভঙ্গি ট্রিপল-ট্যাপ গতি ফ্ল্যাগ |
উপ-সারণী H: অ্যাপ্লিকেশন শর্টকাট
| কোড | লক্ষ্য কর্ম |
|---|---|
KEY_WWW | ডিফল্ট ওয়েব ব্রাউজার চালু করে |
KEY_MAIL | ডিফল্ট ইমেল ক্লায়েন্ট খোলে |
KEY_BOOKMARKS | ব্রাউজারের বুকমার্ক তালিকা খোলে |
KEY_CALC | ক্যালকুলেটর ইউটিলিটি খোলে |
KEY_FILE | স্থানীয় ফাইল এক্সপ্লোরার খোলে |
KEY_EDIT | ডকুমেন্ট সম্পাদনা ট্রিগার |
KEY_NEW | ডকুমেন্ট নতুন ট্রিগার তৈরি করুন |
KEY_OPEN | ডকুমেন্ট খোলার ট্রিগার |
KEY_SAVE | ফাইল সংরক্ষণ টাস্ক ট্রিগার |
KEY_CLOSE | ফাইল বন্ধ করার টাস্ক ট্রিগার |
KEY_PRINT | ফাইল প্রিন্ট টাস্ক ট্রিগার |
KEY_COPY | ক্লিপবোর্ড বাফার কপি অ্যাকশন |
KEY_PASTE | ক্লিপবোর্ড বাফারে সন্নিবেশ ক্রিয়া |
KEY_CUT | ক্লিপবোর্ড বাফার কাট অ্যাকশন |
KEY_UNDO | ক্লিপবোর্ড বাফার আনডু অ্যাকশন |
KEY_REDO | ক্লিপবোর্ড বাফার রিডু অ্যাকশন |
KEY_CANCEL | বাফার বাতিল প্রক্রিয়া ট্রিগার |
KEY_FIND | ডকুমেন্ট অনুসন্ধান ইউটিলিটি |
KEY_REFRESH | ডকুমেন্ট রিফ্রেশ ইউটিলিটি |
KEY_EXIT | ডকুমেন্ট বন্ধ করার ইউটিলিটি |
KEY_DOCUMENTS | সিস্টেম ডকুমেন্ট পোর্টাল চালু করে |
KEY_HOMEPAGE | হোমপেজ ব্রাউজার চালু করে |
KEY_FAVORITES | ব্রাউজারের পছন্দের পোর্টাল খোলে |
KEY_CHAT | ইনস্ট্যান্ট মেসেঞ্জার চালু করে |
KEY_EMAIL | বিকল্প ইমেল লঞ্চ ট্রিগার |
KEY_FINANCE | খোলা স্টক/অর্থায়ন ইউটিলিটি |
KEY_SPORT | ওপেন স্পোর্টস ট্র্যাকিং ইউটিলিটি |
KEY_SHOP | ডিজিটাল শপিং পোর্টাল খুলুন |
KEY_PLAYER | প্রাথমিক মিডিয়া প্লেয়ার খুলুন |
KEY_MP3 | প্রাথমিক MP3 প্লেয়ার খুলুন |
KEY_TEXT | ডিফল্ট টেক্সট এডিটর খুলুন |
KEY_LIST | চেকলিস্ট ইউটিলিটি খুলুন |
KEY_MEMO | নোটপ্যাড / মেমো ইউটিলিটি খুলুন |
KEY_CALENDAR | ক্যালেন্ডার / এজেন্ডা পোর্টাল খোলে |
KEY_DIRECTORY | সিস্টেম অ্যাড্রেস ডিরেক্টরি খোলে |
KEY_COMPUTER | স্পেসিফিকেশন এক্সপ্লোরার খোলে |
KEY_TV / KEY_TV2 | টেলিভিশন পোর্টাল চালু করা হয়েছে |
KEY_RADIO | রেডিও ইউটিলিটি চালু করে |
KEY_CD / KEY_DVD | অপটিক্যাল ড্রাইভ রিডার সক্রিয় করে |
KEY_AUDIO / KEY_VIDEO | মিডিয়া স্পেসিফিকেশন অ্যাক্সেস করে |
KEY_TUNER | রিসিভার/টিউনার কনফিগার করে |
KEY_SAT / KEY_SAT2 | স্যাটেলাইট ফিড কনফিগার করে |
KEY_TAPE | টেপ মিডিয়া ডেক চালান |
KEY_VCR | ভিসিআর প্লেয়ার ফিড চালান |
KEY_VCR2 | ভিসিআর ২ প্লেয়ার ফিড চালান |
KEY_AUX | সহায়ক মিডিয়া পোর্ট ইনপুট |
KEY_SETUP | সেটআপ কনফিগারেশন মেনু |
KEY_PROG1 থেকে _PROG4 | ব্যবহারকারী-সংজ্ঞায়িত প্রোগ্রাম কী |
KEY_ZOOM | জুম ভিউপোর্ট টগল |
KEY_MODE | ভিউপোর্ট মোড নির্বাচন |
KEY_KEYBOARD | ভার্চুয়াল কীবোর্ড দেখান/লুকান |
KEY_LANGUAGE | অডিও ট্র্যাকের ভাষা পরিবর্তন করুন |
KEY_TITLE | মিডিয়া শিরোনাম বিকল্পগুলি খুলুন |
KEY_SUBTITLE | সাবটাইটেল ইন্টারফেস টগল করুন |
KEY_ANGLE | ভিডিও ক্যামেরার অ্যাঙ্গেল পরিবর্তন করুন |
KEY_EPG | ইলেকট্রনিক প্রোগ্রাম গাইড খুলুন |
KEY_PVR | ব্যক্তিগত ভিডিও রেকর্ডার খুলুন |
KEY_MHP | মাল্টিমিডিয়া হোম প্ল্যাটফর্ম খুলুন |
KEY_CHANNEL | খোলা টিভি টিউনার চ্যানেল |
KEY_CHANNELUP | টিভি চ্যানেল উপরের দিকে টিউন করুন। |
KEY_CHANNELDOWN | টিভি চ্যানেল নিচের দিকে টিউন করুন |
KEY_RED | লাল ইন্টারেক্টিভ বোতাম |
KEY_GREEN | সবুজ ইন্টারেক্টিভ বোতাম |
KEY_YELLOW | হলুদ ইন্টারেক্টিভ বোতাম |
KEY_BLUE | নীল ইন্টারেক্টিভ বোতাম |
KEY_FIRST | প্রথম আইটেম বিকল্পটি নির্বাচন করুন |
KEY_LAST | শেষ আইটেম বিকল্পটি নির্বাচন করুন |
KEY_NEXT | পরবর্তী ট্র্যাক বিকল্প নির্বাচন করুন |
KEY_PREVIOUS | পূর্ববর্তী ট্র্যাক বিকল্পটি নির্বাচন করুন |
KEY_RESTART | মিডিয়া ট্র্যাক লুপ পুনরায় চালু করুন |
KEY_SLOW | স্লো-মোশন প্লে বিকল্প |
KEY_AB | AB পুনরাবৃত্তি ক্রম লুপ |
KEY_PLAYCD | সিডি ডেক প্লে কমান্ড |
KEY_PAUSECD | সিডি ডেক বিরতি কমান্ড |
KEY_STOPCD | সিডি ডেক বন্ধ করার কমান্ড |
KEY_DIGITS | ডিজিটাল কীপ্যাড এন্ট্রি কমান্ড |
KEY_TEEN | কীপ্যাড কিশোর মূল্যবোধ বিকল্প |
KEY_TWEN | কীপ্যাড টুইন মান বিকল্প |
KEY_DEL_EOL | লাইন বাফারের শেষ পর্যন্ত মুছুন |
KEY_DEL_EOS | স্ক্রিন বাফারের শেষ পর্যন্ত মুছুন |
KEY_INS_LINE | নতুন লাইন বাফার ঢোকান |
KEY_BRL_DOT1 থেকে _DOT8 | ব্রেইল ডিসপ্লে বোতাম ইনপুট |
KEY_VOICECOMMAND | ভয়েস অ্যাসিস্ট্যান্ট অ্যাপ চালু করে |
KEY_SELECTIVE_SCREEN | আঞ্চলিক স্ক্রিন স্নিপিং ট্রিগার করে |
KEY_BATTERY | ব্যাটারি বিজ্ঞপ্তি সম্পর্কে জিজ্ঞাসা |
KEY_STAR / KEY_SHARP | টেলিফোন কীপ্যাড প্রতীক |
KEY_PLUS | টেলিফোন কীপ্যাড প্লাস চিহ্ন |
KEY_INFO | তথ্য প্যানেল ওভারলে দেখান |
KEY_TIME | বর্তমান ঘড়ির সময় দেখান |
KEY_VENDOR | বিক্রেতার স্পেসিফিকেশন সম্পর্কে জিজ্ঞাসা করুন |
KEY_ARCHIVE | স্থানীয় আর্কাইভ ইউটিলিটি খোলে |
KEY_PROGRAM | প্রোগ্রামের প্যারামিটার কনফিগার করে |
KEY_POWER2 | বিকল্প ব্যাকআপ পাওয়ার চালু করে |
EV_ABS — পরম গতি ঘটনা
সুনির্দিষ্ট টাচ, ড্র্যাগ-অ্যান্ড-ড্রপ জেসচার, মাল্টি-টাচ পিঞ্চ অ্যাকশন এবং জয়স্টিক অ্যাডজাস্টমেন্ট অনুকরণ করার জন্য EV_ABS ইভেন্ট টাইপটি অত্যন্ত গুরুত্বপূর্ণ। নীচের অ্যাবসোলিউট কোঅর্ডিনেটগুলো সরাসরি অন্তর্নিহিত ফিজিক্যাল স্ক্রিন রেজোলিউশনের সাথে ম্যাপ করা থাকে।
| কোড | স্থানাঙ্ক পরিসর | বর্ণনা |
|---|---|---|
ABS_MT_TRACKING_ID | -1 অথবা ≥0 | ট্র্যাকিং আইডি; -1 স্পর্শ শেষ |
ABS_MT_POSITION_X | 0 থেকে 1767 | X স্থানাঙ্ক (পিক্সেল ভাঁজ) |
ABS_MT_POSITION_Y | 0 থেকে 2207 | Y স্থানাঙ্ক (পিক্সেল ভাঁজ) |
ABS_MT_TOUCH_MAJOR | পিক্সেল | স্পর্শ এলাকার প্রধান অক্ষের প্রস্থ |
ABS_MT_TOUCH_MINOR | পিক্সেল | স্পর্শ এলাকার গৌণ অক্ষের প্রস্থ |
ABS_MT_WIDTH_MAJOR | পিক্সেল | টুলের প্রধান অক্ষের প্রস্থ |
ABS_MT_WIDTH_MINOR | পিক্সেল | টুলের গৌণ অক্ষের প্রস্থ |
ABS_MT_ORIENTATION | 0 থেকে 255 | সংস্পর্শের অভিমুখী কোণ |
ABS_MT_PRESSURE | 0 থেকে 255 | সংস্পর্শ বলের মাত্রা |
ABS_MT_DISTANCE | মিমি | স্ক্রিন থেকে হোভার দূরত্ব |
ABS_MT_TOOL_TYPE | 0 থেকে 2 | 0 = আঙুল, 1 = কলম, 2 = পেন্সিল |
ABS_MT_BLOB_ID | পূর্ণসংখ্যা | যোগাযোগ ব্লব শনাক্তকারী |
ABS_MT_TOOL_X | পিক্সেল | টুল X-অবস্থান স্থানাঙ্ক |
ABS_MT_TOOL_Y | পিক্সেল | টুল Y-অবস্থান স্থানাঙ্ক |
ABS_MT_SLOT | 0 থেকে N | সক্রিয় স্লট (প্রোটোকল বি) |
ABS_X / _Y / _Z | অ্যানালগ | জয়স্টিক স্থানাঙ্ক অক্ষ |
ABS_RX / _RY / _RZ | অ্যানালগ | জয়স্টিকের ঘূর্ণন অক্ষ |
ABS_THROTTLE / _BRAKE | অ্যানালগ | প্যাডেল এবং স্টিয়ারিং নিয়ন্ত্রণ |
ABS_HAT0X / _HAT0Y | -1 / 0 / 1 | ডি-প্যাড হ্যাট এবং পিওভি সুইচ |
ABS_PRESSURE | 0 থেকে 255 | স্টাইলাস / পয়েন্টার বলের স্তর |
ABS_DISTANCE | মিমি | হোভার দূরত্ব (স্টাইলাস পেন) |
ABS_TILT_X / _TILT_Y | ডিগ্রি | স্টাইলাসের নতি কোণ |
ABS_VOLUME | অ্যানালগ | কন্ট্রোলার ভলিউম স্তর |
অ্যান্ড্রয়েড টাচ ইন্টারঅ্যাকশন মাল্টি-টাচ (MT) প্রোটোকল দ্বারা চালিত হয়। আধুনিক এমুলেটরগুলো প্রোটোকল A (স্টেটলেস, যা সিনক্রোনাইজেশন মার্ক দ্বারা পৃথক করা কন্ট্যাক্ট প্যাকেট পাঠায়) এবং প্রোটোকল B (স্টেটফুল, যা কন্ট্যাক্টগুলোকে নির্দিষ্ট ট্র্যাকিং স্লটে বরাদ্দ করে) উভয়ই প্রয়োগ করে। প্রোটোকল B, পিঞ্চ-টু-জুমের মতো জেসচারের জন্য একই সাথে একাধিক টাচের কার্যকর ট্র্যাকিংয়ের সুযোগ দেয়।
EV_REL ও EV_SW — মোশন ও হার্ডওয়্যার সুইচ
EV_REL ইভেন্ট ক্যাটাগরিটি আপেক্ষিক পয়েন্টার বা স্থানাঙ্কের পরিবর্তন পরিচালনা করে, যা মূলত বাহ্যিক মাউসের নড়াচড়া বা স্ক্রলিং হুইল অনুকরণ করার জন্য ব্যবহৃত হয়। EV_SW ইভেন্ট ক্যাটাগরিটি ডিভাইসের ভৌত সুইচগুলো পরিচালনা করে, যেমন একটি ফ্লিপ ফোন বা ট্যাবলেট ভাঁজ করা হয়েছে কিনা, অথবা কোনো বাহ্যিক অডিও হার্ডওয়্যার সংযুক্ত করা হয়েছে কিনা।
| কোড | মূল্যবোধ | বর্ণনা |
|---|---|---|
REL_X | ডেল্টা | অনুভূমিক কার্সার চলাচল |
REL_Y | ডেল্টা | উল্লম্ব কার্সার চলাচল |
SW_LID | 0 / 1 | ল্যাপটপের ঢাকনার অবস্থা ( 0 = খোলা, 1 = বন্ধ) |
SW_TABLET_MODE | 0 / 1 | ট্যাবলেট মোডের অবস্থা ( 0 = বন্ধ, 1 = সক্রিয়) |
SW_HEADPHONE_INSERT | 0 / 1 | হেডফোন জ্যাকের অবস্থা ( 0 = আউট, 1 = ইন) |
SW_MICROPHONE_INSERT | 0 / 1 | মাইক্রোফোন জ্যাকের অবস্থা ( 0 = আউট, 1 = ইন) |
কমান্ড প্রেরণ সিনট্যাক্স
এই কোডগুলি প্রেরণ করতে, কনসোল কমান্ডটি টাইপ, কোড এবং ভ্যালুগুলিকে কোলন দিয়ে আলাদা করে ফরম্যাট করুন। আপনি একটি একক স্ট্রিং-এ একাধিক স্থানাঙ্ক পরিবর্তন কিউ করতে পারেন। গুরুত্বপূর্ণভাবে, সর্বদা একটি চূড়ান্ত সিঙ্ক্রোনাইজেশন চিহ্ন ( EV_SYN:0:0 ) যুক্ত করুন, যা নির্দেশ করে যে এমুলেটর ফ্রেমওয়ার্ক যেন এই ইনপুটগুলিকে একসাথে বান্ডিল এবং প্রসেস করে।
ইভেন্ট স্ক্রিপ্টিং এবং জেসচার উদাহরণ
যেহেতু টেলনেট একাধিক অংশের প্যারামিটার পাঠাতে দেয়, তাই আপনি বাস্তবসম্মত শারীরিক অঙ্গভঙ্গির ক্রম অনুকরণ করতে পারেন। নিচে আপনার হোস্ট কনসোল থেকে অঙ্গভঙ্গি স্বয়ংক্রিয় করার জন্য মূল ইভেন্ট স্ক্রিপ্টের কাঠামো দেওয়া হলো।
স্ক্রিন ট্যাপ অনুকরণ করা
একটি নির্দিষ্ট স্থানাঙ্কে ক্লিন স্ক্রিন ট্যাপ করতে, একটি ট্র্যাকিং আইডি নির্ধারণ করুন, স্ক্রিনে X এবং Y স্থানাঙ্ক নির্দিষ্ট করুন, স্পর্শটি সিমুলেট করুন, সিঙ্ক্রোনাইজ করুন এবং তারপর ছেড়ে দিন।
# Press down at coordinate (400, 800) and sync
event send EV_ABS:ABS_MT_TRACKING_ID:1
OK
event send EV_ABS:ABS_MT_POSITION_X:400
OK
event send EV_ABS:ABS_MT_POSITION_Y:800
OK
event send EV_KEY:BTN_TOUCH:1
OK
event send EV_SYN:0:0
OK
# Lift finger up and sync
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_KEY:BTN_TOUCH:0
OK
event send EV_SYN:0:0
OK
উল্লম্ব স্ক্রোল অনুকরণ (সোয়াইপ)
একটি স্ক্রোল সোয়াইপ জেসচার কার্যকর করতে, শুরুর স্থানাঙ্কে কন্টাক্টটি চেপে ধরে রাখুন, মধ্যবর্তী মুভমেন্ট স্থানাঙ্ক ফ্রেম পাঠান এবং শেষে ছেড়ে দিন।
# Finger touch down at start coordinate (500, 1600)
event send EV_ABS:ABS_MT_TRACKING_ID:2
OK
event send EV_ABS:ABS_MT_POSITION_X:500
OK
event send EV_ABS:ABS_MT_POSITION_Y:1600
OK
event send EV_KEY:BTN_TOUCH:1
OK
event send EV_SYN:0:0
OK
# Move coordinates upward dynamically
event send EV_ABS:ABS_MT_POSITION_Y:1200
OK
event send EV_SYN:0:0
OK
event send EV_ABS:ABS_MT_POSITION_Y:800
OK
event send EV_SYN:0:0
OK
event send EV_ABS:ABS_MT_POSITION_Y:400
OK
event send EV_SYN:0:0
OK
# Finger release at coordinate (500, 400)
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_KEY:BTN_TOUCH:0
OK
event send EV_SYN:0:0
OK
চিমটি দিয়ে জুম করার অঙ্গভঙ্গি অনুকরণ করা
দুই আঙুলের জুম চালু করতে, সক্রিয় এমটি স্লট (০ এবং ১) ব্যবহার করে একে অপরের থেকে দূরে সরে যাওয়া দুটি যুগপৎ টাচ স্থানাঙ্ককে ট্র্যাক ও সমন্বয় করুন।
# Finger 1 down at (500, 1000) using slot 0
event send EV_ABS:ABS_MT_SLOT:0
OK
event send EV_ABS:ABS_MT_TRACKING_ID:10
OK
event send EV_ABS:ABS_MT_POSITION_X:500
OK
event send EV_ABS:ABS_MT_POSITION_Y:1000
OK
event send EV_KEY:BTN_TOUCH:1
OK
event send EV_SYN:0:0
OK
# Finger 2 down at (600, 1000) using slot 1
event send EV_ABS:ABS_MT_SLOT:1
OK
event send EV_ABS:ABS_MT_TRACKING_ID:11
OK
event send EV_ABS:ABS_MT_POSITION_X:600
OK
event send EV_ABS:ABS_MT_POSITION_Y:1000
OK
event send EV_SYN:0:0
OK
# Fingers slide apart from each other
event send EV_ABS:ABS_MT_SLOT:0
OK
event send EV_ABS:ABS_MT_POSITION_X:300
OK
event send EV_SYN:0:0
OK
event send EV_ABS:ABS_MT_SLOT:1
OK
event send EV_ABS:ABS_MT_POSITION_X:800
OK
event send EV_SYN:0:0
OK
# Lift Finger 1 using slot 0
event send EV_ABS:ABS_MT_SLOT:0
OK
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_SYN:0:0
OK
# Lift Finger 2 using slot 1
event send EV_ABS:ABS_MT_SLOT:1
OK
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_KEY:BTN_TOUCH:0
OK
event send EV_SYN:0:0
OK
হেডফোন সংযোগ সুইচ অনুকরণ করা
অডিও রাউটিং সুইচগুলো পরীক্ষা করার জন্য হেডফোন জ্যাক লাগানো বা খোলার প্রক্রিয়া অনুকরণ করুন। 1 মানটি জ্যাক লাগানো এবং 0 মানটি হেডফোন খোলা নির্দেশ করে।
# Simulate headphones plugged in
event send EV_SW:SW_HEADPHONE_INSERT:1 EV_SYN:0:0
OK
# Simulate headphones unplugged
event send EV_SW:SW_HEADPHONE_INSERT:0 EV_SYN:0:0
OK
একটি বাস্তব ডিভাইস থেকে কনসোল ইভেন্ট কোড আবিষ্কার করা
যেকোনো কাস্টম অ্যাকশন বা বাটন জেসচারের সঠিক ইভেন্ট সিনট্যাক্স সিকোয়েন্স জানতে, adb shell-এর মাধ্যমে কানেক্ট করুন এবং getevent ডায়াগনস্টিক ইউটিলিটিটি চালান। আপনি যখন এমুলেটর GUI-এর সাথে ইন্টারঅ্যাক্ট করবেন, তখন কনসোলটি সঠিক ইভেন্ট কোড, টাইপ এবং পজিশন প্রিন্ট করবে।
# Run getevent to monitor input events dynamically
adb shell getevent -lt
/dev/input/event12: EV_KEY KEY_POWER DOWN
/dev/input/event12: EV_SYN SYN_REPORT 00000000
/dev/input/event12: EV_KEY KEY_POWER UP
/dev/input/event12: EV_SYN SYN_REPORT 00000000
- ইভেন্ট টেক্সট মেসেজ : কী-প্রেস অনুকরণকারী অক্ষরের একটি স্ট্রিং পাঠায়। মেসেজটি অবশ্যই একটি UTF-8 স্ট্রিং হতে হবে। ইউনিকোড পোস্টগুলো বর্তমান ডিভাইসের কীবোর্ড অনুযায়ী বিপরীতভাবে ম্যাপ করা হয় এবং অসমর্থিত অক্ষরগুলো নীরবে বাদ দেওয়া হয়।
পাওয়ার স্টেট নিয়ন্ত্রণ
পাওয়ার ডিসপ্লে : ব্যাটারি ও চার্জারের অবস্থা প্রদর্শন করে।
পাওয়ার এসি {অন|অফ} : এসি চার্জিং অবস্থা চালু বা বন্ধ করে।
পাওয়ার স্ট্যাটাস {অজানা| চার্জ হচ্ছে| ডিসচার্জ হচ্ছে| চার্জ হচ্ছে না| সম্পূর্ণ} : নির্দিষ্ট নির্দেশ অনুযায়ী ব্যাটারির অবস্থা পরিবর্তন করে।
পাওয়ার উপস্থিত {true| false} : ব্যাটারির উপস্থিতি অবস্থা নির্ধারণ করে।
পাওয়ার হেলথ {অজানা| ভালো| অতিরিক্ত গরম| নষ্ট| অতিরিক্ত ভোল্টেজ| বিকল} : ব্যাটারির স্বাস্থ্য অবস্থা নির্ধারণ করে।
পাওয়ার ক্যাপাসিটি পার্সেন্ট : অবশিষ্ট ব্যাটারি ক্যাপাসিটির অবস্থা ০ থেকে ১০০ এর মধ্যে শতাংশ হিসাবে নির্ধারণ করে।
নেটওয়ার্ক সংযোগের অবস্থা (শুধুমাত্র ইথারনেট এবং সেলুলার)
নেটওয়ার্ক স্ট্যাটাস : নেটওয়ার্কের অবস্থা এবং বর্তমান বিলম্ব ও গতির বৈশিষ্ট্য যাচাই করে।
network delay latencyঅনুকৃত নেটওয়ার্ক ল্যাটেন্সি পরিবর্তন করে।এমুলেটরটি আপনাকে বিভিন্ন নেটওয়ার্ক ল্যাটেন্সি লেভেল অনুকরণ করার সুযোগ দেয়, যাতে আপনি আপনার অ্যাপটিকে প্রকৃত চলমান অবস্থার অনুরূপ একটি পরিবেশে পরীক্ষা করতে পারেন। আপনি এমুলেটর চালু করার সময় একটি ল্যাটেন্সি লেভেল বা রেঞ্জ সেট করতে পারেন, অথবা এমুলেটরে অ্যাপটি চলার সময় কনসোল ব্যবহার করে ল্যাটেন্সি পরিবর্তন করতে পারেন।
নেটওয়ার্ক লেটেন্সির ফরম্যাটটি নিম্নলিখিতগুলির মধ্যে একটি (সংখ্যাগুলি মিলিসেকেন্ডে):
নেটওয়ার্ক লেটেন্সি ফরম্যাট:
জিপিআরএস (GPRS), যা সর্বনিম্ন ১৫০ এবং সর্বোচ্চ ৫৫০ ল্যাটেন্সি পরিসীমা ব্যবহার করে।
Edge : EDGE/EGPRS, যা সর্বনিম্ন ৮০ এবং সর্বোচ্চ ৪০০ ল্যাটেন্সি পরিসীমা ব্যবহার করে।
UMTS : UMTS/3G, যা সর্বনিম্ন ৩৫ এবং সর্বোচ্চ ২০০ ল্যাটেন্সি পরিসীমা ব্যবহার করে।
none : কোনো ল্যাটেন্সি নেই।
num : মিলিসেকেন্ডে নির্দিষ্ট লেটেন্সি অনুকরণ করে।
min:max : নির্দিষ্ট লেটেন্সি পরিসর অনুকরণ করে।
এমুলেটর চালুর সময় ল্যাটেন্সি সেট করতে, একটি সমর্থিত ল্যাটেন্সি মান সহ
-netdelayএমুলেটর অপশনটি ব্যবহার করুন। উদাহরণ:emulator -netdelay gprs emulator -netdelay 40,100এমুলেটর চলার সময় নেটওয়ার্ক ডিলে পরিবর্তন করতে, কনসোলে সংযোগ করুন এবং
network delayকমান্ডটি ব্যবহার করুন:network delay gprs network delay 40 100network speed speedএমুলেটরটি আপনাকে বিভিন্ন নেটওয়ার্ক ট্রান্সফার রেট অনুকরণ করতে দেয়। আপনি এমুলেটর চালু করার সময় একটি ট্রান্সফার রেট বা রেঞ্জ সেট করতে পারেন, অথবা এমুলেটরে অ্যাপটি চলার সময় কনসোল ব্যবহার করে রেট পরিবর্তন করতে পারেন।নেটওয়ার্ক স্পিডের ফরম্যাটটি নিম্নলিখিতগুলির মধ্যে একটি (সংখ্যাগুলি কিলোবিট/সেকেন্ডে):
নেটওয়ার্ক স্পিড ফরম্যাট:
জিএসএম : জিএসএম/সিএসডি, যা ১৪.৪ আপ এবং ১৪.৪ ডাউন গতি ব্যবহার করে।
hscsd : HSCSD, যা আপলোডের জন্য ১৪.৪ এবং ডাউনলোডের জন্য ৪৩.২ গতি ব্যবহার করে।
জিপিআরএস (GPRS), যা আপস্ট্রিম ৪০.০ এবং ডাউনস্ট্রিম ৮০.০ গতি ব্যবহার করে।
edge : EDGE/EGPRS, যা আপলোডের জন্য ১১৮.৪ এবং ডাউনলোডের জন্য ২৩৬.৮ গতি ব্যবহার করে।
ইউএমটিএস (UMTS) : ইউএমটিএস/থ্রিজি (UMTS/3G), যা আপলোডের গতি ১২৮.০ এবং ডাউনলোডের গতি ১৯২০ ব্যবহার করে।
এইচএসডিপিএ (HSDPA), যা ৩৪৮.০ আপলোড এবং ১৪,৪০০.০ ডাউনলোড গতি ব্যবহার করে।
এলটিই (lte ), যার আপলোড গতি ৫৮,০০০ এবং ডাউনলোড গতি ১৭৩,০০০।
evdo : EVDO, যা ৭৫,০০০ আপ এবং ২৮০,০০০ ডাউন গতি ব্যবহার করে।
ফুল : সীমাহীন গতি, তবে এটি আপনার কম্পিউটারের সংযোগ গতির উপর নির্ভর করে।
num : আপলোড এবং ডাউনলোড উভয়ের জন্য ব্যবহৃত কিলোবিট/সেকেন্ডে একটি সঠিক হার নির্ধারণ করে।
up:down : আপলোড এবং ডাউনলোডের জন্য আলাদাভাবে সঠিক হার (কিলোবিট/সেকেন্ডে) নির্ধারণ করে।
এমুলেটর চালু হওয়ার সময় নেটওয়ার্কের গতি সেট করতে,
-netspeedএমুলেটর অপশনটি ব্যবহার করুন। উদাহরণ:emulator -netspeed gsm @Pixel_API_26 emulator -netspeed 14.4,80 @Pixel_API_26এমুলেটর চলার সময় নেটওয়ার্কের গতি পরিবর্তন করতে, কনসোলে সংযোগ করুন এবং
network speedকমান্ডটি ব্যবহার করুন:network speed 14.4 80network capture {start| stop} fileপ্যাকেটগুলিকে একটি ফাইলে পাঠায়। নিম্নলিখিত তালিকাটি প্যারামিটার এবং প্যারামিটারের মানগুলি বর্ণনা করে:দ্রষ্টব্য: অ্যান্ড্রয়েড এমুলেটর ৩৬.৫ এবং তার পরবর্তী সংস্করণ থেকে, ওয়াই-ফাই সংযোগের ট্র্যাফিক ডিফল্টরূপে নেটসিম (netsim) দ্বারা পরিচালিত হয়। নেটওয়ার্ক ক্যাপচার কনসোল কমান্ডটি শুধুমাত্র QEMU স্লিপ (slirp) স্ট্যাকের মাধ্যমে রাউট করা লিগ্যাসি সেলুলার/ওয়ান (WAN) ট্র্যাফিক ক্যাপচার করে। আধুনিক এমুলেটর সংস্করণগুলিতে ওয়াই-ফাই, ব্লুটুথ বা অ্যাডভান্সড নেটওয়ার্ক প্যাকেট ক্যাপচার করার জন্য, অ্যাডভান্সড এমুলেটর নেটওয়ার্কিং গাইডের ‘ক্যাপচার নেটওয়ার্ক ট্র্যাফিক’ অংশটি দেখুন।
স্টার্ট ফাইল : নেটওয়ার্ক প্যাকেট ক্যাপচার করা শুরু করে। নিরাপত্তার জন্য, ফাইলটির নাম অবশ্যই খালি হতে হবে (কোনো পাথ সেপারেটর যেমন
/, এবং..ব্যবহার করা যাবে না)। প্যাকেট ক্যাপচার ফাইলটি আপনার AVD-এর কন্টেন্ট ডিরেক্টরিরconsole_out/ফোল্ডারে সেভ করা হবে (উদাহরণস্বরূপ,~/.android/avd/avd_name.avd/console_out/file)।ফাইল বন্ধ করুন : নির্দিষ্ট ফাইলে প্যাকেট পাঠানো বন্ধ করে।
টেলিফোনি অনুকরণ
অ্যান্ড্রয়েড এমুলেটরটিতে নিজস্ব জিএসএম এবং সিডিএমএ এমুলেটেড মডেম রয়েছে, যা আপনাকে এমুলেটরের মধ্যেই টেলিফোনি ফাংশনগুলো সিমুলেট করতে দেয়। উদাহরণস্বরূপ, জিএসএম ব্যবহার করে আপনি ইনকামিং ফোন কল সিমুলেট করতে এবং ডেটা সংযোগ স্থাপন ও বিচ্ছিন্ন করতে পারেন। সিডিএমএ-এর ক্ষেত্রে, আপনাকে একটি সাবস্ক্রিপশন সোর্স এবং পছন্দের রোমিং তালিকা প্রদান করতে হয়। অ্যান্ড্রয়েড সিস্টেমটি সিমুলেটেড কলগুলোকে ঠিক সেভাবেই পরিচালনা করে, যেভাবে এটি আসল কল পরিচালনা করে। এমুলেটরটি কলের অডিও সমর্থন করে না।
gsm {call| accept| cancel| busy} phonenumberজিএসএম প্যারামিটারগুলো নিম্নরূপ:- কল : ফোন নম্বর থেকে আগত ফোন কলের অনুকরণ করে।
- গ্রহণ করুন : ফোন নম্বর থেকে আসা একটি ইনকামিং কল গ্রহণ করে এবং কলের অবস্থা সক্রিয় করে। আপনি শুধুমাত্র তখনই একটি কলের অবস্থা সক্রিয় করতে পারবেন যখন সেটির বর্তমান অবস্থা অপেক্ষারত (waiting) বা হেল্ড (hold) থাকে।
- বাতিল করুন : ফোন নম্বর থেকে আসা বা সেই নম্বরে করা ফোন কল বন্ধ করে দেয়।
- ব্যস্ত : ফোন নম্বরে করা একটি আউটবাউন্ড কল বন্ধ করে এবং কলের অবস্থা ব্যস্ততে পরিবর্তন করে। আপনি শুধুমাত্র তখনই একটি কলের অবস্থা ব্যস্ততে পরিবর্তন করতে পারবেন যখন সেটির বর্তমান অবস্থা অপেক্ষারত (waiting) থাকে।
gsm {data| voice} state`data state` কমান্ডটি GPRS ডেটা সংযোগের অবস্থা পরিবর্তন করে এবং `voice state` কমান্ডটি GPRS ভয়েস সংযোগের অবস্থা পরিবর্তন করে, যা নিম্নরূপ:- অনিবন্ধিত : কোনো নেটওয়ার্ক উপলব্ধ নেই।
- হোম : স্থানীয় নেটওয়ার্কে, নন-রোমিং।
- রোমিং : রোমিং নেটওয়ার্কে আছে।
- অনুসন্ধান : নেটওয়ার্ক অনুসন্ধান করা হচ্ছে।
- অনুমোদিত নয় : শুধুমাত্র জরুরি কলের জন্য।
- বন্ধ : অনিবন্ধিত-এর অনুরূপ।
- চালু : বাড়ির মতোই।
জিএসএম হোল্ড : একটি কলের অবস্থা হোল্ডে পরিবর্তন করে। আপনি শুধুমাত্র তখনই একটি কলের অবস্থা হোল্ডে পরিবর্তন করতে পারবেন, যখন সেটির বর্তমান অবস্থা অ্যাক্টিভ বা ওয়েটিং থাকে।
জিএসএম তালিকা : সকল ইনকামিং ও আউটবাউন্ড কল এবং তাদের অবস্থা তালিকাভুক্ত করে।
জিএসএম স্ট্যাটাস : বর্তমান জিএসএম ভয়েস/ডেটা অবস্থা জানায়। এর মানগুলো ভয়েস এবং ডেটা কমান্ডের জন্য বর্ণিত মানগুলোর অনুরূপ।
gsm signal {rssi| ber}পরবর্তী ১৫ সেকেন্ডের আপডেটে রিপোর্ট করা সিগন্যাল শক্তি (আরএসএসআই) এবং বিট এরর রেট (বিইআর) পরিবর্তন করে। নিম্নলিখিত তালিকাটি প্যারামিটার এবং তাদের মান বর্ণনা করে:- আরএসএসআই (RSSI) : এর পরিসর ০ থেকে ৩১ এবং ৯৯ হলো অজানা।
- ber : এর পরিসর ০ থেকে ৭ এবং অজানা মানের জন্য ৯৯।
জিএসএম সিগন্যাল-প্রোফাইল নাম : সিগন্যাল শক্তির প্রোফাইল নির্ধারণ করে। নাম হলো ০ থেকে ৪ পর্যন্ত একটি সংখ্যা।
cdma ssource sourceবর্তমান সিডিএমএ সাবস্ক্রিপশন সোর্স নির্ধারণ করে, যেখানে source হলো একটি নেটওয়ার্ক-ভিত্তিক অ্যালাওলিস্ট যা সিডিএমএ ক্যারিয়ারের সাবস্ক্রাইবার এবং তাদের ভ্যালু ধারণ করে, নিম্নরূপ:- nv : নন-ভোলাটাইল র্যাম থেকে সাবস্ক্রিপশন রিড করে।
- ruim : রিমুভেবল ইউজার আইডেন্টিটি মডিউল (RUIM) থেকে সাবস্ক্রিপশন পড়ে।
cdma prl_version version : বর্তমান প্রিফার্ড রোমিং লিস্ট (PRL) সংস্করণটি প্রদর্শন করে। এই সংস্করণ নম্বরটি PRL ডাটাবেসের জন্য, যেখানে সিস্টেম নির্বাচন এবং অধিগ্রহণ প্রক্রিয়ার সময় ব্যবহৃত তথ্য থাকে।
এমুলেটরে সেন্সরগুলি পরিচালনা করুন
এই কমান্ডগুলো AVD-তে কোন সেন্সরগুলো উপলব্ধ আছে তার সাথে সম্পর্কিত। সেন্সর কমান্ড ব্যবহার করা ছাড়াও, আপনি এমুলেটরের ভার্চুয়াল সেন্সর স্ক্রিনের অ্যাক্সেলেরোমিটার এবং অতিরিক্ত সেন্সর ট্যাবে সেটিংসগুলো দেখতে ও সামঞ্জস্য করতে পারেন।
সেন্সরের অবস্থা : সমস্ত সেন্সর এবং তাদের অবস্থা তালিকাভুক্ত করে।
sensor get sensor-name : sensor-name-এর সেটিংসগুলো সংগ্রহ করে। নিচের উদাহরণটি অ্যাক্সিলারেশন সেন্সরের মান সংগ্রহ করে:
sensor get acceleration acceleration = 2.23517e-07:9.77631:0.812348কোলন (:) দ্বারা পৃথক করা ত্বরণের মানগুলো ভার্চুয়াল সেন্সরগুলোর x, y, এবং z স্থানাঙ্ককে নির্দেশ করে।
sensor set sensor-name value-x:value-y:value-z : sensor-name-এর জন্য মান নির্ধারণ করে। নিম্নলিখিত উদাহরণটি কোলন দ্বারা পৃথক করা x, y, এবং z মানে অ্যাক্সিলারেশন সেন্সরটি সেট করে।
sensor set acceleration 2.23517e-07:9.77631:0.812348
এসএমএস অনুকরণ
sms send sender-phone-number textmessageএকটি অনুকৃত ইনকামিং এসএমএস তৈরি করে। নিম্নলিখিত তালিকাটি প্যারামিটার এবং তাদের মান বর্ণনা করে:- প্রেরকের ফোন নম্বর : এতে যেকোনো সংখ্যাসূচক স্ট্রিং থাকে।
- টেক্সটমেসেজ : এসএমএস বার্তা।
নিম্নলিখিত উদাহরণটি 4085555555 ফোন নম্বরে "hi there" বার্তাটি পাঠায়:
sms send 4085555555 hi there
কনসোলটি এসএমএস বার্তাটি অ্যান্ড্রয়েড ফ্রেমওয়ার্কে ফরোয়ার্ড করে, যা সেটিকে এমুলেটরের কোনো এসএমএস পরিচালনাকারী অ্যাপে, যেমন মেসেজেস অ্যাপে, পাঠিয়ে দেয়। আপনি যদি ১০টি সংখ্যা দেন, অ্যাপটি সেটিকে একটি ফোন নম্বর হিসেবে ফরম্যাট করে। এর চেয়ে দীর্ঘ বা সংক্ষিপ্ত সাংখ্যিক স্ট্রিংগুলো আপনি যেভাবে পাঠিয়েছেন সেভাবেই প্রদর্শিত হয়।
আঙুলের ছাপ সিমুলেশন
ফিঙ্গার টাচ ফিঙ্গারপ্রিন্ট-আইডি : সেন্সরে আঙুল স্পর্শ করার অনুভূতি অনুকরণ করে।
আঙুল অপসারণ : আঙুল অপসারণের অনুকরণ করে।
এই কমান্ডগুলো কীভাবে ব্যবহার করতে হয়, সে সম্পর্কে নির্দেশাবলীর জন্য ফিঙ্গারপ্রিন্ট সিমুলেশন ও ভ্যালিডেশন সম্পর্কিত নিম্নলিখিত বিভাগটি দেখুন।
স্ক্রিন রেকর্ড
স্ক্রিন রেকর্ড কমান্ডটি হোস্ট সিস্টেম থেকে সরাসরি এমুলেটরের ফিজিক্যাল ডিসপ্লের উচ্চ-মানের ভিডিও ফাইল ক্যাপচার করতে সক্ষম করে। এটি কন্টিনিউয়াস ইন্টিগ্রেশন পাইপলাইন এবং স্বয়ংক্রিয় বাগ রিপোর্টিংয়ের জন্য অত্যন্ত উপযোগী।
-
screenrecord {start| stop} fileডিসপ্লে রেকর্ডিং প্রক্রিয়া শুরু বা বন্ধ করে।- ফাইল শুরু করুন : ভিডিও রেকর্ডিং শুরু করে। আউটপুট ফাইলের শেষে বাধ্যতামূলক
.webmএক্সটেনশনটি অবশ্যই থাকতে হবে। ধারণ করা ভিডিওটি সরাসরি আপনার AVD-এর কনসোল আউটপুট ডিরেক্টরিতে সংরক্ষিত হয়:~/.android/avd/avd_name.avd/console_out/file। - ফাইল বন্ধ করুন : সক্রিয় ডিসপ্লে রেকর্ডিং প্রক্রিয়াটি বন্ধ করে।
- ফাইল শুরু করুন : ভিডিও রেকর্ডিং শুরু করে। আউটপুট ফাইলের শেষে বাধ্যতামূলক
অটোমেশন এবং ম্যাক্রো
অটোমেশন সাবসিস্টেমটি ডেভেলপারদের চলমান ভার্চুয়াল ডিভাইসে ম্যাক্রো স্টেট ট্রানজিশন রেকর্ড করতে এবং স্বয়ংক্রিয় টেস্টিং ফ্লো কার্যকর করার জন্য সেগুলো প্লেব্যাক করতে দেয়।
-
automation {record| stop-record| play| stop-play}স্বয়ংক্রিয় ম্যাক্রো রেকর্ডিং পরিচালনা করে।- রেকর্ড : ডিভাইসের অবস্থার পরিবর্তন এবং ইনপুট রেকর্ড করা শুরু করে।
- স্টপ-রেকর্ড : বর্তমান ম্যাক্রো রেকর্ডিং সেশনটি বন্ধ করে।
- প্লে : রেকর্ড করা একটি ম্যাক্রো সিকোয়েন্স বাজানো শুরু করে।
- স্টপ-প্লে : সক্রিয় ম্যাক্রো প্লেব্যাক ক্রমটি থামিয়ে দেয়।
পদার্থবিজ্ঞান (6DoF)
ফিজিক্স কমান্ডগুলো সিক্স-ডিগ্রি-অফ-ফ্রিডম (6DoF) ফিজিক্যাল মুভমেন্ট মডেলের জন্য গ্রাউন্ড ট্রুথ স্পেশিয়াল পোজ লগিং পরিচালনা করে, যা অ্যাডভান্সড মোশন ট্র্যাকিং সিমুলেট করতে ব্যবহৃত হয়।
-
physics {record-gt| stop}মডেলের ভৌত ভঙ্গির রেকর্ডিং পরিচালনা করে।- record-gt : প্রকৃত 6DoF গতিবিধির ডেটা রেকর্ড করা শুরু করে।
- stop : বর্তমান গ্রাউন্ড-ট্রুথ রেকর্ডিং প্রক্রিয়াটি থামিয়ে দেয়।
উন্নত ডিভাইস নিয়ন্ত্রণ
এই বিভাগে উন্নত এমুলেশন কনফিগারেশনের জন্য অত্যন্ত বিশেষায়িত কনসোল কমান্ড এন্ডপয়েন্টগুলো একত্রিত করা হয়েছে, যার মধ্যে নেটওয়ার্ক প্রক্সি, মাল্টি-ডিসপ্লে কনফিগারেশন, রেন্ডারিং ওভাররাইড এবং হাইপারভাইজর ডিরেক্ট ডিবাগিং অন্তর্ভুক্ত।
multidisplay {add| del}মাল্টি-স্ক্রিন কনফিগারেশন পরীক্ষা করার জন্য সেকেন্ডারি ভার্চুয়াল মনিটর যোগ বা মুছে ফেলে। দ্রষ্টব্য: পিক্সেল ফোল্ড বা রিসাইজেবল এমুলেটরের মতো ফোল্ড প্রোফাইলে সেকেন্ডারি মনিটর সমর্থিত নয়।proxy {set| clear}কনসোল থেকে প্রোগ্রাম্যাটিকভাবে নেটওয়ার্ক প্রক্সি ফরওয়ার্ডিং কনফিগার করে।- হোস্ট পোর্ট সেট করুন : টার্গেট প্রক্সি সেটিংস কনফিগার করে।
- clear : প্রক্সি কনফিগারেশন ডিফল্টে রিসেট করে। দ্রষ্টব্য: হেডলেস এক্সিকিউশন এনভায়রনমেন্টে প্রক্সি সেট অপারেশন ব্যর্থ হয়।
virtualscene-image {wall| table} image_pathএকটি কাস্টম ইউজার ইমেজ ফাইল দিয়ে ভার্চুয়াল সিন ক্যামেরা ফিডে প্রদর্শিত ব্যাকগ্রাউন্ড ওয়াল বা হরাইজন্টাল টেবিল কাস্টমাইজ করে।resize-display scaleপূর্বনির্ধারিত স্কেলগুলোর মধ্যে স্ক্রিন রেজোলিউশনকে গতিশীলভাবে সমন্বয় করে। দ্রষ্টব্য: হেডলেস কনফিগারেশনে রেজোলিউশন সমন্বয় সমর্থিত নয়।nodraw {on| off}উচ্চ-পরিমাণে ব্যাকগ্রাউন্ড হেডলেস অটোমেশন চলার সময় সিস্টেম মেমরি এবং GPU-এর উপর চাপ কমাতে হোস্ট স্ক্রিনে ফিজিক্যাল GUI রেন্ডারিং নিষ্ক্রিয় করে।grpc portকাস্টম gRPC পোর্ট এন্ডপয়েন্টগুলির উপর উন্নত প্রোগ্রাম্যাটিক ডিভাইস নিয়ন্ত্রণ কনফিগার করে।qemu monitorঅন্তর্নিহিত হাইপারভাইজরের কনসোলে সরাসরি ইন্টারেক্টিভ টার্মিনাল অ্যাক্সেস প্রদান করে। এই কমান্ডটি শুধুমাত্র সক্রিয় টেলনেট কনসোল সেশনের মাধ্যমে প্রবেশ করানো যায়।icebox track pidনির্দিষ্ট অ্যাপ প্রসেসটি কোনো অনিয়ন্ত্রিত ব্যতিক্রম বা ক্র্যাশের সম্মুখীন হলে স্বয়ংক্রিয় সিস্টেম স্ন্যাপশট নেওয়া সক্ষম করে।phonenumber numberটার্গেট ডিভাইসের ভার্চুয়াল লোকাল ফোন নম্বর সেট করে।
gRPC প্রোগ্রাম্যাটিক ইন্টারফেস
আধুনিক এমুলেটর সংস্করণগুলো প্রচলিত টেলনেট কনসোলের পাশাপাশি একটি শক্তিশালী gRPC প্রোগ্রাম্যাটিক ইন্টারফেস সমর্থন করে। যদিও টেলনেট কনসোল দ্রুত ইন্টারেক্টিভ সেশন বা সাধারণ স্ক্রিপ্টিংয়ের জন্য চমৎকার, gRPC ইন্টারফেসটি কন্টিনিউয়াস ইন্টিগ্রেশন (CI) এবং হেডলেস পরিবেশে উচ্চ-পারফরম্যান্স, নিরাপদ এবং শক্তিশালী স্বয়ংক্রিয় নিয়ন্ত্রণের জন্য ডিজাইন করা হয়েছে। সরাসরি সার্ভিস এন্ডপয়েন্ট সরবরাহ করার মাধ্যমে, gRPC টেক্সট স্ট্রিম পার্স করা, টার্মিনাল সেশন হ্যান্ডশেক পরিচালনা করা বা এনক্রিপ্টবিহীন লোকালহোস্ট পোর্ট উন্মুক্ত করার প্রয়োজনীয়তা দূর করে।
পুরানো টেলনেট কনসোল এবং আধুনিক gRPC প্রোগ্রাম্যাটিক ইন্টারফেসের মধ্যে কোনটি বেছে নেবেন, তা ঠিক করতে এর পারফরম্যান্স, নিরাপত্তা এবং ফিচার সক্ষমতার নিম্নলিখিত তুলনাটি পর্যালোচনা করুন:
| বৈশিষ্ট্য | টেলনেট কনসোল | gRPC ইন্টারফেস |
|---|---|---|
| সেরা | ম্যানুয়াল ডিবাগিং, ইন্টারেক্টিভ সেশন। | হেডলেস সিআই/সিডি, শক্তিশালী স্বয়ংক্রিয় টেস্ট রিগ। |
| গতি | ধীরগতির; টেক্সট পাঠানোর অতিরিক্ত চাপ, সংযোগের বিলম্ব। | অপ্টিমাইজড; মাল্টিপ্লেক্সড HTTP/2, দ্রুত প্রোটো। |
| নিরাপত্তা | এনক্রিপ্ট করা নয়; স্থানীয় পোর্ট (৫৫৫৪–৫৫৮৫)। | TLS দ্বারা সুরক্ষিত করা যায়, নেটওয়ার্কে কাজ করে। |
| স্রোত | অসমর্থিত; শুধুমাত্র অনুরোধ-প্রতিক্রিয়া। | লগক্যাট ও গেস্ট অডিও ক্যাপচারের জন্য স্ট্রিমসমূহ। |
| মিডিয়া | আউটপুট ফাইলগুলো হোস্ট/গেস্ট ডিস্কে লেখে। | সরাসরি ওভার-দ্য-ওয়্যার বাইনারি বাফার। |
| অতিথি ওএস | নির্দিষ্ট এমুলেটর কমান্ডের মধ্যে সীমাবদ্ধ। | নেটিভ গেস্ট ব্যাশ শেল কমান্ড চালায়। |
gRPC চালু এবং কল করা
gRPC এন্ডপয়েন্টগুলো ব্যবহার করতে, কমান্ড লাইন থেকে অ্যান্ড্রয়েড এমুলেটরটি চালু করুন এবং টার্গেট লুপব্যাক পোর্ট উল্লেখ করে -grpc ফ্ল্যাগটি অন্তর্ভুক্ত করুন।
# Start the emulator with the gRPC service enabled on port 8556
emulator -grpc localhost:8556 @Pixel_Fold
একবার gRPC পরিষেবা সক্রিয় করে এমুলেটরটি চালু হয়ে গেলে, আপনি প্রোগ্রাম্যাটিক RPC কল করতে পারবেন। কমান্ড-লাইন পরীক্ষার জন্য, এমুলেটরের পরিষেবাগুলির সাথে যোগাযোগ করতে grpcurl ইউটিলিটি ব্যবহার করুন। সমস্ত অনুরোধ JSON ফরম্যাটে সাজানো হয় এবং প্লেইনটেক্সটের মাধ্যমে পাঠানো হয়।
# Query the status of the virtual device using grpcurl
grpcurl -plaintext -d '{}' localhost:8556 \
android.emulation.control.EmulatorController/getStatus
# Simulate an incoming phone call
grpcurl -plaintext -d '{"operation": "InitCall", "number": "1234567890"}' localhost:8556 \
android.emulation.control.EmulatorController/sendPhone
# Simulate typing text into the guest OS
grpcurl -plaintext -d '{"text": "Hello"}' localhost:8556 \
android.emulation.control.EmulatorController/sendKey
টেলনেট কনসোল থেকে gRPC পরিষেবা ম্যাপিং
নিম্নলিখিত রেফারেন্স টেবিলটি পুরোনো টেলনেট কনসোল কমান্ডগুলোকে তাদের সংশ্লিষ্ট gRPC সার্ভিস এবং মেথডগুলোর সাথে সংযুক্ত করে, যা প্রোগ্রাম্যাটিকভাবে সাধারণ ভার্চুয়াল ডিভাইস ইন্টারঅ্যাকশনগুলো স্বয়ংক্রিয় করার পদ্ধতি নির্দেশ করে:
| বিভাগ | লিগ্যাসি টেলনেট কমান্ড | gRPC পরিষেবা / পদ্ধতি |
|---|---|---|
| অবস্থা | ping | EmulatorController/getStatus |
| অবস্থা | avd name | incubating.AvdService/getAvdInfo |
| অবস্থা | kill | EmulatorController/setVmState |
| অবস্থা | restart | EmulatorController/setVmState |
| শক্তি | power display | EmulatorController/getBattery |
| শক্তি | power capacity | EmulatorController/setBattery |
| জিও লোক | geo fix | EmulatorController/setGps |
| সেন্সর | sensor set | incubating.SensorService/setSensor |
| বায়োমেট্রিক্স | finger touch | EmulatorController/sendFingerprint |
| ভঙ্গি | posture | EmulatorController/setPosture |
| ভঙ্গি | physics / fold | EmulatorController/setPhysicalModel |
| এসএমএস | sms send | EmulatorController/sendSms |
| জিএসএম কল | gsm call | EmulatorController/sendPhone |
| জিএসএম কল | phonenumber | EmulatorController/setPhoneNumber |
| পুনঃনির্দেশ | redir add | Waterfall/ForwardPort |
| ইনপুট | event send EV_KEY | EmulatorController/sendKey |
| ইনপুট | event send EV_ABS | EmulatorController/sendTouch |
| মিডিয়া | screenrecord | incubating.ScreenRecording |
| রেন্ডারিং | nodraw | EmulatorController/setDisplayMode |
| স্ন্যাপশট | avd snapshot list | SnapshotService/ListSnapshots |
| স্ন্যাপশট | avd snapshot load/save | SnapshotService/LoadSnapshot |
gRPC-এর জন্য অনন্য প্রোগ্রাম্যাটিক কমান্ড
gRPC ইন্টারফেস এমন কিছু অত্যাধুনিক সুবিধা প্রদান করে যা প্রচলিত টেলনেট কনসোল সংযোগের মাধ্যমে সম্পাদন করা শারীরিকভাবে অসম্ভব। এগুলোর মধ্যে রয়েছে সরাসরি লগক্যাট স্ট্রিমিং, দ্বিমুখী অডিও ক্যাপচার বা ইনজেকশন, হোস্ট GUI পরিবর্তন এবং সরাসরি শেল অ্যাক্সেস।
| gRPC পরিষেবা / পদ্ধতি | প্যারামিটার | সক্ষমতা |
|---|---|---|
streamLogcat | {"maxLines": 100} | স্ট্রিম গেস্ট সিস্টেম লগক্যাট আউটপুট |
streamAudio | {} | তারের মাধ্যমে স্পিকারের অডিও স্ট্রিম করে। |
injectAudio | {"audio": "..."} | মাইক্রোফোন অডিও স্ট্রিম ইনজেক্ট করে |
UiController | {"theme": "DARK"} | হোস্ট উইন্ডোর থিম পরিবর্তন করে |
Waterfall/Exec | {"cmd": "ls"} | গেস্ট ওএস-এর নিজস্ব শেল কমান্ড চালায় |
আঙুলের ছাপের সিমুলেশন এবং যাচাইকরণ

আপনার অ্যাপের জন্য ফিঙ্গারপ্রিন্ট অথেন্টিকেশন সিমুলেট এবং ভ্যালিডেট করতে ফিঙ্গার কমান্ডটি ব্যবহার করুন। এর জন্য আপনার এসডিকে টুলস ২৪.৩ বা তার উচ্চতর সংস্করণ এবং অ্যান্ড্রয়েড ৬.০ (এপিআই লেভেল ২৩) বা তার উচ্চতর সংস্করণ প্রয়োজন।
ফিঙ্গারপ্রিন্ট অথেন্টিকেশন সিমুলেট ও ভ্যালিডেট করতে এই ধাপগুলো অনুসরণ করুন:
আপনার যদি এখনও ফিঙ্গারপ্রিন্ট আইডি না থাকে, তাহলে সেটিংস > নিরাপত্তা > ফিঙ্গারপ্রিন্ট নির্বাচন করে এমুলেটরে একটি নতুন ফিঙ্গারপ্রিন্ট নথিভুক্ত করুন এবং নথিভুক্তকরণের নির্দেশাবলী অনুসরণ করুন।
Set up your app to accept fingerprint authentication . After you perform this setup, your device displays the fingerprint authentication screen.
While your app displays the fingerprint authentication screen, go to the console and enter the
finger touchcommand and the fingerprint ID you created. This simulates a finger touch.Then, enter the
finger removecommand to simulate finger removal. Your app should respond as if a user touched and then removed their finger from the fingerprint sensor.