অ্যান্ড্রয়েড ডিবাগ ব্রিজ ( adb
) একটি বহুমুখী কমান্ড-লাইন টুল যা আপনাকে একটি ডিভাইসের সাথে যোগাযোগ করতে দেয়। adb
কমান্ড বিভিন্ন ধরনের ডিভাইস অ্যাকশনের সুবিধা দেয়, যেমন অ্যাপ ইনস্টল করা এবং ডিবাগ করা। adb
একটি ইউনিক্স শেল অ্যাক্সেস প্রদান করে যা আপনি একটি ডিভাইসে বিভিন্ন কমান্ড চালানোর জন্য ব্যবহার করতে পারেন। এটি একটি ক্লায়েন্ট-সার্ভার প্রোগ্রাম যা তিনটি উপাদান অন্তর্ভুক্ত করে:
- একটি ক্লায়েন্ট , যা কমান্ড পাঠায়। ক্লায়েন্ট আপনার ডেভেলপমেন্ট মেশিনে চলে। আপনি একটি
adb
কমান্ড জারি করে একটি কমান্ড-লাইন টার্মিনাল থেকে একটি ক্লায়েন্টকে আহ্বান করতে পারেন। - একটি ডেমন (adbd) , যা একটি ডিভাইসে কমান্ড চালায়। ডেমন প্রতিটি ডিভাইসে একটি পটভূমি প্রক্রিয়া হিসাবে চলে।
- একটি সার্ভার , যা ক্লায়েন্ট এবং ডেমনের মধ্যে যোগাযোগ পরিচালনা করে। সার্ভারটি আপনার ডেভেলপমেন্ট মেশিনে একটি ব্যাকগ্রাউন্ড প্রক্রিয়া হিসাবে চলে।
adb
অ্যান্ড্রয়েড SDK প্ল্যাটফর্ম টুলস প্যাকেজে অন্তর্ভুক্ত। SDK ম্যানেজার দিয়ে এই প্যাকেজটি ডাউনলোড করুন, যা এটিকে android_sdk /platform-tools/
এ ইনস্টল করে। আপনি যদি স্বতন্ত্র অ্যান্ড্রয়েড SDK প্ল্যাটফর্ম টুলস প্যাকেজ চান তবে এটি এখানে ডাউনলোড করুন ।
adb
এর মাধ্যমে ব্যবহারের জন্য একটি ডিভাইস সংযুক্ত করার তথ্যের জন্য, সাধারণ সমস্যাগুলির সমাধানের জন্য সংযোগ সহকারীকে কীভাবে ব্যবহার করতে হয়, একটি হার্ডওয়্যার ডিভাইসে অ্যাপগুলি চালান দেখুন।
কিভাবে adb কাজ করে
আপনি যখন একটি adb
ক্লায়েন্ট শুরু করেন, ক্লায়েন্ট প্রথমে পরীক্ষা করে যে একটি adb
সার্ভার প্রক্রিয়া ইতিমধ্যেই চলছে কিনা। যদি না থাকে তবে এটি সার্ভার প্রক্রিয়া শুরু করে। যখন সার্ভার শুরু হয়, তখন এটি স্থানীয় TCP পোর্ট 5037 এর সাথে আবদ্ধ হয় এবং adb
ক্লায়েন্টদের থেকে পাঠানো কমান্ড শোনে।
দ্রষ্টব্য: সমস্ত adb
ক্লায়েন্ট adb
সার্ভারের সাথে যোগাযোগ করতে পোর্ট 5037 ব্যবহার করে।
সার্ভার তারপর সমস্ত চলমান ডিভাইসের সাথে সংযোগ স্থাপন করে। এটি 5555 থেকে 5585 রেঞ্জের মধ্যে বিজোড়-সংখ্যাযুক্ত পোর্ট স্ক্যান করে এমুলেটরগুলি সনাক্ত করে, যা প্রথম 16টি এমুলেটর দ্বারা ব্যবহৃত পরিসর। যেখানে সার্ভার একটি adb
ডেমন (adbd) খুঁজে পায়, এটি সেই পোর্টের সাথে একটি সংযোগ স্থাপন করে।
প্রতিটি এমুলেটর একজোড়া ক্রমিক পোর্ট ব্যবহার করে — কনসোল সংযোগের জন্য একটি জোড়-সংখ্যাযুক্ত পোর্ট এবং adb
সংযোগের জন্য একটি বিজোড়-সংখ্যাযুক্ত পোর্ট। যেমন:
এমুলেটর 1, কনসোল: 5554
এমুলেটর 1, adb
: 5555
এমুলেটর 2, কনসোল: 5556
এমুলেটর 2, adb
: 5557
এবং তাই
যেমন দেখানো হয়েছে, পোর্ট 5555-এ adb
এর সাথে সংযুক্ত এমুলেটরটি সেই এমুলেটরের মতো যার কনসোল পোর্ট 5554-এ শোনে।
একবার সার্ভার সমস্ত ডিভাইসে সংযোগ স্থাপন করে, আপনি সেই ডিভাইসগুলি অ্যাক্সেস করতে adb
কমান্ড ব্যবহার করতে পারেন। যেহেতু সার্ভারটি ডিভাইসের সাথে সংযোগ পরিচালনা করে এবং একাধিক adb
ক্লায়েন্ট থেকে কমান্ড পরিচালনা করে, আপনি যেকোনো ক্লায়েন্ট বা স্ক্রিপ্ট থেকে যেকোনো ডিভাইস নিয়ন্ত্রণ করতে পারেন।
আপনার ডিভাইসে অ্যাডবি ডিবাগিং সক্ষম করুন
USB-এর মাধ্যমে সংযুক্ত একটি ডিভাইসের সাথে adb ব্যবহার করতে, আপনাকে অবশ্যই বিকাশকারী বিকল্পগুলির অধীনে ডিভাইস সিস্টেম সেটিংসে USB ডিবাগিং সক্ষম করতে হবে৷ Android 4.2 (API স্তর 17) এবং উচ্চতর, বিকাশকারী বিকল্পগুলির স্ক্রীনটি ডিফল্টরূপে লুকানো থাকে৷ এটি দৃশ্যমান করতে, বিকাশকারী বিকল্পগুলি সক্ষম করুন৷
আপনি এখন USB দিয়ে আপনার ডিভাইস সংযোগ করতে পারেন। আপনি android_sdk /platform-tools/
ডিরেক্টরি থেকে adb devices
সম্পাদন করে আপনার ডিভাইসটি সংযুক্ত কিনা তা যাচাই করতে পারেন। সংযুক্ত থাকলে, আপনি "ডিভাইস" হিসাবে তালিকাভুক্ত ডিভাইসের নাম দেখতে পাবেন।
দ্রষ্টব্য: আপনি যখন Android 4.2.2 (API স্তর 17) বা উচ্চতর চলমান একটি ডিভাইস সংযুক্ত করেন, তখন সিস্টেমটি একটি ডায়ালগ দেখায় যা জিজ্ঞাসা করে যে একটি RSA কী গ্রহণ করবেন কিনা যা এই কম্পিউটারের মাধ্যমে ডিবাগ করার অনুমতি দেয়৷ এই নিরাপত্তা ব্যবস্থা ব্যবহারকারীর ডিভাইসগুলিকে রক্ষা করে কারণ এটি নিশ্চিত করে যে USB ডিবাগিং এবং অন্যান্য adb কমান্ডগুলি কার্যকর করা যাবে না যদি না আপনি ডিভাইসটি আনলক করতে এবং ডায়ালগটি স্বীকার করতে সক্ষম হন।
USB এর মাধ্যমে একটি ডিভাইসের সাথে সংযোগ করার বিষয়ে আরও তথ্যের জন্য, একটি হার্ডওয়্যার ডিভাইসে অ্যাপ্লিকেশন চালান পড়ুন।
Wi-Fi এর মাধ্যমে একটি ডিভাইসের সাথে সংযোগ করুন৷
দ্রষ্টব্য: নীচের নির্দেশাবলী Android 11 (API স্তর 30) চালিত Wear ডিভাইসগুলিতে প্রযোজ্য নয়। আরও তথ্যের জন্য একটি Wear OS অ্যাপ ডিবাগ করার নির্দেশিকা দেখুন।
অ্যান্ড্রয়েড 11 (এপিআই লেভেল 30) এবং উচ্চতর সমর্থন অ্যান্ড্রয়েড ডিবাগ ব্রিজ (এডিবি) ব্যবহার করে আপনার ওয়ার্কস্টেশন থেকে ওয়্যারলেসভাবে আপনার অ্যাপ স্থাপন এবং ডিবাগ করা। উদাহরণস্বরূপ, আপনি USB এর মাধ্যমে আপনার ডিভাইসটিকে শারীরিকভাবে সংযুক্ত করার প্রয়োজন ছাড়াই একাধিক দূরবর্তী ডিভাইসে আপনার ডিবাগযোগ্য অ্যাপ স্থাপন করতে পারেন। এটি ড্রাইভার ইনস্টলেশনের মতো সাধারণ USB সংযোগ সমস্যাগুলি মোকাবেলা করার প্রয়োজনীয়তা দূর করে।
আপনি ওয়্যারলেস ডিবাগিং ব্যবহার শুরু করার আগে, নিম্নলিখিতগুলি করুন:
আপনার ওয়ার্কস্টেশন এবং ডিভাইস একই ওয়্যারলেস নেটওয়ার্কের সাথে সংযুক্ত আছে তা নিশ্চিত করুন।
নিশ্চিত করুন যে আপনার ডিভাইসটি Android 11 (API লেভেল 30) বা ফোনের জন্য উচ্চতর বা Android 13 (API লেভেল 33) বা TV এবং WearOS-এর জন্য উচ্চতর চালাচ্ছে। আরও তথ্যের জন্য, আপনার অ্যান্ড্রয়েড সংস্করণ দেখুন এবং আপডেট করুন ।
যদি IDE ব্যবহার করেন, তাহলে নিশ্চিত করুন যে আপনার Android Studio এর সর্বশেষ সংস্করণ ইনস্টল করা আছে। আপনি এখানে এটি ডাউনলোড করতে পারেন.
আপনার ওয়ার্কস্টেশনে, SDK প্ল্যাটফর্ম টুলের সর্বশেষ সংস্করণে আপডেট করুন।
ওয়্যারলেস ডিবাগিং ব্যবহার করতে, আপনাকে অবশ্যই একটি QR কোড বা একটি পেয়ারিং কোড ব্যবহার করে আপনার ডিভাইসটিকে আপনার ওয়ার্কস্টেশনের সাথে যুক্ত করতে হবে৷ আপনার ওয়ার্কস্টেশন এবং ডিভাইস অবশ্যই একই ওয়্যারলেস নেটওয়ার্কের সাথে সংযুক্ত থাকতে হবে। আপনার ডিভাইসের সাথে সংযোগ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
আপনার ডিভাইসে বিকাশকারী বিকল্পগুলি সক্ষম করুন ৷
অ্যান্ড্রয়েড স্টুডিও খুলুন এবং রান কনফিগারেশন মেনু থেকে Wi-Fi ব্যবহার করে ডিভাইস জোড়া নির্বাচন করুন।
Wi-Fi উইন্ডোতে জোড়া ডিভাইসগুলি পপ আপ হয়, যেমন চিত্র 2 এ দেখানো হয়েছে।
আপনার ডিভাইসে, ওয়্যারলেস ডিবাগিং আলতো চাপুন এবং আপনার ডিভাইস যুক্ত করুন:
আপনার ডিভাইসটিকে একটি QR কোডের সাথে পেয়ার করতে, QR কোডের সাথে পেয়ার ডিভাইস নির্বাচন করুন এবং চিত্র 2-এ দেখানো Wi-Fi পপআপের মাধ্যমে পেয়ার ডিভাইসগুলি থেকে প্রাপ্ত QR কোডটি স্ক্যান করুন৷
পেয়ারিং কোডের সাথে আপনার ডিভাইস পেয়ার করতে, Wi-Fi পপআপের মাধ্যমে পেয়ার ডিভাইস থেকে পেয়ারিং কোডের সাথে পেয়ার ডিভাইস নির্বাচন করুন। আপনার ডিভাইসে, পেয়ারিং কোড ব্যবহার করে পেয়ার নির্বাচন করুন এবং প্রদত্ত ছয়-সংখ্যার কোডটি নোট করুন। একবার আপনার ডিভাইসটি Wi-Fi উইন্ডোতে পেয়ার ডিভাইসে প্রদর্শিত হলে, আপনি পেয়ার নির্বাচন করতে পারেন এবং আপনার ডিভাইসে দেখানো ছয়-সংখ্যার কোডটি প্রবেশ করতে পারেন।
আপনার ডিভাইস যুক্ত হওয়ার পরে, আপনি আপনার ডিভাইসে আপনার অ্যাপ স্থাপন করার চেষ্টা করতে পারেন।
একটি ভিন্ন ডিভাইস যুক্ত করতে বা আপনার ওয়ার্কস্টেশনে বর্তমান ডিভাইসটি ভুলে যেতে, আপনার ডিভাইসে ওয়্যারলেস ডিবাগিং এ নেভিগেট করুন। পেয়ারড ডিভাইসের অধীনে আপনার ওয়ার্কস্টেশনের নাম আলতো চাপুন এবং ভুলে যান নির্বাচন করুন।
আপনি যদি ওয়্যারলেস ডিবাগিং দ্রুত চালু এবং বন্ধ করতে চান, আপনি ওয়্যারলেস ডিবাগিংয়ের জন্য দ্রুত সেটিংস ডেভেলপার টাইলস ব্যবহার করতে পারেন, যা বিকাশকারী বিকল্প > দ্রুত সেটিংস বিকাশকারী টাইলস- এ পাওয়া যায়।
কমান্ড লাইন ব্যবহার করে Wi-Fi সংযোগ
বিকল্পভাবে, অ্যান্ড্রয়েড স্টুডিও ছাড়া কমান্ড লাইন ব্যবহার করে আপনার ডিভাইসে সংযোগ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
আপনার ডিভাইসে বিকাশকারী বিকল্পগুলি সক্ষম করুন, যেমনটি আগে বর্ণিত হয়েছে৷
আপনার ডিভাইসে ওয়্যারলেস ডিবাগিং সক্ষম করুন, যেমনটি আগে বর্ণিত হয়েছে।
আপনার ওয়ার্কস্টেশনে, একটি টার্মিনাল উইন্ডো খুলুন এবং
android_sdk/platform-tools
এ নেভিগেট করুন।পেয়ারিং কোডের সাথে পেয়ার ডিভাইস নির্বাচন করে আপনার IP ঠিকানা, পোর্ট নম্বর এবং পেয়ারিং কোড খুঁজুন। ডিভাইসে প্রদর্শিত IP ঠিকানা, পোর্ট নম্বর এবং পেয়ারিং কোড নোট করুন।
আপনার ওয়ার্কস্টেশনের টার্মিনালে,
adb pair ipaddr:port
চালান। উপরে থেকে আইপি ঠিকানা এবং পোর্ট নম্বর ব্যবহার করুন।অনুরোধ করা হলে, পেয়ারিং কোড লিখুন, যেমন নীচে দেখানো হয়েছে।
বেতার সংযোগ সমস্যা সমাধান করুন
আপনার ডিভাইসে ওয়্যারলেসভাবে সংযোগ করতে সমস্যা হলে, সমস্যা সমাধানের জন্য নিম্নলিখিত সমস্যা সমাধানের পদক্ষেপগুলি চেষ্টা করুন।
আপনার ওয়ার্কস্টেশন এবং ডিভাইস পূর্বশর্তগুলি পূরণ করে কিনা তা পরীক্ষা করুন
ওয়ার্কস্টেশন এবং ডিভাইস এই বিভাগের শুরুতে তালিকাভুক্ত পূর্বশর্তগুলি পূরণ করে কিনা তা পরীক্ষা করুন৷
অন্যান্য পরিচিত সমস্যা জন্য পরীক্ষা করুন
ওয়্যারলেস ডিবাগিং (এডিবি বা অ্যান্ড্রয়েড স্টুডিও সহ) এবং কীভাবে সেগুলি সমাধান করা যায় তার বর্তমান পরিচিত সমস্যাগুলির একটি তালিকা নীচে দেওয়া হল:
Wi-Fi সংযোগ হচ্ছে না : নিরাপদ Wi-Fi নেটওয়ার্ক, যেমন কর্পোরেট ওয়াই-ফাই নেটওয়ার্ক, p2p সংযোগগুলি ব্লক করতে পারে এবং আপনাকে Wi-Fi এর মাধ্যমে সংযোগ করতে দেয় না৷ একটি কেবল বা অন্য (নন-কর্প) Wi-Fi নেটওয়ার্কের সাথে সংযোগ করার চেষ্টা করুন৷
adb connect ip : port
ওভার টিসিপি/আইপি (প্রাথমিক ইউএসবি কানেকশন অনুসরণ করে) আরেকটি বিকল্প, যদি নন-কর্প নেটওয়ার্ক অবলম্বন করা একটি বিকল্প।adb
ওভার Wi-Fi কখনও কখনও স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায় : ডিভাইসটি Wi-Fi নেটওয়ার্ক সুইচ করলে বা নেটওয়ার্ক থেকে সংযোগ বিচ্ছিন্ন হলে এটি ঘটতে পারে৷ সমাধান করতে, নেটওয়ার্কে পুনরায় সংযোগ করুন৷সফলভাবে জোড়া লাগানোর পর ডিভাইস সংযোগ হচ্ছে না :
adb
জোড়া ডিভাইস আবিষ্কার করতে এবং স্বয়ংক্রিয়ভাবে সংযোগ করতে mDNS-এর উপর নির্ভর করে। যদি আপনার নেটওয়ার্ক বা ডিভাইস কনফিগারেশন mDNS সমর্থন না করে বা এটি নিষ্ক্রিয় করে থাকে, তাহলে আপনাকেadb connect ip : port
ব্যবহার করে ডিভাইসের সাথে ম্যানুয়ালি সংযোগ করতে হবে।
একটি প্রাথমিক USB সংযোগের পরে একটি ডিভাইসের সাথে ওয়্যারলেসভাবে সংযোগ করুন (কেবলমাত্র Android 10 এবং তার নিচের সংস্করণগুলিতে উপলব্ধ)
দ্রষ্টব্য: এই ওয়ার্কফ্লোটি Android 11 (এবং উচ্চতর) এর ক্ষেত্রেও প্রযোজ্য, সতর্কতা হল যে এটিতে একটি *প্রাথমিক* সংযোগও রয়েছে।
দ্রষ্টব্য: নিম্নলিখিত নির্দেশাবলী Android 10 (API স্তর 29) বা তার নিচের চলমান Wear ডিভাইসগুলিতে প্রযোজ্য নয়৷ আরও তথ্যের জন্য একটি Wear OS অ্যাপ ডিবাগ করার নির্দেশিকা দেখুন।
adb
সাধারণত USB এর মাধ্যমে ডিভাইসের সাথে যোগাযোগ করে, তবে আপনি Wi-Fi এর মাধ্যমে adb
ব্যবহার করতে পারেন। অ্যান্ড্রয়েড 10 (এপিআই লেভেল 29) বা তার নিচে চলমান একটি ডিভাইস সংযোগ করতে, ইউএসবি-তে এই প্রাথমিক পদক্ষেপগুলি অনুসরণ করুন:
- আপনার অ্যান্ড্রয়েড ডিভাইস এবং
adb
হোস্ট কম্পিউটারকে একটি সাধারণ ওয়াই-ফাই নেটওয়ার্কে সংযুক্ত করুন৷ - একটি USB তারের সাহায্যে হোস্ট কম্পিউটারের সাথে ডিভাইসটিকে সংযুক্ত করুন৷
- পোর্ট 5555 এ একটি TCP/IP সংযোগের জন্য শোনার জন্য লক্ষ্য ডিভাইস সেট করুন:
adb tcpip 5555
- লক্ষ্য ডিভাইস থেকে USB তারের সংযোগ বিচ্ছিন্ন করুন.
- অ্যান্ড্রয়েড ডিভাইসের আইপি ঠিকানা খুঁজুন। উদাহরণস্বরূপ, একটি Nexus ডিভাইসে, আপনি সেটিংস > ট্যাবলেট সম্পর্কে (বা ফোন সম্পর্কে ) > স্থিতি > IP ঠিকানাতে IP ঠিকানা খুঁজে পেতে পারেন।
- আইপি ঠিকানা দ্বারা ডিভাইসের সাথে সংযোগ করুন:
adb connect device_ip_address:5555
- নিশ্চিত করুন যে আপনার হোস্ট কম্পিউটার লক্ষ্য ডিভাইসের সাথে সংযুক্ত আছে:
$ adb devices List of devices attached device_ip_address:5555 device
দ্রষ্টব্য: সতর্ক থাকুন যে সমস্ত অ্যাক্সেস পয়েন্ট উপযুক্ত নয়। আপনাকে একটি অ্যাক্সেস পয়েন্ট ব্যবহার করতে হতে পারে যার ফায়ারওয়াল adb
সমর্থন করার জন্য সঠিকভাবে কনফিগার করা হয়েছে।
আপনার ডিভাইস এখন adb
এর সাথে সংযুক্ত।
আপনার ডিভাইসে adb
সংযোগ হারিয়ে গেলে:
- নিশ্চিত করুন যে আপনার হোস্ট এখনও আপনার Android ডিভাইসের মতো একই Wi-Fi নেটওয়ার্কের সাথে সংযুক্ত রয়েছে৷
-
adb connect
ধাপটি আবার সম্পাদন করে পুনরায় সংযোগ করুন। - যদি এটি কাজ না করে, আপনার
adb
হোস্ট রিসেট করুন:adb kill-server
তারপর আবার শুরু থেকে শুরু করুন।
ডিভাইসের জন্য ক্যোয়ারী
adb
কমান্ড ইস্যু করার আগে, adb
সার্ভারের সাথে কোন ডিভাইসের দৃষ্টান্ত সংযুক্ত আছে তা জেনে নেওয়া সহায়ক। devices
কমান্ড ব্যবহার করে সংযুক্ত ডিভাইসের একটি তালিকা তৈরি করুন:
adb devices -l
প্রতিক্রিয়া হিসাবে, adb
প্রতিটি ডিভাইসের জন্য এই স্থিতি তথ্য মুদ্রণ করে:
- সিরিয়াল নম্বর:
adb
ডিভাইসটিকে তার পোর্ট নম্বর দ্বারা অনন্যভাবে সনাক্ত করার জন্য একটি স্ট্রিং তৈরি করে। এখানে একটি উদাহরণ সিরিয়াল নম্বর:emulator-5554
- অবস্থা: ডিভাইসের সংযোগের অবস্থা নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
-
offline
: ডিভাইসটিadb
এর সাথে সংযুক্ত নয় বা সাড়া দিচ্ছে না। -
device
: ডিভাইসটিadb
সার্ভারের সাথে সংযুক্ত। মনে রাখবেন যে এই অবস্থাটি বোঝায় না যে অ্যান্ড্রয়েড সিস্টেমটি সম্পূর্ণরূপে বুট হয়েছে এবং চালু আছে, কারণ সিস্টেমটি বুট করার সময় ডিভাইসটিadb
এর সাথে সংযোগ করে। বুট-আপের পরে, এটি একটি ডিভাইসের স্বাভাবিক অপারেশনাল অবস্থা। -
no device
: কোনো ডিভাইস সংযুক্ত নেই।
-
- বর্ণনা: আপনি যদি
-l
বিকল্পটি অন্তর্ভুক্ত করেন,devices
কমান্ড আপনাকে বলে যে ডিভাইসটি কী। এই তথ্যটি সহায়ক যখন আপনার একাধিক ডিভাইস সংযুক্ত থাকে যাতে আপনি তাদের আলাদা করে বলতে পারেন৷
নিম্নলিখিত উদাহরণটি devices
কমান্ড এবং এর আউটপুট দেখায়। তিনটি ডিভাইস চলছে। তালিকার প্রথম দুটি লাইন হল এমুলেটর, এবং তৃতীয় লাইন হল একটি হার্ডওয়্যার ডিভাইস যা কম্পিউটারের সাথে সংযুক্ত।
$ adb devices List of devices attached emulator-5556 device product:sdk_google_phone_x86_64 model:Android_SDK_built_for_x86_64 device:generic_x86_64 emulator-5554 device product:sdk_google_phone_x86 model:Android_SDK_built_for_x86 device:generic_x86 0a388e93 device usb:1-1 product:razor model:Nexus_7 device:flo
এমুলেটর তালিকাভুক্ত নয়
adb devices
কমান্ডের একটি কর্নার-কেস কমান্ড সিকোয়েন্স রয়েছে যার কারণে এমুলেটরগুলি আপনার ডেস্কটপে দৃশ্যমান থাকা সত্ত্বেও চলমান এমুলেটরগুলি adb devices
আউটপুটে দেখা যায় না। এটি ঘটে যখন নিম্নলিখিত সমস্ত শর্ত সত্য হয়:
-
adb
সার্ভার চলছে না। - আপনি 5554 এবং 5584 এর মধ্যে বিজোড়-সংখ্যাযুক্ত পোর্ট মান সহ
-port
বা-ports
বিকল্পের সাথেemulator
কমান্ডটি ব্যবহার করেন। - আপনার বেছে নেওয়া বিজোড়-সংখ্যার পোর্টটি ব্যস্ত নয়, তাই পোর্ট সংযোগটি নির্দিষ্ট পোর্ট নম্বরে করা যেতে পারে — অথবা, যদি এটি ব্যস্ত থাকে, তাহলে এমুলেটরটি অন্য পোর্টে স্যুইচ করে যা 2-এ প্রয়োজনীয়তা পূরণ করে।
- আপনি এমুলেটর শুরু করার পরে আপনি
adb
সার্ভার শুরু করবেন।
এই পরিস্থিতি এড়াতে একটি উপায় হল এমুলেটরকে তার নিজস্ব পোর্ট বেছে নিতে দেওয়া এবং একবারে 16 টির বেশি এমুলেটর চালানো না। আরেকটি উপায় হল emulator
কমান্ড ব্যবহার করার আগে সর্বদা adb
সার্ভার চালু করা, যেমনটি নিম্নলিখিত উদাহরণগুলিতে ব্যাখ্যা করা হয়েছে।
উদাহরণ 1: নিম্নলিখিত কমান্ডের ক্রমানুসারে, adb devices
কমান্ড adb
সার্ভার শুরু করে, কিন্তু ডিভাইসের তালিকা প্রদর্শিত হয় না।
adb
সার্ভার বন্ধ করুন এবং দেখানো ক্রমে নিম্নলিখিত কমান্ড লিখুন। AVD নামের জন্য, আপনার সিস্টেম থেকে একটি বৈধ AVD নাম প্রদান করুন। AVD নামের একটি তালিকা পেতে, emulator -list-avds
টাইপ করুন। emulator
কমান্ডটি android_sdk /tools
ডিরেক্টরিতে রয়েছে।
$ adb kill-server $ emulator -avd Nexus_6_API_25 -port 5555 $ adb devices List of devices attached * daemon not running. starting it now on port 5037 * * daemon started successfully *
উদাহরণ 2: নিম্নলিখিত কমান্ড ক্রমানুসারে, adb devices
ডিভাইসের তালিকা প্রদর্শন করে কারণ adb
সার্ভারটি প্রথমে শুরু হয়েছিল।
adb devices
আউটপুটে এমুলেটর দেখতে, adb
সার্ভার বন্ধ করুন এবং তারপরে emulator
কমান্ড ব্যবহার করার পরে এবং adb devices
কমান্ড ব্যবহার করার আগে এটি আবার শুরু করুন, নিম্নরূপ:
$ adb kill-server $ emulator -avd Nexus_6_API_25 -port 5557 $ adb start-server $ adb devices List of devices attached emulator-5557 device
এমুলেটর কমান্ড-লাইন বিকল্পগুলি সম্পর্কে আরও তথ্যের জন্য, কমান্ড-লাইন স্টার্টআপ বিকল্পগুলি দেখুন।
একটি নির্দিষ্ট ডিভাইসে কমান্ড পাঠান
একাধিক ডিভাইস চলমান থাকলে, adb
কমান্ড ইস্যু করার সময় আপনাকে অবশ্যই লক্ষ্য ডিভাইসটি নির্দিষ্ট করতে হবে। লক্ষ্য নির্দিষ্ট করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- লক্ষ্যের সিরিয়াল নম্বর পেতে
devices
কমান্ড ব্যবহার করুন। - আপনার সিরিয়াল নম্বর হয়ে গেলে, সিরিয়াল নম্বর নির্দিষ্ট করতে
adb
কমান্ডের সাথে-s
বিকল্পটি ব্যবহার করুন।- আপনি যদি অনেকগুলি
adb
কমান্ড ইস্যু করতে যাচ্ছেন, তাহলে আপনি ক্রমিক নম্বর ধারণ করার জন্য$ANDROID_SERIAL
পরিবেশ পরিবর্তনশীল সেট করতে পারেন। - আপনি যদি
-s
এবং$ANDROID_SERIAL
উভয়ই ব্যবহার করেন,-s
ওভাররাইড করে$ANDROID_SERIAL
।
- আপনি যদি অনেকগুলি
নিম্নলিখিত উদাহরণে, সংযুক্ত ডিভাইসের তালিকা পাওয়া যায়, এবং তারপরে সেই ডিভাইসে helloWorld.apk
ইনস্টল করতে ডিভাইসগুলির একটির সিরিয়াল নম্বর ব্যবহার করা হয়:
$ adb devices List of devices attached emulator-5554 device emulator-5555 device 0.0.0.0:6520 device # To install on emulator-5555 $ adb -s emulator-5555 install helloWorld.apk # To install on 0.0.0.0:6520 $ adb -s 0.0.0.0:6520 install helloWorld.apk
দ্রষ্টব্য: আপনি একাধিক ডিভাইস উপলব্ধ থাকাকালীন একটি টার্গেট ডিভাইস নির্দিষ্ট না করে একটি কমান্ড ইস্যু করলে, adb
একটি ত্রুটি প্রদর্শন করে "adb: একাধিক ডিভাইস/এমুলেটর"।
আপনার যদি একাধিক ডিভাইস উপলব্ধ থাকে তবে শুধুমাত্র একটি এমুলেটর হয়, তাহলে এমুলেটরে কমান্ড পাঠাতে -e
বিকল্পটি ব্যবহার করুন। যদি একাধিক ডিভাইস থাকে কিন্তু শুধুমাত্র একটি হার্ডওয়্যার ডিভাইস সংযুক্ত থাকে, তাহলে হার্ডওয়্যার ডিভাইসে কমান্ড পাঠাতে -d
বিকল্পটি ব্যবহার করুন।
একটি অ্যাপ ইনস্টল করুন
আপনি install
কমান্ড সহ একটি এমুলেটর বা সংযুক্ত ডিভাইসে একটি APK ইনস্টল করতে adb
ব্যবহার করতে পারেন:
adb install path_to_apk
আপনি একটি পরীক্ষা APK ইনস্টল করার সময় install
কমান্ডের সাথে -t
বিকল্পটি ব্যবহার করতে হবে। আরও তথ্যের জন্য, দেখুন -t
।
একাধিক APK ইনস্টল করতে install-multiple
ব্যবহার করুন। আপনি যদি প্লে কনসোল থেকে আপনার অ্যাপের জন্য একটি নির্দিষ্ট ডিভাইসের জন্য সমস্ত APK ডাউনলোড করেন এবং এমুলেটর বা শারীরিক ডিভাইসে ইনস্টল করতে চান তবে এটি কার্যকর।
আপনি একটি এমুলেটর/ডিভাইস ইনস্ট্যান্সে ইনস্টল করতে পারেন এমন একটি APK ফাইল কীভাবে তৈরি করবেন সে সম্পর্কে আরও তথ্যের জন্য, আপনার অ্যাপ তৈরি করুন এবং চালান দেখুন।
দ্রষ্টব্য: আপনি যদি অ্যান্ড্রয়েড স্টুডিও ব্যবহার করেন, তাহলে এমুলেটর বা ডিভাইসে আপনার অ্যাপ ইনস্টল করার জন্য আপনাকে সরাসরি adb
ব্যবহার করতে হবে না। পরিবর্তে, Android স্টুডিও আপনার জন্য অ্যাপটির প্যাকেজিং এবং ইনস্টলেশন পরিচালনা করে।
পোর্ট ফরওয়ার্ডিং সেট আপ করুন
ইচ্ছামত পোর্ট ফরওয়ার্ডিং সেট আপ করতে forward
কমান্ডটি ব্যবহার করুন, যা একটি নির্দিষ্ট হোস্ট পোর্টের অনুরোধগুলিকে একটি ডিভাইসের একটি ভিন্ন পোর্টে ফরোয়ার্ড করে। নিম্নলিখিত উদাহরণটি হোস্ট পোর্ট 6100 এর ডিভাইস পোর্ট 7100 এ ফরওয়ার্ডিং সেট আপ করে:
adb forward tcp:6100 tcp:7100
নিম্নলিখিত উদাহরণটি হোস্ট পোর্ট 6100-কে স্থানীয়:logd-এ ফরওয়ার্ডিং সেট আপ করে:
adb forward tcp:6100 local:logd
আপনি ডিভাইসে একটি প্রদত্ত পোর্টে কি পাঠানো হচ্ছে তা নির্ধারণ করার চেষ্টা করলে এটি কার্যকর হতে পারে। সমস্ত প্রাপ্ত ডেটা সিস্টেম-লগিং ডেমনে লেখা হবে এবং ডিভাইস লগগুলিতে প্রদর্শিত হবে।
একটি ডিভাইস থেকে ফাইল কপি করুন
একটি ডিভাইস থেকে ফাইল কপি করতে pull
এবং push
কমান্ড ব্যবহার করুন। install
কমান্ডের বিপরীতে, যা শুধুমাত্র একটি নির্দিষ্ট স্থানে একটি APK ফাইল অনুলিপি করে, pull
এবং push
কমান্ডগুলি আপনাকে ডিভাইসের যেকোনো অবস্থানে নির্বিচারে ডিরেক্টরি এবং ফাইলগুলি অনুলিপি করতে দেয়।
ডিভাইস থেকে একটি ফাইল বা ডিরেক্টরি এবং এর সাব-ডিরেক্টরি অনুলিপি করতে, নিম্নলিখিতগুলি করুন:
adb pull remote local
ডিভাইসে একটি ফাইল বা ডিরেক্টরি এবং এর সাব-ডিরেক্টরি অনুলিপি করতে, নিম্নলিখিতগুলি করুন:
adb push local remote
আপনার ডেভেলপমেন্ট মেশিনে (স্থানীয়) এবং ডিভাইসে (দূরবর্তী) টার্গেট ফাইল/ডিরেক্টরীতে পাথ দিয়ে local
এবং remote
প্রতিস্থাপন করুন। যেমন:
adb push myfile.txt /sdcard/myfile.txt
অ্যাডবি সার্ভার বন্ধ করুন
কিছু ক্ষেত্রে, আপনাকে adb
সার্ভার প্রক্রিয়াটি বন্ধ করতে হবে এবং তারপর সমস্যাটি সমাধান করতে এটি পুনরায় চালু করতে হবে। উদাহরণস্বরূপ, যদি adb
একটি আদেশে সাড়া না দেয় তাহলে এটি হতে পারে।
adb
সার্ভার বন্ধ করতে, adb kill-server
কমান্ড ব্যবহার করুন। তারপর আপনি অন্য কোন adb
কমান্ড জারি করে সার্ভার পুনরায় চালু করতে পারেন।
adb কমান্ড ইস্যু করুন
আপনার ডেভেলপমেন্ট মেশিনে একটি কমান্ড লাইন থেকে বা নিম্নলিখিত ব্যবহার করে একটি স্ক্রিপ্ট থেকে adb
কমান্ড ইস্যু করুন:
adb [-d | -e | -s serial_number] command
শুধুমাত্র একটি এমুলেটর চলমান থাকলে বা শুধুমাত্র একটি ডিভাইস সংযুক্ত থাকলে, ডিফল্টরূপে সেই ডিভাইসে adb
কমান্ড পাঠানো হয়। যদি একাধিক এমুলেটর চলমান থাকে এবং/অথবা একাধিক ডিভাইস সংযুক্ত থাকে, তাহলে আপনাকে -d
, -e
, বা -s
বিকল্পটি ব্যবহার করতে হবে লক্ষ্য ডিভাইসটি নির্দিষ্ট করতে যেখানে কমান্ডটি নির্দেশিত হবে।
আপনি নিম্নলিখিত কমান্ড ব্যবহার করে সমস্ত সমর্থিত adb
কমান্ডের একটি বিস্তারিত তালিকা দেখতে পারেন:
adb --help
শেল কমান্ড ইস্যু করুন
আপনি adb
এর মাধ্যমে ডিভাইস কমান্ড ইস্যু করতে বা একটি ইন্টারেক্টিভ শেল শুরু করতে shell
কমান্ড ব্যবহার করতে পারেন। একটি একক কমান্ড ইস্যু করতে, এই মত shell
কমান্ড ব্যবহার করুন:
adb [-d |-e | -s serial_number] shell shell_command
একটি ডিভাইসে একটি ইন্টারেক্টিভ শেল শুরু করতে, এই মত shell
কমান্ড ব্যবহার করুন:
adb [-d | -e | -s serial_number] shell
একটি ইন্টারেক্টিভ শেল থেকে প্রস্থান করতে, Control+D
টিপুন বা exit
টাইপ করুন।
অ্যান্ড্রয়েড বেশিরভাগ সাধারণ ইউনিক্স কমান্ড-লাইন সরঞ্জাম সরবরাহ করে। উপলব্ধ সরঞ্জামগুলির একটি তালিকার জন্য, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
adb shell ls /system/bin
--help
আর্গুমেন্টের মাধ্যমে বেশিরভাগ কমান্ডের জন্য সাহায্য পাওয়া যায়। অনেক শেল কমান্ড টয়বক্স দ্বারা সরবরাহ করা হয়। toybox --help
এর মাধ্যমে সমস্ত toybox কমান্ডের জন্য প্রযোজ্য সাধারণ সাহায্য পাওয়া যায়।
অ্যান্ড্রয়েড প্ল্যাটফর্ম টুল 23 এবং উচ্চতরের সাথে, adb
ssh(1)
কমান্ডের মতো আর্গুমেন্ট পরিচালনা করে। এই পরিবর্তনটি কমান্ড ইনজেকশনের অনেক সমস্যার সমাধান করেছে এবং শেল মেটাক্যারেক্টার ধারণকারী কমান্ডগুলিকে নিরাপদে চালানো সম্ভব করে তোলে, যেমন adb install Let\'sGo.apk
। এই পরিবর্তনের অর্থ হল শেল মেটাক্যারেক্টার ধারণ করে এমন যেকোনো কমান্ডের ব্যাখ্যাও পরিবর্তিত হয়েছে।
উদাহরণস্বরূপ, adb shell setprop key ' two words '
এখন একটি ত্রুটি, কারণ উদ্ধৃতিগুলি স্থানীয় শেল দ্বারা গ্রাস করা হয় এবং ডিভাইসটি adb shell setprop key two words
দেখতে পায়। কমান্ডটি কাজ করার জন্য, দুইবার উদ্ধৃতি করুন, একবার স্থানীয় শেলের জন্য এবং একবার দূরবর্তী শেলের জন্য, যেমন আপনি ssh(1)
দিয়ে করেন। উদাহরণস্বরূপ, adb shell setprop key "' two words '"
কাজ করে কারণ স্থানীয় শেলটি উদ্ধৃতির বাইরের স্তরটি নেয় এবং ডিভাইসটি এখনও উদ্ধৃতির ভিতরের স্তরটি দেখতে পায়: setprop key 'two words'
। পালানোও একটি বিকল্প, তবে দুবার উদ্ধৃত করা সাধারণত সহজ।
এছাড়াও Logcat কমান্ড-লাইন টুল দেখুন, যা সিস্টেম লগ নিরীক্ষণের জন্য দরকারী।
অ্যাক্টিভিটি ম্যানেজারকে কল করুন
একটি adb
শেলের মধ্যে, আপনি বিভিন্ন সিস্টেম ক্রিয়া সম্পাদনের জন্য কার্যকলাপ পরিচালক ( am
) টুলের সাথে কমান্ড ইস্যু করতে পারেন, যেমন একটি কার্যকলাপ শুরু করা, একটি প্রক্রিয়া জোর করে বন্ধ করা, একটি উদ্দেশ্য সম্প্রচার করা, ডিভাইসের স্ক্রীন বৈশিষ্ট্যগুলি পরিবর্তন করা এবং আরও অনেক কিছু।
একটি শেল থাকাকালীন, am
সিনট্যাক্স হল:
am command
আপনি দূরবর্তী শেল প্রবেশ না করে সরাসরি adb
থেকে একটি কার্যকলাপ পরিচালক কমান্ড ইস্যু করতে পারেন। যেমন:
adb shell am start -a android.intent.action.VIEW
আদেশ | বর্ণনা |
---|---|
start [ options ] intent | intent দ্বারা নির্দিষ্ট একটি Activity শুরু করুন।উদ্দেশ্য আর্গুমেন্টের জন্য স্পেসিফিকেশন দেখুন। বিকল্পগুলি হল:
|
startservice [ options ] intent | intent দ্বারা নির্দিষ্ট Service শুরু করুন।উদ্দেশ্য আর্গুমেন্টের জন্য স্পেসিফিকেশন দেখুন। বিকল্পগুলি হল:
|
force-stop package | package সাথে যুক্ত সবকিছু জোর করে বন্ধ করুন। |
kill [ options ] package | package সাথে যুক্ত সমস্ত প্রসেস মেরে ফেলুন। এই কমান্ডটি কেবলমাত্র সেই প্রক্রিয়াগুলিকে হত্যা করে যা হত্যা করা নিরাপদ এবং এটি ব্যবহারকারীর অভিজ্ঞতাকে প্রভাবিত করবে না।বিকল্পগুলি হল:
|
kill-all | সমস্ত ব্যাকগ্রাউন্ড প্রসেস মেরে ফেলুন। |
broadcast [ options ] intent | একটি সম্প্রচার অভিপ্রায় ইস্যু. উদ্দেশ্য আর্গুমেন্টের জন্য স্পেসিফিকেশন দেখুন। বিকল্পগুলি হল:
|
instrument [ options ] component | একটি Instrumentation উদাহরণ দিয়ে পর্যবেক্ষণ শুরু করুন। সাধারণত লক্ষ্য component ফর্ম test_package / runner_class ।বিকল্পগুলি হল:
|
profile start process file | process প্রোফাইলার শুরু করুন, file ফলাফল লিখুন। |
profile stop process | process প্রোফাইলার বন্ধ করুন। |
dumpheap [ options ] process file | process গাদা ডাম্প করুন, file লিখুন।বিকল্পগুলি হল:
|
set-debug-app [ options ] package | ডিবাগ করার জন্য অ্যাপ package সেট করুন।বিকল্পগুলি হল:
|
clear-debug-app | set-debug-app দিয়ে ডিবাগ করার জন্য আগের সেটটি সাফ করুন। |
monitor [ options ] | ক্র্যাশ বা ANR-এর জন্য পর্যবেক্ষণ শুরু করুন। বিকল্পগুলি হল:
|
screen-compat {on | off} package | package পর্দা সামঞ্জস্যপূর্ণ মোড নিয়ন্ত্রণ করুন। |
display-size [reset | width x height ] | ডিভাইস প্রদর্শনের আকার ওভাররাইড করুন। এই কমান্ডটি একটি বড় স্ক্রীন সহ একটি ডিভাইস ব্যবহার করে একটি ছোট স্ক্রীন রেজোলিউশনের অনুকরণ করে বিভিন্ন স্ক্রীন সাইজ জুড়ে আপনার অ্যাপটি পরীক্ষা করার জন্য সহায়ক এবং এর বিপরীতে। উদাহরণ: |
display-density dpi | ডিভাইস প্রদর্শনের ঘনত্ব ওভাররাইড করুন। এই কমান্ডটি কম ঘনত্বের স্ক্রীন ব্যবহার করে উচ্চ-ঘনত্বের স্ক্রীন পরিবেশের অনুকরণ করে বিভিন্ন স্ক্রীনের ঘনত্ব জুড়ে আপনার অ্যাপ পরীক্ষা করার জন্য সহায়ক। উদাহরণ: |
to-uri intent | একটি URI হিসাবে প্রদত্ত অভিপ্রায় স্পেসিফিকেশন মুদ্রণ করুন. |
to-intent-uri intent | প্রদত্ত অভিপ্রায় স্পেসিফিকেশন একটি intent: URI. |
উদ্দেশ্য আর্গুমেন্ট জন্য স্পেসিফিকেশন
অ্যাক্টিভিটি ম্যানেজার কমান্ডগুলির জন্য যা একটি intent
যুক্তি গ্রহণ করে, আপনি নিম্নলিখিত বিকল্পগুলির সাথে অভিপ্রায় নির্দিষ্ট করতে পারেন:
প্যাকেজ ম্যানেজারকে কল করুন ( pm
)
একটি adb
শেলের মধ্যে, আপনি ডিভাইসে ইনস্টল করা অ্যাপ প্যাকেজগুলিতে অ্যাকশন এবং প্রশ্নগুলি সম্পাদন করতে প্যাকেজ ম্যানেজার ( pm
) টুলের সাহায্যে কমান্ড ইস্যু করতে পারেন।
একটি শেলে থাকাকালীন, pm
সিনট্যাক্স হল:
pm command
আপনি দূরবর্তী শেল প্রবেশ না করে সরাসরি adb
থেকে একটি প্যাকেজ ম্যানেজার কমান্ড ইস্যু করতে পারেন। যেমন:
adb shell pm uninstall com.example.MyApp
আদেশ | বর্ণনা |
---|---|
list packages [ options ] filter | সমস্ত প্যাকেজ প্রিন্ট করুন, ঐচ্ছিকভাবে শুধুমাত্র যাদের প্যাকেজের নাম filter লেখা আছে।বিকল্প:
|
list permission-groups | সমস্ত পরিচিত অনুমতি গ্রুপ প্রিন্ট করুন. |
list permissions [ options ] group | সমস্ত পরিচিত অনুমতি প্রিন্ট করুন, ঐচ্ছিকভাবে শুধুমাত্র group থাকা।বিকল্প:
|
list instrumentation [ options ] | সমস্ত পরীক্ষা প্যাকেজ তালিকা. বিকল্প:
|
list features | সিস্টেমের সমস্ত বৈশিষ্ট্য মুদ্রণ করুন। |
list libraries | বর্তমান ডিভাইস দ্বারা সমর্থিত সমস্ত লাইব্রেরি প্রিন্ট করুন। |
list users | সিস্টেমে সমস্ত ব্যবহারকারী মুদ্রণ করুন। |
path package | প্রদত্ত package APK-এর পথ প্রিন্ট করুন। |
install [ options ] path | সিস্টেমে path দ্বারা নির্দিষ্ট একটি প্যাকেজ ইনস্টল করুন।বিকল্প:
|
uninstall [ options ] package | সিস্টেম থেকে একটি প্যাকেজ সরিয়ে দেয়। বিকল্প:
|
clear package | একটি প্যাকেজের সাথে যুক্ত সমস্ত ডেটা মুছুন। |
enable package_or_component | প্রদত্ত প্যাকেজ বা উপাদান সক্রিয় করুন ("প্যাকেজ/শ্রেণী" হিসাবে লেখা)। |
disable package_or_component | প্রদত্ত প্যাকেজ বা উপাদান অক্ষম করুন ("প্যাকেজ/শ্রেণী" হিসাবে লেখা)। |
disable-user [ options ] package_or_component | বিকল্প:
|
grant package_name permission | একটি অ্যাপের অনুমতি দিন। Android 6.0 (API লেভেল 23) এবং উচ্চতর চলমান ডিভাইসগুলিতে, অনুমতিটি অ্যাপ ম্যানিফেস্টে ঘোষিত যেকোনো অনুমতি হতে পারে। Android 5.1 (API লেভেল 22) এবং তার নিচে চলমান ডিভাইসগুলিতে অ্যাপ দ্বারা সংজ্ঞায়িত একটি ঐচ্ছিক অনুমতি থাকতে হবে। |
revoke package_name permission | একটি অ্যাপ্লিকেশন থেকে একটি অনুমতি প্রত্যাহার করুন. Android 6.0 (API লেভেল 23) এবং উচ্চতর চলমান ডিভাইসগুলিতে, অনুমতিটি অ্যাপ ম্যানিফেস্টে ঘোষিত যেকোনো অনুমতি হতে পারে। Android 5.1 (API লেভেল 22) এবং তার নিচে চলমান ডিভাইসগুলিতে অ্যাপ দ্বারা সংজ্ঞায়িত একটি ঐচ্ছিক অনুমতি থাকতে হবে। |
set-install-location location | ডিফল্ট ইনস্টল অবস্থান পরিবর্তন করুন. অবস্থান মান:
দ্রষ্টব্য: এটি শুধুমাত্র ডিবাগ করার উদ্দেশ্যে করা হয়েছে। এটি ব্যবহার করলে অ্যাপগুলি ভেঙে যেতে পারে এবং অন্যান্য অবাঞ্ছিত আচরণ হতে পারে। |
get-install-location | বর্তমান ইনস্টলের অবস্থান ফেরত দেয়। রিটার্ন মান:
|
set-permission-enforced permission [true | false] | প্রদত্ত অনুমতি প্রয়োগ করা উচিত কিনা তা উল্লেখ করুন। |
trim-caches desired_free_space | প্রদত্ত ফাঁকা জায়গায় পৌঁছানোর জন্য ক্যাশে ফাইল ট্রিম করুন। |
create-user user_name | প্রদত্ত user_name দিয়ে একটি নতুন ব্যবহারকারী তৈরি করুন, ব্যবহারকারীর নতুন ব্যবহারকারী শনাক্তকারী মুদ্রণ করুন। |
remove-user user_id | প্রদত্ত user_id সহ ব্যবহারকারীকে সরান, সেই ব্যবহারকারীর সাথে যুক্ত সমস্ত ডেটা মুছে দিন |
get-max-users | ডিভাইস দ্বারা সমর্থিত ব্যবহারকারীদের সর্বাধিক সংখ্যা প্রিন্ট করুন। |
get-app-links [ options ] [ package ] | প্রদত্ত package জন্য ডোমেন যাচাইকরণ অবস্থা মুদ্রণ করুন, অথবা কোনোটি নির্দিষ্ট না থাকলে সমস্ত প্যাকেজের জন্য। রাজ্য কোড নিম্নরূপ সংজ্ঞায়িত করা হয়:
বিকল্পগুলি হল:
|
reset-app-links [ options ] [ package ] | প্রদত্ত প্যাকেজের জন্য ডোমেন যাচাইকরণ অবস্থা রিসেট করুন, অথবা কোনোটি নির্দিষ্ট না থাকলে সমস্ত প্যাকেজের জন্য।
বিকল্পগুলি হল:
|
verify-app-links [ --re-verify ] [ package ] | প্রদত্ত package জন্য একটি যাচাইকরণের অনুরোধ সম্প্রচার করুন, অথবা কোনোটি নির্দিষ্ট না থাকলে সমস্ত প্যাকেজের জন্য। প্যাকেজটি পূর্বে কোনো প্রতিক্রিয়া রেকর্ড না করলেই কেবল পাঠায়।
|
set-app-links [--package package ] state domains | একটি প্যাকেজের জন্য একটি ডোমেনের অবস্থা ম্যানুয়ালি সেট করুন। এটি কাজ করার জন্য ডোমেনটিকে অবশ্যই প্যাকেজ দ্বারা স্বয়ংক্রিয় যাচাই হিসাবে ঘোষণা করতে হবে। এই কমান্ডটি প্রয়োগ করা যায়নি এমন ডোমেনের ব্যর্থতার রিপোর্ট করবে না।
|
set-app-links-user-selection --user user_id [--package package ] enabled domains | একটি প্যাকেজের জন্য হোস্ট ব্যবহারকারী নির্বাচনের অবস্থা ম্যানুয়ালি সেট করুন। এটি কাজ করার জন্য ডোমেনটিকে অবশ্যই প্যাকেজ দ্বারা ঘোষণা করতে হবে। এই কমান্ডটি প্রয়োগ করা যায়নি এমন ডোমেনের ব্যর্থতার রিপোর্ট করবে না।
|
set-app-links-user-selection --user user_id [--package package ] enabled domains | একটি প্যাকেজের জন্য হোস্ট ব্যবহারকারী নির্বাচনের অবস্থা ম্যানুয়ালি সেট করুন। এটি কাজ করার জন্য ডোমেনটিকে অবশ্যই প্যাকেজ দ্বারা ঘোষণা করতে হবে। এই কমান্ডটি প্রয়োগ করা যায়নি এমন ডোমেনের ব্যর্থতার রিপোর্ট করবে না।
|
set-app-links-allowed --user user_id [--package package ] allowed | একটি প্যাকেজের জন্য স্বয়ংক্রিয়ভাবে যাচাই করা লিঙ্ক-হ্যান্ডলিং সেটিংটি টগল করুন।
|
get-app-link-owners --user user_id [--package package ] domains | প্রদত্ত ব্যবহারকারীর জন্য একটি নির্দিষ্ট ডোমেনের জন্য মালিকদের প্রিন্ট করুন কম- থেকে উচ্চ-অগ্রাধিকার ক্রমে।
|
ডিভাইস পলিসি ম্যানেজারকে কল করুন ( dpm
)
আপনার ডিভাইস ম্যানেজমেন্ট অ্যাপ্লিকেশানগুলি বিকাশ এবং পরীক্ষা করতে আপনাকে সাহায্য করতে, ডিভাইস নীতি পরিচালক ( dpm
) টুলে কমান্ড ইস্যু করুন৷ সক্রিয় অ্যাডমিন অ্যাপ নিয়ন্ত্রণ করতে বা ডিভাইসে নীতির স্থিতি ডেটা পরিবর্তন করতে টুলটি ব্যবহার করুন।
একটি শেলে থাকাকালীন, dpm
সিনট্যাক্স হল:
dpm command
আপনি কোনও দূরবর্তী শেল প্রবেশ না করে সরাসরি adb
থেকে একটি ডিভাইস পলিসি ম্যানেজার কমান্ডও জারি করতে পারেন:
adb shell dpm command
আদেশ | বর্ণনা |
---|---|
set-active-admin [ options ] component | সক্রিয় প্রশাসক হিসাবে component সেট করে। বিকল্পগুলি হল:
|
set-profile-owner [ options ] component | সক্রিয় প্রশাসক হিসাবে component এবং বিদ্যমান ব্যবহারকারীর জন্য প্রোফাইলের মালিক হিসাবে এর প্যাকেজ সেট করুন। বিকল্পগুলি হল:
|
set-device-owner [ options ] component | সক্রিয় প্রশাসক হিসাবে component এবং ডিভাইস মালিক হিসাবে এর প্যাকেজ সেট করুন। বিকল্পগুলি হল:
|
remove-active-admin [ options ] component | একটি সক্রিয় প্রশাসক অক্ষম করুন। অ্যাপ্লিকেশনটি অবশ্যই android:testOnly । এই কমান্ডটি ডিভাইস এবং প্রোফাইল মালিকদেরও সরিয়ে দেয়।বিকল্পগুলি হল:
|
clear-freeze-period-record | সিস্টেম ওটিএ আপডেটের জন্য পূর্বে সেট ফ্রিজ পিরিয়ডগুলির ডিভাইসের রেকর্ডটি সাফ করুন। ফ্রিজ পিরিয়ডগুলি পরিচালনা করে এমন অ্যাপ্লিকেশনগুলি বিকাশ করার সময় ডিভাইসের সময়সূচী বিধিনিষেধগুলি এড়াতে এটি দরকারী। সিস্টেম আপডেট পরিচালনা করুন দেখুন। অ্যান্ড্রয়েড 9.0 (এপিআই স্তর 28) এবং উচ্চতর চালিত ডিভাইসগুলিতে সমর্থিত। |
force-network-logs | কোনও ডিপিসি দ্বারা পুনরুদ্ধারের জন্য কোনও বিদ্যমান নেটওয়ার্ক লগ প্রস্তুত করতে সিস্টেমকে বাধ্য করুন। যদি সংযোগ বা ডিএনএস লগগুলি উপলব্ধ থাকে তবে ডিপিসি onNetworkLogsAvailable() কলব্যাক গ্রহণ করে। নেটওয়ার্ক ক্রিয়াকলাপ লগিং দেখুন।এই কমান্ডটি হার-সীমাবদ্ধ। অ্যান্ড্রয়েড 9.0 (এপিআই স্তর 28) এবং উচ্চতর চালিত ডিভাইসগুলিতে সমর্থিত। |
force-security-logs | সিস্টেমকে ডিপিসিতে যে কোনও বিদ্যমান সুরক্ষা লগ উপলব্ধ করতে বাধ্য করুন। যদি লগগুলি উপলব্ধ থাকে তবে ডিপিসি onSecurityLogsAvailable() কলব্যাক গ্রহণ করে। লগ এন্টারপ্রাইজ ডিভাইস ক্রিয়াকলাপ দেখুন।এই কমান্ডটি হার-সীমাবদ্ধ। অ্যান্ড্রয়েড 9.0 (এপিআই স্তর 28) এবং উচ্চতর চালিত ডিভাইসগুলিতে সমর্থিত। |
একটি স্ক্রিনশট নিন
screencap
কমান্ডটি একটি ডিভাইস ডিসপ্লে স্ক্রিনশট নেওয়ার জন্য একটি শেল ইউটিলিটি।
শেলটিতে থাকাকালীন, screencap
সিনট্যাক্সটি হ'ল:
screencap filename
কমান্ড লাইন থেকে screencap
ব্যবহার করতে, নিম্নলিখিতটি প্রবেশ করুন:
adb shell screencap /sdcard/screen.png
স্ক্রিনশটটি ক্যাপচার করতে adb
শেল ব্যবহার করে এবং ডিভাইস থেকে ফাইলটি ডাউনলোড করার জন্য pull
কমান্ডটি ব্যবহার করে এখানে একটি উদাহরণ স্ক্রিনশট সেশন রয়েছে:
$ adb shell shell@ $ screencap /sdcard/screen.png shell@ $ exit $ adb pull /sdcard/screen.png
একটি ভিডিও রেকর্ড করুন
screenrecord
কমান্ড হল একটি শেল ইউটিলিটি যা Android 4.4 (API লেভেল 19) এবং উচ্চতর চলমান ডিভাইসগুলির প্রদর্শন রেকর্ড করার জন্য। ইউটিলিটি এমপিইজি -4 ফাইলটিতে স্ক্রিন ক্রিয়াকলাপ রেকর্ড করে। আপনি প্রচারমূলক বা প্রশিক্ষণ ভিডিও তৈরি করতে বা ডিবাগিং এবং পরীক্ষার জন্য এই ফাইলটি ব্যবহার করতে পারেন।
একটি শেল মধ্যে, নিম্নলিখিত সিনট্যাক্স ব্যবহার করুন:
screenrecord [options] filename
কমান্ড লাইন থেকে screenrecord
ব্যবহার করতে, নিম্নলিখিতগুলি প্রবেশ করুন:
adb shell screenrecord /sdcard/demo.mp4
নিয়ন্ত্রণ+সি টিপে স্ক্রিন রেকর্ডিং বন্ধ করুন। অন্যথায়, রেকর্ডিংটি তিন মিনিটে স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায় বা --time-limit
দ্বারা নির্ধারিত সময়সীমা।
আপনার ডিভাইসের স্ক্রিনটি রেকর্ড করা শুরু করতে, ভিডিওটি রেকর্ড করতে screenrecord
কমান্ডটি চালান। তারপরে, ডিভাইস থেকে হোস্ট কম্পিউটারে ভিডিওটি ডাউনলোড করতে pull
কমান্ডটি চালান। এখানে একটি উদাহরণ রেকর্ডিং সেশন:
$ adb shell shell@ $ screenrecord --verbose /sdcard/demo.mp4 (press Control + C to stop) shell@ $ exit $ adb pull /sdcard/demo.mp4
ডিভাইস প্রদর্শনের দিক অনুপাতটি ধরে রেখে screenrecord
ইউটিলিটি আপনার অনুরোধ করা যে কোনও সমর্থিত রেজোলিউশন এবং বিট রেট রেকর্ড করতে পারে। সর্বাধিক তিন মিনিটের দৈর্ঘ্যের সাথে ডিফল্টরূপে নেটিভ ডিসপ্লে রেজোলিউশন এবং ওরিয়েন্টেশনে ইউটিলিটি রেকর্ড করে।
screenrecord
ইউটিলিটির সীমাবদ্ধতা:
- ভিডিও ফাইলের সাথে অডিও রেকর্ড করা হয় না।
- ওয়েয়ার ওএস চলমান ডিভাইসগুলির জন্য ভিডিও রেকর্ডিং উপলব্ধ নয়।
- কিছু ডিভাইস তাদের নেটিভ ডিসপ্লে রেজোলিউশনে রেকর্ড করতে সক্ষম নাও হতে পারে। আপনি যদি স্ক্রিন রেকর্ডিংয়ের সাথে সমস্যার মুখোমুখি হন তবে কম স্ক্রিন রেজোলিউশনটি ব্যবহার করার চেষ্টা করুন।
- রেকর্ডিংয়ের সময় পর্দার ঘূর্ণন সমর্থিত নয়। রেকর্ডিংয়ের সময় যদি স্ক্রিনটি ঘোরানো হয় তবে কিছু স্ক্রিন রেকর্ডিংয়ে কেটে যায়।
অপশন | বর্ণনা |
---|---|
--help | কমান্ড সিনট্যাক্স এবং বিকল্পগুলি প্রদর্শন করুন |
--size width x height | ভিডিওর আকার সেট করুন: 1280x720 । ডিফল্ট মানটি হ'ল ডিভাইসের নেটিভ ডিসপ্লে রেজোলিউশন (যদি সমর্থিত হয়), 1280x720 যদি না হয়। সেরা ফলাফলের জন্য, আপনার ডিভাইসের উন্নত ভিডিও কোডিং (এভিসি) এনকোডার দ্বারা সমর্থিত একটি আকার ব্যবহার করুন। |
--bit-rate rate | ভিডিওর জন্য ভিডিও বিট রেট সেট করুন, প্রতি সেকেন্ডে মেগাবিটগুলিতে। ডিফল্ট মান 20 এমবিপিএস। আপনি ভিডিওর মান উন্নত করতে বিট রেট বাড়িয়ে তুলতে পারেন, তবে এটি করার ফলে বৃহত্তর চলচ্চিত্রের ফাইলগুলিতে ফলাফল হয়। নিম্নলিখিত উদাহরণটি রেকর্ডিং বিট রেট 6 এমবিপিএসে সেট করে: screenrecord --bit-rate 6000000 /sdcard/demo.mp4 |
--time-limit time | সেকেন্ডে সর্বাধিক রেকর্ডিংয়ের সময় সেট করুন। ডিফল্ট এবং সর্বাধিক মান 180 (3 মিনিট)। |
--rotate | আউটপুট 90 ডিগ্রি ঘোরান। এই বৈশিষ্ট্যটি পরীক্ষামূলক। |
--verbose | কমান্ড-লাইন স্ক্রিনে লগ তথ্য প্রদর্শন করুন। আপনি যদি এই বিকল্পটি সেট না করেন তবে ইউটিলিটি চলাকালীন কোনও তথ্য প্রদর্শন করে না। |
অ্যাপ্লিকেশনগুলির জন্য আর্ট প্রোফাইলগুলি পড়ুন
অ্যান্ড্রয়েড 7.0 (এপিআই স্তর 24) থেকে শুরু করে, অ্যান্ড্রয়েড রানটাইম (এআরটি) ইনস্টল করা অ্যাপ্লিকেশনগুলির জন্য এক্সিকিউশন প্রোফাইল সংগ্রহ করে, যা অ্যাপের কার্যকারিতা অনুকূল করতে ব্যবহৃত হয়। কোন পদ্ধতিগুলি ঘন ঘন কার্যকর করা হয় এবং অ্যাপ্লিকেশন স্টার্টআপের সময় কোন ক্লাসগুলি ব্যবহৃত হয় তা বোঝার জন্য সংগৃহীত প্রোফাইলগুলি পরীক্ষা করুন।
দ্রষ্টব্য: আপনার যদি ফাইল সিস্টেমে রুট অ্যাক্সেস থাকে তবে উদাহরণস্বরূপ, কোনও এমুলেটরটিতে এক্সিকিউশন প্রোফাইল ফাইলের নামটি পুনরুদ্ধার করা সম্ভব।
প্রোফাইল তথ্যের একটি পাঠ্য ফর্ম তৈরি করতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
adb shell cmd package dump-profiles package
উত্পাদিত ফাইলটি পুনরুদ্ধার করতে, ব্যবহার:
adb pull /data/misc/profman/package.prof.txt
পরীক্ষার ডিভাইস রিসেট করুন
আপনি যদি একাধিক পরীক্ষার ডিভাইস জুড়ে আপনার অ্যাপ্লিকেশনটি পরীক্ষা করেন তবে পরীক্ষাগুলির মধ্যে আপনার ডিভাইসটি পুনরায় সেট করা কার্যকর হতে পারে, উদাহরণস্বরূপ, ব্যবহারকারীর ডেটা অপসারণ এবং পরীক্ষার পরিবেশটি পুনরায় সেট করতে। আপনি testharness
adb
শেল কমান্ড ব্যবহার করে অ্যান্ড্রয়েড 10 (এপিআই স্তর 29) বা উচ্চতর একটি পরীক্ষার ডিভাইসের কারখানার রিসেট করতে পারেন, যেমন দেখানো হয়েছে:
adb shell cmd testharness enable
testharness
ব্যবহার করে ডিভাইসটি পুনরুদ্ধার করার সময়, ডিভাইসটি স্বয়ংক্রিয়ভাবে আরএসএ কীটিকে ব্যাক আপ করে যা একটি অবিরাম স্থানে বর্তমান ওয়ার্কস্টেশনের মাধ্যমে ডিবাগিংয়ের অনুমতি দেয়। এটি হ'ল, ডিভাইসটি পুনরায় সেট করার পরে, ওয়ার্কস্টেশনটি কোনও নতুন কী নিবন্ধন না করে ডিভাইসে adb
কমান্ডগুলি ডিবাগ করতে এবং জারি করতে পারে।
অতিরিক্তভাবে, আপনার অ্যাপ্লিকেশনটি পরীক্ষা করা আরও সহজ এবং আরও সুরক্ষিত করতে সহায়তা করার জন্য, কোনও ডিভাইস পুনরুদ্ধার করতে testharness
ব্যবহার করে নিম্নলিখিত ডিভাইস সেটিংসও পরিবর্তন করে:
- ডিভাইসটি নির্দিষ্ট সিস্টেম সেটিংস সেট আপ করে যাতে প্রাথমিক ডিভাইস সেটআপ উইজার্ডগুলি উপস্থিত না হয়। এটি হ'ল, ডিভাইসটি এমন একটি রাজ্যে প্রবেশ করে যা থেকে আপনি দ্রুত আপনার অ্যাপ্লিকেশনটি ইনস্টল করতে, ডিবাগ করতে এবং পরীক্ষা করতে পারেন।
- সেটিংস:
- লক স্ক্রিন অক্ষম করে।
- জরুরী সতর্কতাগুলি অক্ষম করে।
- অ্যাকাউন্টগুলির জন্য অটো-সিঙ্ক অক্ষম করে।
- স্বয়ংক্রিয় সিস্টেম আপডেটগুলি অক্ষম করে।
- অন্যান্য:
- পূর্বনির্ধারিত সুরক্ষা অ্যাপ্লিকেশনগুলি অক্ষম করে।
যদি আপনার অ্যাপ্লিকেশনটিকে testharness
কমান্ডের ডিফল্ট সেটিংসে সনাক্ত এবং অভিযোজন করতে হবে তবে ActivityManager.isRunningInUserTestHarness()
sqlite
sqlite3
এসকিউএলাইট ডাটাবেসগুলি পরীক্ষা করার জন্য sqlite
কমান্ড-লাইন প্রোগ্রাম শুরু করে। এটিতে একটি টেবিলের বিষয়বস্তু মুদ্রণের জন্য .dump
এবং একটি বিদ্যমান টেবিলের জন্য SQL CREATE
বিবৃতি প্রিন্ট করার জন্য .schema
আপনি কমান্ড লাইন থেকে এসকিউএলাইট কমান্ডগুলিও কার্যকর করতে পারেন, যেমন দেখানো হয়েছে:
$ adb -s emulator-5554 shell $ sqlite3 /data/data/com.example.app/databases/rssitems.db SQLite version 3.3.12 Enter ".help" for instructions
দ্রষ্টব্য: আপনার যদি ফাইল সিস্টেমে রুট অ্যাক্সেস থাকে তবে কেবলমাত্র একটি এসকিউএলাইট ডাটাবেস অ্যাক্সেস করা সম্ভব, উদাহরণস্বরূপ, একটি এমুলেটরে।
আরও তথ্যের জন্য, sqlite3
কমান্ড লাইন ডকুমেন্টেশন দেখুন।
এডিবি ইউএসবি ব্যাকেন্ডস
এডিবি সার্ভার দুটি ব্যাকেন্ডের মাধ্যমে ইউএসবি স্ট্যাকের সাথে ইন্টারঅ্যাক্ট করতে পারে। এটি হয় ওএস (উইন্ডোজ, লিনাক্স বা ম্যাকোস) এর নেটিভ ব্যাকএন্ড ব্যবহার করতে পারে বা এটি libusb
ব্যাকএন্ড ব্যবহার করতে পারে। কিছু বৈশিষ্ট্য, যেমন attach
, detach
এবং ইউএসবি স্পিড সনাক্তকরণ কেবল libusb
ব্যাকএন্ড ব্যবহার করার সময় উপলব্ধ।
আপনি ADB_LIBUSB
এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করে একটি ব্যাকএন্ড চয়ন করতে পারেন। যদি এটি সেট না করা হয় তবে এডিবি তার ডিফল্ট ব্যাকএন্ড ব্যবহার করে। ডিফল্ট আচরণ ওএসের মধ্যে পরিবর্তিত হয়। এডিবি ভি 34 দিয়ে শুরু করে, liubusb
ব্যাকএন্ড উইন্ডোজ ব্যতীত সমস্ত ওএসে ডিফল্টরূপে ব্যবহৃত হয়, যেখানে নেটিভ ব্যাকেন্ডটি ডিফল্টরূপে ব্যবহৃত হয়। যদি ADB_LIBUSB
সেট করা থাকে তবে এটি নির্ধারণ করে যে নেটিভ ব্যাকএন্ড বা libusb
ব্যবহার করা হয়েছে কিনা। এডিবি পরিবেশের ভেরিয়েবলগুলি সম্পর্কে আরও তথ্যের জন্য এডিবি ম্যানুয়াল পৃষ্ঠাটি দেখুন।
adb mDNS ব্যাকএন্ড
এডিবি স্বয়ংক্রিয়ভাবে সার্ভার এবং ডিভাইসগুলিকে সংযুক্ত করতে মাল্টিকাস্ট ডিএনএস প্রোটোকল ব্যবহার করতে পারে। দুটি ব্যাকেন্ড, বনজুর (অ্যাপলের এমডিএনএসএসস্পেন্ডার) এবং ওপেনস্ক্রিন সহ এডিবি সার্ভার জাহাজগুলি।
হোস্ট মেশিনে চলার জন্য বনজুর ব্যাকএন্ডের একটি ডেমন দরকার। ম্যাকোসে অ্যাপলের অন্তর্নির্মিত ডেমন সর্বদা চলমান থাকে তবে উইন্ডোজ এবং লিনাক্সে, ব্যবহারকারীকে অবশ্যই mdnsd
ডেমন আপ এবং চলমান রয়েছে তা নিশ্চিত করতে হবে। যদি কমান্ড adb mdns check
একটি ত্রুটি দেয় তবে সম্ভবত এডিবি বনজুর ব্যাকএন্ড ব্যবহার করছে তবে কোনও বনজুর ডেমন চলমান নেই।
ওপেনস্ক্রিন ব্যাকএন্ডে মেশিনে চলার জন্য কোনও ডেমন দরকার নেই। ম্যাকোসে ওপেনস্ক্রিন ব্যাকএন্ডের জন্য সমর্থন এডিবি ভি 35 থেকে শুরু হয়। উইন্ডোজ এবং লিনাক্স এডিবি ভি 34 হিসাবে সমর্থিত।
ডিফল্টরূপে এডিবি বনজুর ব্যাকএন্ড ব্যবহার করে। এই আচরণটি পরিবেশের পরিবর্তনশীল ADB_MDNS_OPENSCREEN
( 1
বা 0
এ সেট করা) ব্যবহার করে পরিবর্তন করা যেতে পারে। আরও তথ্যের জন্য এডিবি ম্যানুয়াল পৃষ্ঠাটি দেখুন।