এমুলেটর কনসোল কমান্ড পাঠান

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

নিম্নলিখিত কমান্ডগুলো চালানোর জন্য আপনার একটি এমুলেটর আগে থেকেই চালু থাকা প্রয়োজন। এমুলেটর চালানো সম্পর্কে আরও তথ্যের জন্য, ‘অ্যান্ড্রয়েড এমুলেটরে অ্যাপ চালান’ এবং ‘কমান্ড লাইন থেকে এমুলেটর চালু করুন’ দেখুন।

একটি কনসোল সেশন শুরু এবং বন্ধ করুন

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

চলমান ভার্চুয়াল ডিভাইসের কনসোলে সংযোগ করতে:

  1. একটি টার্মিনাল উইন্ডো খুলুন এবং নিম্নলিখিত কমান্ডটি প্রবেশ করান:

    telnet localhost console-port
    

    এমুলেটর উইন্ডোর শিরোনামে কনসোল পোর্ট নম্বরটি উল্লেখ করা থাকে যখন এটি একটি আলাদা উইন্ডোতে চলে, কিন্তু টুল উইন্ডোতে চলার সময় তা থাকে না। উদাহরণস্বরূপ, ৫৫৫৪ কনসোল পোর্ট ব্যবহারকারী একটি এমুলেটরের উইন্ডোর শিরোনাম হতে পারে Pixel8_API_34:5554। এছাড়াও, adb devices কমান্ডটি চলমান ভার্চুয়াল ডিভাইস এবং তাদের কনসোল পোর্ট নম্বরের একটি তালিকা প্রিন্ট করে। আরও তথ্যের জন্য, Query for devices দেখুন।

    দ্রষ্টব্য: এমুলেটরটি ৫৫৫৪ থেকে ৫৫৮৫ পোর্টে সংযোগের জন্য অপেক্ষা করে এবং শুধুমাত্র লোকালহোস্ট থেকে সংযোগ গ্রহণ করে।

  2. কনসোলে OK প্রদর্শিত হওয়ার পর, auth auth_token কমান্ডটি প্রবেশ করান।

    কনসোল কমান্ড দেওয়ার আগে, এমুলেটর কনসোলে প্রমাণীকরণের প্রয়োজন হয়। auth_token অবশ্যই আপনার হোম ডিরেক্টরিতে থাকা .emulator_console_auth_token ফাইলের তথ্যের সাথে মিলতে হবে।

    যদি সেই ফাইলটি বিদ্যমান না থাকে, তাহলে telnet localhost console-port কমান্ডটি ফাইলটি তৈরি করে, যেটিতে এলোমেলোভাবে তৈরি একটি অথেনটিকেশন টোকেন থাকে। অথেনটিকেশন নিষ্ক্রিয় করতে, .emulator_console_auth_token ফাইল থেকে টোকেনটি মুছে ফেলুন অথবা ফাইলটি বিদ্যমান না থাকলে একটি খালি ফাইল তৈরি করুন।

  3. কনসোলে সংযুক্ত হওয়ার পর, কনসোল কমান্ডগুলো লিখুন।

    কনসোল কমান্ডের তালিকা দেখতে এবং নির্দিষ্ট কমান্ড সম্পর্কে জানতে help , help command বা help-verbose লিখুন।

  4. কনসোল সেশন থেকে বের হতে 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 100
    
  • network 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 80
    
  • network 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"} গেস্ট ওএস-এর নিজস্ব শেল কমান্ড চালায়

আঙুলের ছাপের সিমুলেশন এবং যাচাইকরণ

চিত্র ১. আঙুলের ছাপ দিয়ে যাচাইকরণ স্ক্রিন।

আপনার অ্যাপের জন্য ফিঙ্গারপ্রিন্ট অথেন্টিকেশন সিমুলেট এবং ভ্যালিডেট করতে ফিঙ্গার কমান্ডটি ব্যবহার করুন। এর জন্য আপনার এসডিকে টুলস ২৪.৩ বা তার উচ্চতর সংস্করণ এবং অ্যান্ড্রয়েড ৬.০ (এপিআই লেভেল ২৩) বা তার উচ্চতর সংস্করণ প্রয়োজন।

ফিঙ্গারপ্রিন্ট অথেন্টিকেশন সিমুলেট ও ​​ভ্যালিডেট করতে এই ধাপগুলো অনুসরণ করুন:

  1. আপনার যদি এখনও ফিঙ্গারপ্রিন্ট আইডি না থাকে, তাহলে সেটিংস > নিরাপত্তা > ফিঙ্গারপ্রিন্ট নির্বাচন করে এমুলেটরে একটি নতুন ফিঙ্গারপ্রিন্ট নথিভুক্ত করুন এবং নথিভুক্তকরণের নির্দেশাবলী অনুসরণ করুন।

  2. Set up your app to accept fingerprint authentication . After you perform this setup, your device displays the fingerprint authentication screen.

  3. While your app displays the fingerprint authentication screen, go to the console and enter the finger touch command and the fingerprint ID you created. This simulates a finger touch.

  4. Then, enter the finger remove command to simulate finger removal. Your app should respond as if a user touched and then removed their finger from the fingerprint sensor.