অ্যান্ড্রয়েড ডিবাগ ব্রিজ ( 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 | সিস্টেম OTA আপডেটের জন্য পূর্বে সেট করা ফ্রিজ পিরিয়ডের ডিভাইসের রেকর্ড সাফ করুন। ফ্রিজ পিরিয়ড ম্যানেজ করে এমন অ্যাপ ডেভেলপ করার সময় ডিভাইসের সময় নির্ধারণের সীমাবদ্ধতা এড়াতে এটি কার্যকর। সিস্টেম আপডেটগুলি পরিচালনা করুন দেখুন। Android 9.0 (API লেভেল 28) এবং উচ্চতর চলমান ডিভাইসগুলিতে সমর্থিত। |
force-network-logs | একটি DPC দ্বারা পুনরুদ্ধারের জন্য যেকোন বিদ্যমান নেটওয়ার্ক লগ প্রস্তুত করতে সিস্টেমটিকে বাধ্য করুন৷ সংযোগ বা DNS লগ উপলব্ধ থাকলে, DPC onNetworkLogsAvailable() কলব্যাক গ্রহণ করে। নেটওয়ার্ক কার্যকলাপ লগিং দেখুন.এই কমান্ড হার-সীমিত. Android 9.0 (API লেভেল 28) এবং উচ্চতর চলমান ডিভাইসগুলিতে সমর্থিত। |
force-security-logs | ডিপিসি-তে বিদ্যমান নিরাপত্তা লগগুলি উপলব্ধ করতে সিস্টেমটিকে বাধ্য করুন৷ লগগুলি উপলব্ধ থাকলে, DPC onSecurityLogsAvailable() কলব্যাক গ্রহণ করে। লগ এন্টারপ্রাইজ ডিভাইস কার্যকলাপ দেখুন.এই কমান্ড হার-সীমিত. Android 9.0 (API লেভেল 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) এবং উচ্চতর চলমান ডিভাইসগুলির প্রদর্শন রেকর্ড করার জন্য। ইউটিলিটি একটি MPEG-4 ফাইলে স্ক্রীন কার্যকলাপ রেকর্ড করে। আপনি প্রচারমূলক বা প্রশিক্ষণ ভিডিও তৈরি করতে বা ডিবাগিং এবং পরীক্ষার জন্য এই ফাইলটি ব্যবহার করতে পারেন৷
একটি শেলে, নিম্নলিখিত সিনট্যাক্স ব্যবহার করুন:
screenrecord [options] filename
কমান্ড লাইন থেকে screenrecord
ব্যবহার করতে, নিম্নলিখিত লিখুন:
adb shell screenrecord /sdcard/demo.mp4
Control+C টিপে স্ক্রীন রেকর্ডিং বন্ধ করুন। অন্যথায়, রেকর্ডিং স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায় তিন মিনিটে বা --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
ইউটিলিটির সীমাবদ্ধতা:
- ভিডিও ফাইলের সাথে অডিও রেকর্ড করা হয় না।
- Wear OS চালিত ডিভাইসগুলির জন্য ভিডিও রেকর্ডিং উপলব্ধ নয়।
- কিছু ডিভাইস তাদের নেটিভ ডিসপ্লে রেজোলিউশনে রেকর্ড করতে সক্ষম নাও হতে পারে। আপনি যদি স্ক্রীন রেকর্ডিংয়ে সমস্যার সম্মুখীন হন, তাহলে নিম্ন স্ক্রীন রেজোলিউশন ব্যবহার করার চেষ্টা করুন।
- রেকর্ডিংয়ের সময় পর্দার ঘূর্ণন সমর্থিত নয়। রেকর্ডিংয়ের সময় যদি স্ক্রিনটি ঘোরে, তবে রেকর্ডিংয়ের কিছু স্ক্রীন কেটে যায়।
অপশন | বর্ণনা |
---|---|
--help | কমান্ড সিনট্যাক্স এবং বিকল্পগুলি প্রদর্শন করুন |
--size width x height | ভিডিও আকার সেট করুন: 1280x720 । ডিফল্ট মান হল ডিভাইসের নেটিভ ডিসপ্লে রেজোলিউশন (যদি সমর্থিত হয়), না হলে 1280x720। সেরা ফলাফলের জন্য, আপনার ডিভাইসের অ্যাডভান্সড ভিডিও কোডিং (AVC) এনকোডার দ্বারা সমর্থিত আকার ব্যবহার করুন৷ |
--bit-rate rate | ভিডিওর জন্য ভিডিও বিট রেট সেট করুন, প্রতি সেকেন্ডে মেগাবিট। ডিফল্ট মান হল 20Mbps। আপনি ভিডিওর গুণমান উন্নত করতে বিট রেট বাড়াতে পারেন, কিন্তু এটি করার ফলে বড় মুভি ফাইল হয়। নিম্নলিখিত উদাহরণটি রেকর্ডিং বিট রেট 6Mbps এ সেট করে: screenrecord --bit-rate 6000000 /sdcard/demo.mp4 |
--time-limit time | সেকেন্ডে সর্বোচ্চ রেকর্ডিং সময় সেট করুন। ডিফল্ট এবং সর্বোচ্চ মান হল 180 (3 মিনিট)। |
--rotate | আউটপুট 90 ডিগ্রি ঘোরান। এই বৈশিষ্ট্যটি পরীক্ষামূলক। |
--verbose | কমান্ড-লাইন স্ক্রিনে লগ তথ্য প্রদর্শন করুন। আপনি যদি এই বিকল্পটি সেট না করেন, ইউটিলিটি চলাকালীন কোনো তথ্য প্রদর্শন করে না। |
অ্যাপের জন্য ART প্রোফাইল পড়ুন
অ্যান্ড্রয়েড 7.0 (এপিআই লেভেল 24) থেকে শুরু করে, অ্যান্ড্রয়েড রানটাইম (এআরটি) ইনস্টল করা অ্যাপের জন্য এক্সিকিউশন প্রোফাইল সংগ্রহ করে, যেগুলো অ্যাপ পারফরম্যান্স অপ্টিমাইজ করতে ব্যবহৃত হয়। অ্যাপ্লিকেশান স্টার্টআপের সময় কোন পদ্ধতিগুলি প্রায়শই কার্যকর করা হয় এবং কোন ক্লাসগুলি ব্যবহার করা হয় তা বোঝার জন্য সংগৃহীত প্রোফাইলগুলি পরীক্ষা করুন৷
দ্রষ্টব্য: এক্সিকিউশন প্রোফাইল ফাইলের নামটি পুনরুদ্ধার করা কেবল তখনই সম্ভব যদি আপনার ফাইল সিস্টেমে রুট অ্যাক্সেস থাকে, উদাহরণস্বরূপ, একটি এমুলেটরে।
প্রোফাইল তথ্যের একটি পাঠ্য ফর্ম তৈরি করতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
adb shell cmd package dump-profiles package
উত্পাদিত ফাইল পুনরুদ্ধার করতে, ব্যবহার করুন:
adb pull /data/misc/profman/package.prof.txt
পরীক্ষার ডিভাইস রিসেট করুন
আপনি একাধিক পরীক্ষা ডিভাইস জুড়ে আপনার অ্যাপ পরীক্ষা করলে, পরীক্ষার মধ্যে আপনার ডিভাইস রিসেট করা উপকারী হতে পারে, উদাহরণস্বরূপ, ব্যবহারকারীর ডেটা সরাতে এবং পরীক্ষার পরিবেশ রিসেট করতে। আপনি testharness
adb
শেল কমান্ড ব্যবহার করে Android 10 (API লেভেল 29) বা উচ্চতর চলমান একটি টেস্ট ডিভাইসের ফ্যাক্টরি রিসেট করতে পারেন, যেমন দেখানো হয়েছে:
adb shell cmd testharness enable
testharness
ব্যবহার করে ডিভাইসটি পুনরুদ্ধার করার সময়, ডিভাইসটি স্বয়ংক্রিয়ভাবে RSA কী ব্যাক আপ করে যা একটি স্থায়ী অবস্থানে বর্তমান ওয়ার্কস্টেশনের মাধ্যমে ডিবাগ করার অনুমতি দেয়। অর্থাৎ, ডিভাইসটি রিসেট করার পরে, ওয়ার্কস্টেশনটি ম্যানুয়ালি একটি নতুন কী নিবন্ধন না করেই ডিভাইসে ডিবাগ এবং adb
কমান্ড ইস্যু করা চালিয়ে যেতে পারে।
উপরন্তু, আপনার অ্যাপের পরীক্ষা চালিয়ে যাওয়া সহজ এবং আরও নিরাপদ করতে সাহায্য করার জন্য, একটি ডিভাইস পুনরুদ্ধার করতে testharness
ব্যবহার করে নিম্নলিখিত ডিভাইস সেটিংসও পরিবর্তন করে:
- ডিভাইসটি নির্দিষ্ট সিস্টেম সেটিংস সেট আপ করে যাতে প্রাথমিক ডিভাইস সেটআপ উইজার্ডগুলি উপস্থিত না হয়৷ অর্থাৎ, ডিভাইসটি এমন একটি অবস্থায় প্রবেশ করে যেখান থেকে আপনি দ্রুত ইনস্টল, ডিবাগ এবং আপনার অ্যাপ পরীক্ষা করতে পারবেন।
- সেটিংস:
- লক স্ক্রিন অক্ষম করে।
- জরুরী সতর্কতা অক্ষম করে।
- অ্যাকাউন্টের জন্য স্বতঃ-সিঙ্ক অক্ষম করে।
- স্বয়ংক্রিয় সিস্টেম আপডেট অক্ষম করে।
- অন্যান্য:
- পূর্ব-ইন্সটল করা নিরাপত্তা অ্যাপ অক্ষম করে।
আপনার অ্যাপটিকে testharness
কমান্ডের ডিফল্ট সেটিংস সনাক্ত করতে এবং মানিয়ে নিতে হলে ActivityManager.isRunningInUserTestHarness()
ব্যবহার করুন।
sqlite
sqlite3
SQLite ডাটাবেস পরীক্ষা করার জন্য sqlite
কমান্ড-লাইন প্রোগ্রাম শুরু করে। এটি একটি টেবিলের বিষয়বস্তু প্রিন্ট করার জন্য .schema
এবং বিদ্যমান টেবিলের জন্য SQL CREATE
স্টেটমেন্ট প্রিন্ট করার জন্য .dump
এর মতো কমান্ড অন্তর্ভুক্ত করে। আপনি কমান্ড লাইন থেকে SQLite কমান্ডগুলিও চালাতে পারেন, যেমন দেখানো হয়েছে:
$ adb -s emulator-5554 shell $ sqlite3 /data/data/com.example.app/databases/rssitems.db SQLite version 3.3.12 Enter ".help" for instructions
দ্রষ্টব্য: শুধুমাত্র একটি SQLite ডাটাবেস অ্যাক্সেস করা সম্ভব যদি আপনার ফাইল সিস্টেমে রুট অ্যাক্সেস থাকে, উদাহরণস্বরূপ, একটি এমুলেটরে।
আরও তথ্যের জন্য, sqlite3
কমান্ড লাইন ডকুমেন্টেশন দেখুন।
adb USB ব্যাকএন্ড
অ্যাডবি সার্ভার দুটি ব্যাকএন্ডের মাধ্যমে ইউএসবি স্ট্যাকের সাথে ইন্টারঅ্যাক্ট করতে পারে। এটি হয় ওএস (উইন্ডোজ, লিনাক্স, বা ম্যাকওএস) এর নেটিভ ব্যাকএন্ড ব্যবহার করতে পারে অথবা এটি libusb
ব্যাকএন্ড ব্যবহার করতে পারে। কিছু বৈশিষ্ট্য, যেমন attach
, detach
, এবং USB গতি সনাক্তকরণ, শুধুমাত্র libusb
ব্যাকএন্ড ব্যবহার করার সময় উপলব্ধ।
আপনি ADB_LIBUSB
পরিবেশ পরিবর্তনশীল ব্যবহার করে একটি ব্যাকএন্ড চয়ন করতে পারেন। এটি সেট না থাকলে, adb তার ডিফল্ট ব্যাকএন্ড ব্যবহার করে। ডিফল্ট আচরণ OS এর মধ্যে পরিবর্তিত হয়। ADB v34 দিয়ে শুরু করে, liubusb
ব্যাকএন্ড ডিফল্টরূপে উইন্ডোজ ছাড়া সমস্ত OS-এ ব্যবহৃত হয়, যেখানে নেটিভ ব্যাকএন্ড ডিফল্টরূপে ব্যবহৃত হয়। যদি ADB_LIBUSB
সেট করা থাকে, তাহলে এটি নির্ধারণ করে যে নেটিভ ব্যাকএন্ড বা libusb
ব্যবহার করা হবে কিনা। adb পরিবেশ ভেরিয়েবল সম্পর্কে আরও তথ্যের জন্য adb ম্যানুয়াল পৃষ্ঠাটি দেখুন।
adb mDNS ব্যাকএন্ড
সার্ভার এবং ডিভাইসগুলিকে স্বয়ংক্রিয়ভাবে সংযুক্ত করতে ADB মাল্টিকাস্ট ডিএনএস প্রোটোকল ব্যবহার করতে পারে। ADB সার্ভার দুটি ব্যাকএন্ড, Bonjour (Apple এর mdnsResponder) এবং Openscreen সহ পাঠানো হয়।
হোস্ট মেশিনে চলার জন্য Bonjour ব্যাকএন্ডের একটি ডেমন প্রয়োজন। MacOS অ্যাপলের অন্তর্নির্মিত ডেমন সর্বদা চলমান থাকে, তবে উইন্ডোজ এবং লিনাক্সে, ব্যবহারকারীকে নিশ্চিত করতে হবে যে mdnsd
ডেমন চালু আছে এবং চলছে। যদি adb mdns check
কমান্ড একটি ত্রুটি প্রদান করে, তাহলে সম্ভবত ADB Bonjour ব্যাকএন্ড ব্যবহার করছে কিন্তু কোন Bonjour ডেমন চলছে না।
ওপেনস্ক্রিন ব্যাকএন্ডের মেশিনে চলার জন্য ডেমনের প্রয়োজন নেই। MacOS-এ ওপেনস্ক্রিন ব্যাকএন্ডের জন্য সমর্থন ADB v35 থেকে শুরু হয়। উইন্ডোজ এবং লিনাক্স ADB v34 হিসাবে সমর্থিত।
ডিফল্টরূপে ADB Bonjour ব্যাকএন্ড ব্যবহার করে। পরিবেশ পরিবর্তনশীল ADB_MDNS_OPENSCREEN
( 1
বা 0
এ সেট) ব্যবহার করে এই আচরণ পরিবর্তন করা যেতে পারে। আরও বিস্তারিত জানার জন্য ADB ম্যানুয়াল পৃষ্ঠা দেখুন।
অ্যান্ড্রয়েড ডিবাগ ব্রিজ ( 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 | সিস্টেম OTA আপডেটের জন্য পূর্বে সেট করা ফ্রিজ পিরিয়ডের ডিভাইসের রেকর্ড সাফ করুন। ফ্রিজ পিরিয়ড ম্যানেজ করে এমন অ্যাপ ডেভেলপ করার সময় ডিভাইসের সময় নির্ধারণের সীমাবদ্ধতা এড়াতে এটি কার্যকর। সিস্টেম আপডেটগুলি পরিচালনা করুন দেখুন। Android 9.0 (API লেভেল 28) এবং উচ্চতর চলমান ডিভাইসগুলিতে সমর্থিত। |
force-network-logs | একটি DPC দ্বারা পুনরুদ্ধারের জন্য যেকোন বিদ্যমান নেটওয়ার্ক লগ প্রস্তুত করতে সিস্টেমটিকে বাধ্য করুন৷ সংযোগ বা DNS লগ উপলব্ধ থাকলে, DPC onNetworkLogsAvailable() কলব্যাক গ্রহণ করে। নেটওয়ার্ক কার্যকলাপ লগিং দেখুন.এই কমান্ড হার-সীমিত. Android 9.0 (API লেভেল 28) এবং উচ্চতর চলমান ডিভাইসগুলিতে সমর্থিত। |
force-security-logs | ডিপিসি-তে বিদ্যমান নিরাপত্তা লগগুলি উপলব্ধ করতে সিস্টেমটিকে বাধ্য করুন৷ লগগুলি উপলব্ধ থাকলে, DPC onSecurityLogsAvailable() কলব্যাক গ্রহণ করে। লগ এন্টারপ্রাইজ ডিভাইস কার্যকলাপ দেখুন.এই কমান্ড হার-সীমিত. Android 9.0 (API লেভেল 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) এবং উচ্চতর চলমান ডিভাইসগুলির প্রদর্শন রেকর্ড করার জন্য। ইউটিলিটি একটি MPEG-4 ফাইলে স্ক্রীন কার্যকলাপ রেকর্ড করে। আপনি প্রচারমূলক বা প্রশিক্ষণ ভিডিও তৈরি করতে বা ডিবাগিং এবং পরীক্ষার জন্য এই ফাইলটি ব্যবহার করতে পারেন৷
একটি শেলে, নিম্নলিখিত সিনট্যাক্স ব্যবহার করুন:
screenrecord [options] filename
কমান্ড লাইন থেকে screenrecord
ব্যবহার করতে, নিম্নলিখিত লিখুন:
adb shell screenrecord /sdcard/demo.mp4
Control+C টিপে স্ক্রীন রেকর্ডিং বন্ধ করুন। অন্যথায়, রেকর্ডিং স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায় তিন মিনিটে বা --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
ইউটিলিটির সীমাবদ্ধতা:
- ভিডিও ফাইলের সাথে অডিও রেকর্ড করা হয় না।
- Wear OS চালিত ডিভাইসগুলির জন্য ভিডিও রেকর্ডিং উপলব্ধ নয়।
- কিছু ডিভাইস তাদের নেটিভ ডিসপ্লে রেজোলিউশনে রেকর্ড করতে সক্ষম নাও হতে পারে। আপনি যদি স্ক্রীন রেকর্ডিংয়ে সমস্যার সম্মুখীন হন, তাহলে নিম্ন স্ক্রীন রেজোলিউশন ব্যবহার করার চেষ্টা করুন।
- রেকর্ডিংয়ের সময় পর্দার ঘূর্ণন সমর্থিত নয়। রেকর্ডিংয়ের সময় যদি স্ক্রিনটি ঘোরে, তবে রেকর্ডিংয়ের কিছু স্ক্রীন কেটে যায়।
অপশন | বর্ণনা |
---|---|
--help | কমান্ড সিনট্যাক্স এবং বিকল্পগুলি প্রদর্শন করুন |
--size width x height | ভিডিও আকার সেট করুন: 1280x720 । ডিফল্ট মান হল ডিভাইসের নেটিভ ডিসপ্লে রেজোলিউশন (যদি সমর্থিত হয়), না হলে 1280x720। সেরা ফলাফলের জন্য, আপনার ডিভাইসের অ্যাডভান্সড ভিডিও কোডিং (AVC) এনকোডার দ্বারা সমর্থিত আকার ব্যবহার করুন৷ |
--bit-rate rate | ভিডিওর জন্য ভিডিও বিট রেট সেট করুন, প্রতি সেকেন্ডে মেগাবিট। ডিফল্ট মান হল 20Mbps। আপনি ভিডিওর গুণমান উন্নত করতে বিট রেট বাড়াতে পারেন, কিন্তু এটি করার ফলে বড় মুভি ফাইল হয়। নিম্নলিখিত উদাহরণটি রেকর্ডিং বিট রেট 6Mbps এ সেট করে: screenrecord --bit-rate 6000000 /sdcard/demo.mp4 |
--time-limit time | সেকেন্ডে সর্বোচ্চ রেকর্ডিং সময় সেট করুন। ডিফল্ট এবং সর্বোচ্চ মান হল 180 (3 মিনিট)। |
--rotate | আউটপুট 90 ডিগ্রি ঘোরান। এই বৈশিষ্ট্যটি পরীক্ষামূলক। |
--verbose | কমান্ড-লাইন স্ক্রিনে লগ তথ্য প্রদর্শন করুন। আপনি যদি এই বিকল্পটি সেট না করেন, ইউটিলিটি চলাকালীন কোনো তথ্য প্রদর্শন করে না। |
অ্যাপের জন্য ART প্রোফাইল পড়ুন
অ্যান্ড্রয়েড 7.0 (এপিআই লেভেল 24) থেকে শুরু করে, অ্যান্ড্রয়েড রানটাইম (এআরটি) ইনস্টল করা অ্যাপের জন্য এক্সিকিউশন প্রোফাইল সংগ্রহ করে, যেগুলো অ্যাপ পারফরম্যান্স অপ্টিমাইজ করতে ব্যবহৃত হয়। অ্যাপ্লিকেশান স্টার্টআপের সময় কোন পদ্ধতিগুলি প্রায়শই কার্যকর করা হয় এবং কোন ক্লাসগুলি ব্যবহার করা হয় তা বোঝার জন্য সংগৃহীত প্রোফাইলগুলি পরীক্ষা করুন৷
দ্রষ্টব্য: এক্সিকিউশন প্রোফাইল ফাইলের নামটি পুনরুদ্ধার করা কেবল তখনই সম্ভব যদি আপনার ফাইল সিস্টেমে রুট অ্যাক্সেস থাকে, উদাহরণস্বরূপ, একটি এমুলেটরে।
প্রোফাইল তথ্যের একটি পাঠ্য ফর্ম তৈরি করতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
adb shell cmd package dump-profiles package
উত্পাদিত ফাইল পুনরুদ্ধার করতে, ব্যবহার করুন:
adb pull /data/misc/profman/package.prof.txt
পরীক্ষার ডিভাইস রিসেট করুন
আপনি একাধিক পরীক্ষা ডিভাইস জুড়ে আপনার অ্যাপ পরীক্ষা করলে, পরীক্ষার মধ্যে আপনার ডিভাইস রিসেট করা উপকারী হতে পারে, উদাহরণস্বরূপ, ব্যবহারকারীর ডেটা সরাতে এবং পরীক্ষার পরিবেশ রিসেট করতে। আপনি testharness
adb
শেল কমান্ড ব্যবহার করে Android 10 (API লেভেল 29) বা উচ্চতর চলমান একটি টেস্ট ডিভাইসের ফ্যাক্টরি রিসেট করতে পারেন, যেমন দেখানো হয়েছে:
adb shell cmd testharness enable
testharness
ব্যবহার করে ডিভাইসটি পুনরুদ্ধার করার সময়, ডিভাইসটি স্বয়ংক্রিয়ভাবে RSA কী ব্যাক আপ করে যা একটি স্থায়ী অবস্থানে বর্তমান ওয়ার্কস্টেশনের মাধ্যমে ডিবাগ করার অনুমতি দেয়। অর্থাৎ, ডিভাইসটি রিসেট করার পরে, ওয়ার্কস্টেশনটি ম্যানুয়ালি একটি নতুন কী নিবন্ধন না করেই ডিভাইসে ডিবাগ এবং adb
কমান্ড ইস্যু করা চালিয়ে যেতে পারে।
উপরন্তু, আপনার অ্যাপের পরীক্ষা চালিয়ে যাওয়া সহজ এবং আরও নিরাপদ করতে সাহায্য করার জন্য, একটি ডিভাইস পুনরুদ্ধার করতে testharness
ব্যবহার করে নিম্নলিখিত ডিভাইস সেটিংসও পরিবর্তন করে:
- ডিভাইসটি নির্দিষ্ট সিস্টেম সেটিংস সেট আপ করে যাতে প্রাথমিক ডিভাইস সেটআপ উইজার্ডগুলি উপস্থিত না হয়৷ অর্থাৎ, ডিভাইসটি এমন একটি অবস্থায় প্রবেশ করে যেখান থেকে আপনি দ্রুত ইনস্টল, ডিবাগ এবং আপনার অ্যাপ পরীক্ষা করতে পারবেন।
- সেটিংস:
- লক স্ক্রিন অক্ষম করে।
- জরুরী সতর্কতা অক্ষম করে।
- অ্যাকাউন্টের জন্য স্বতঃ-সিঙ্ক অক্ষম করে।
- স্বয়ংক্রিয় সিস্টেম আপডেট অক্ষম করে।
- অন্যান্য:
- পূর্ব-ইন্সটল করা নিরাপত্তা অ্যাপ অক্ষম করে।
আপনার অ্যাপটিকে testharness
কমান্ডের ডিফল্ট সেটিংস সনাক্ত করতে এবং মানিয়ে নিতে হলে ActivityManager.isRunningInUserTestHarness()
ব্যবহার করুন।
sqlite
sqlite3
SQLite ডাটাবেস পরীক্ষা করার জন্য sqlite
কমান্ড-লাইন প্রোগ্রাম শুরু করে। এটি একটি টেবিলের বিষয়বস্তু প্রিন্ট করার জন্য .schema
এবং বিদ্যমান টেবিলের জন্য SQL CREATE
স্টেটমেন্ট প্রিন্ট করার জন্য .dump
এর মতো কমান্ড অন্তর্ভুক্ত করে। আপনি কমান্ড লাইন থেকে SQLite কমান্ডগুলিও চালাতে পারেন, যেমন দেখানো হয়েছে:
$ adb -s emulator-5554 shell $ sqlite3 /data/data/com.example.app/databases/rssitems.db SQLite version 3.3.12 Enter ".help" for instructions
দ্রষ্টব্য: শুধুমাত্র একটি SQLite ডাটাবেস অ্যাক্সেস করা সম্ভব যদি আপনার ফাইল সিস্টেমে রুট অ্যাক্সেস থাকে, উদাহরণস্বরূপ, একটি এমুলেটরে।
আরও তথ্যের জন্য, sqlite3
কমান্ড লাইন ডকুমেন্টেশন দেখুন।
adb USB ব্যাকএন্ড
অ্যাডবি সার্ভার দুটি ব্যাকএন্ডের মাধ্যমে ইউএসবি স্ট্যাকের সাথে ইন্টারঅ্যাক্ট করতে পারে। এটি হয় ওএস (উইন্ডোজ, লিনাক্স, বা ম্যাকওএস) এর নেটিভ ব্যাকএন্ড ব্যবহার করতে পারে অথবা এটি libusb
ব্যাকএন্ড ব্যবহার করতে পারে। কিছু বৈশিষ্ট্য, যেমন attach
, detach
, এবং USB গতি সনাক্তকরণ, শুধুমাত্র libusb
ব্যাকএন্ড ব্যবহার করার সময় উপলব্ধ।
আপনি ADB_LIBUSB
পরিবেশ পরিবর্তনশীল ব্যবহার করে একটি ব্যাকএন্ড চয়ন করতে পারেন। এটি সেট না থাকলে, adb তার ডিফল্ট ব্যাকএন্ড ব্যবহার করে। ডিফল্ট আচরণ OS এর মধ্যে পরিবর্তিত হয়। ADB v34 দিয়ে শুরু করে, liubusb
ব্যাকএন্ড ডিফল্টরূপে উইন্ডোজ ছাড়া সমস্ত OS-এ ব্যবহৃত হয়, যেখানে নেটিভ ব্যাকএন্ড ডিফল্টরূপে ব্যবহৃত হয়। যদি ADB_LIBUSB
সেট করা থাকে, তাহলে এটি নির্ধারণ করে যে নেটিভ ব্যাকএন্ড বা libusb
ব্যবহার করা হবে কিনা। adb পরিবেশ ভেরিয়েবল সম্পর্কে আরও তথ্যের জন্য adb ম্যানুয়াল পৃষ্ঠাটি দেখুন।
adb mDNS ব্যাকএন্ড
সার্ভার এবং ডিভাইসগুলিকে স্বয়ংক্রিয়ভাবে সংযুক্ত করতে ADB মাল্টিকাস্ট ডিএনএস প্রোটোকল ব্যবহার করতে পারে। ADB সার্ভার দুটি ব্যাকএন্ড, Bonjour (Apple এর mdnsResponder) এবং Openscreen সহ পাঠানো হয়।
হোস্ট মেশিনে চলার জন্য Bonjour ব্যাকএন্ডের একটি ডেমন প্রয়োজন। MacOS অ্যাপলের অন্তর্নির্মিত ডেমন সর্বদা চলমান থাকে, তবে উইন্ডোজ এবং লিনাক্সে, ব্যবহারকারীকে নিশ্চিত করতে হবে যে mdnsd
ডেমন চালু আছে এবং চলছে। যদি adb mdns check
কমান্ড একটি ত্রুটি প্রদান করে, তাহলে সম্ভবত ADB Bonjour ব্যাকএন্ড ব্যবহার করছে কিন্তু কোন Bonjour ডেমন চলছে না।
ওপেনস্ক্রিন ব্যাকএন্ডের মেশিনে চলার জন্য ডেমনের প্রয়োজন নেই। MacOS-এ ওপেনস্ক্রিন ব্যাকএন্ডের জন্য সমর্থন ADB v35 থেকে শুরু হয়। উইন্ডোজ এবং লিনাক্স ADB v34 হিসাবে সমর্থিত।
ডিফল্টরূপে ADB Bonjour ব্যাকএন্ড ব্যবহার করে। পরিবেশ পরিবর্তনশীল ADB_MDNS_OPENSCREEN
( 1
বা 0
এ সেট) ব্যবহার করে এই আচরণ পরিবর্তন করা যেতে পারে। আরও বিস্তারিত জানার জন্য ADB ম্যানুয়াল পৃষ্ঠা দেখুন।
অ্যান্ড্রয়েড ডিবাগ ব্রিজ ( 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 | সিস্টেম OTA আপডেটের জন্য পূর্বে সেট করা ফ্রিজ পিরিয়ডের ডিভাইসের রেকর্ড সাফ করুন। ফ্রিজ পিরিয়ড ম্যানেজ করে এমন অ্যাপ ডেভেলপ করার সময় ডিভাইসের সময় নির্ধারণের সীমাবদ্ধতা এড়াতে এটি কার্যকর। সিস্টেম আপডেটগুলি পরিচালনা করুন দেখুন। Android 9.0 (API লেভেল 28) এবং উচ্চতর চলমান ডিভাইসগুলিতে সমর্থিত। |
force-network-logs | একটি DPC দ্বারা পুনরুদ্ধারের জন্য যেকোন বিদ্যমান নেটওয়ার্ক লগ প্রস্তুত করতে সিস্টেমটিকে বাধ্য করুন৷ সংযোগ বা DNS লগ উপলব্ধ থাকলে, DPC onNetworkLogsAvailable() কলব্যাক গ্রহণ করে। নেটওয়ার্ক কার্যকলাপ লগিং দেখুন.এই কমান্ড হার-সীমিত. Android 9.0 (API লেভেল 28) এবং উচ্চতর চলমান ডিভাইসগুলিতে সমর্থিত। |
force-security-logs | ডিপিসি-তে বিদ্যমান নিরাপত্তা লগগুলি উপলব্ধ করতে সিস্টেমটিকে বাধ্য করুন৷ লগগুলি উপলব্ধ থাকলে, DPC onSecurityLogsAvailable() কলব্যাক গ্রহণ করে। লগ এন্টারপ্রাইজ ডিভাইস কার্যকলাপ দেখুন.এই কমান্ড হার-সীমিত. Android 9.0 (API লেভেল 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) এবং উচ্চতর চলমান ডিভাইসগুলির প্রদর্শন রেকর্ড করার জন্য। ইউটিলিটি একটি MPEG-4 ফাইলে স্ক্রীন কার্যকলাপ রেকর্ড করে। আপনি প্রচারমূলক বা প্রশিক্ষণ ভিডিও তৈরি করতে বা ডিবাগিং এবং পরীক্ষার জন্য এই ফাইলটি ব্যবহার করতে পারেন৷
একটি শেলে, নিম্নলিখিত সিনট্যাক্স ব্যবহার করুন:
screenrecord [options] filename
কমান্ড লাইন থেকে screenrecord
ব্যবহার করতে, নিম্নলিখিত লিখুন:
adb shell screenrecord /sdcard/demo.mp4
Control+C টিপে স্ক্রীন রেকর্ডিং বন্ধ করুন। অন্যথায়, রেকর্ডিং স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায় তিন মিনিটে বা --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
ইউটিলিটির সীমাবদ্ধতা:
- ভিডিও ফাইলের সাথে অডিও রেকর্ড করা হয় না।
- Wear OS চালিত ডিভাইসগুলির জন্য ভিডিও রেকর্ডিং উপলব্ধ নয়।
- কিছু ডিভাইস তাদের নেটিভ ডিসপ্লে রেজোলিউশনে রেকর্ড করতে সক্ষম নাও হতে পারে। আপনি যদি স্ক্রীন রেকর্ডিংয়ে সমস্যার সম্মুখীন হন, তাহলে নিম্ন স্ক্রীন রেজোলিউশন ব্যবহার করার চেষ্টা করুন।
- রেকর্ডিংয়ের সময় পর্দার ঘূর্ণন সমর্থিত নয়। রেকর্ডিংয়ের সময় যদি স্ক্রিনটি ঘোরে, তবে রেকর্ডিংয়ের কিছু স্ক্রীন কেটে যায়।
অপশন | বর্ণনা |
---|---|
--help | কমান্ড সিনট্যাক্স এবং বিকল্পগুলি প্রদর্শন করুন |
--size width x height | ভিডিও আকার সেট করুন: 1280x720 । ডিফল্ট মান হল ডিভাইসের নেটিভ ডিসপ্লে রেজোলিউশন (যদি সমর্থিত হয়), না হলে 1280x720। সেরা ফলাফলের জন্য, আপনার ডিভাইসের অ্যাডভান্সড ভিডিও কোডিং (AVC) এনকোডার দ্বারা সমর্থিত আকার ব্যবহার করুন৷ |
--bit-rate rate | ভিডিওর জন্য ভিডিও বিট রেট সেট করুন, প্রতি সেকেন্ডে মেগাবিট। ডিফল্ট মান হল 20Mbps। আপনি ভিডিওর গুণমান উন্নত করতে বিট রেট বাড়াতে পারেন, কিন্তু এটি করার ফলে বড় মুভি ফাইল হয়। নিম্নলিখিত উদাহরণটি রেকর্ডিং বিট রেট 6Mbps এ সেট করে: screenrecord --bit-rate 6000000 /sdcard/demo.mp4 |
--time-limit time | সেকেন্ডে সর্বোচ্চ রেকর্ডিং সময় সেট করুন। ডিফল্ট এবং সর্বোচ্চ মান হল 180 (3 মিনিট)। |
--rotate | আউটপুট 90 ডিগ্রি ঘোরান। এই বৈশিষ্ট্যটি পরীক্ষামূলক। |
--verbose | কমান্ড-লাইন স্ক্রিনে লগ তথ্য প্রদর্শন করুন। আপনি যদি এই বিকল্পটি সেট না করেন, ইউটিলিটি চলাকালীন কোনো তথ্য প্রদর্শন করে না। |
অ্যাপের জন্য ART প্রোফাইল পড়ুন
অ্যান্ড্রয়েড 7.0 (এপিআই লেভেল 24) থেকে শুরু করে, অ্যান্ড্রয়েড রানটাইম (এআরটি) ইনস্টল করা অ্যাপের জন্য এক্সিকিউশন প্রোফাইল সংগ্রহ করে, যেগুলো অ্যাপ পারফরম্যান্স অপ্টিমাইজ করতে ব্যবহৃত হয়। অ্যাপ্লিকেশান স্টার্টআপের সময় কোন পদ্ধতিগুলি প্রায়শই কার্যকর করা হয় এবং কোন ক্লাসগুলি ব্যবহার করা হয় তা বোঝার জন্য সংগৃহীত প্রোফাইলগুলি পরীক্ষা করুন৷
দ্রষ্টব্য: এক্সিকিউশন প্রোফাইল ফাইলের নামটি পুনরুদ্ধার করা কেবল তখনই সম্ভব যদি আপনার ফাইল সিস্টেমে রুট অ্যাক্সেস থাকে, উদাহরণস্বরূপ, একটি এমুলেটরে।
প্রোফাইল তথ্যের একটি পাঠ্য ফর্ম তৈরি করতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
adb shell cmd package dump-profiles package
উত্পাদিত ফাইল পুনরুদ্ধার করতে, ব্যবহার করুন:
adb pull /data/misc/profman/package.prof.txt
পরীক্ষার ডিভাইস রিসেট করুন
আপনি একাধিক পরীক্ষা ডিভাইস জুড়ে আপনার অ্যাপ পরীক্ষা করলে, পরীক্ষার মধ্যে আপনার ডিভাইস রিসেট করা উপকারী হতে পারে, উদাহরণস্বরূপ, ব্যবহারকারীর ডেটা সরাতে এবং পরীক্ষার পরিবেশ রিসেট করতে। আপনি testharness
adb
শেল কমান্ড ব্যবহার করে Android 10 (API লেভেল 29) বা উচ্চতর চলমান একটি টেস্ট ডিভাইসের ফ্যাক্টরি রিসেট করতে পারেন, যেমন দেখানো হয়েছে:
adb shell cmd testharness enable
testharness
ব্যবহার করে ডিভাইসটি পুনরুদ্ধার করার সময়, ডিভাইসটি স্বয়ংক্রিয়ভাবে RSA কী ব্যাক আপ করে যা একটি স্থায়ী অবস্থানে বর্তমান ওয়ার্কস্টেশনের মাধ্যমে ডিবাগ করার অনুমতি দেয়। অর্থাৎ, ডিভাইসটি রিসেট করার পরে, ওয়ার্কস্টেশনটি ম্যানুয়ালি একটি নতুন কী নিবন্ধন না করেই ডিভাইসে ডিবাগ এবং adb
কমান্ড ইস্যু করা চালিয়ে যেতে পারে।
উপরন্তু, আপনার অ্যাপের পরীক্ষা চালিয়ে যাওয়া সহজ এবং আরও নিরাপদ করতে সাহায্য করার জন্য, একটি ডিভাইস পুনরুদ্ধার করতে testharness
ব্যবহার করে নিম্নলিখিত ডিভাইস সেটিংসও পরিবর্তন করে:
- ডিভাইসটি নির্দিষ্ট সিস্টেম সেটিংস সেট আপ করে যাতে প্রাথমিক ডিভাইস সেটআপ উইজার্ডগুলি উপস্থিত না হয়৷ অর্থাৎ, ডিভাইসটি এমন একটি অবস্থায় প্রবেশ করে যেখান থেকে আপনি দ্রুত ইনস্টল, ডিবাগ এবং আপনার অ্যাপ পরীক্ষা করতে পারবেন।
- সেটিংস:
- লক স্ক্রিন অক্ষম করে।
- জরুরী সতর্কতা অক্ষম করে।
- অ্যাকাউন্টের জন্য স্বতঃ-সিঙ্ক অক্ষম করে।
- স্বয়ংক্রিয় সিস্টেম আপডেট অক্ষম করে।
- অন্যান্য:
- পূর্ব-ইন্সটল করা নিরাপত্তা অ্যাপ অক্ষম করে।
আপনার অ্যাপটিকে testharness
কমান্ডের ডিফল্ট সেটিংস সনাক্ত করতে এবং মানিয়ে নিতে হলে ActivityManager.isRunningInUserTestHarness()
ব্যবহার করুন।
sqlite
sqlite3
SQLite ডাটাবেস পরীক্ষা করার জন্য sqlite
কমান্ড-লাইন প্রোগ্রাম শুরু করে। এটি একটি টেবিলের বিষয়বস্তু প্রিন্ট করার জন্য .schema
এবং বিদ্যমান টেবিলের জন্য SQL CREATE
স্টেটমেন্ট প্রিন্ট করার জন্য .dump
এর মতো কমান্ড অন্তর্ভুক্ত করে। আপনি কমান্ড লাইন থেকে SQLite কমান্ডগুলিও চালাতে পারেন, যেমন দেখানো হয়েছে:
$ adb -s emulator-5554 shell $ sqlite3 /data/data/com.example.app/databases/rssitems.db SQLite version 3.3.12 Enter ".help" for instructions
দ্রষ্টব্য: শুধুমাত্র একটি SQLite ডাটাবেস অ্যাক্সেস করা সম্ভব যদি আপনার ফাইল সিস্টেমে রুট অ্যাক্সেস থাকে, উদাহরণস্বরূপ, একটি এমুলেটরে।
আরও তথ্যের জন্য, sqlite3
কমান্ড লাইন ডকুমেন্টেশন দেখুন।
adb USB ব্যাকএন্ড
অ্যাডবি সার্ভার দুটি ব্যাকএন্ডের মাধ্যমে ইউএসবি স্ট্যাকের সাথে ইন্টারঅ্যাক্ট করতে পারে। এটি হয় ওএস (উইন্ডোজ, লিনাক্স, বা ম্যাকওএস) এর নেটিভ ব্যাকএন্ড ব্যবহার করতে পারে অথবা এটি libusb
ব্যাকএন্ড ব্যবহার করতে পারে। কিছু বৈশিষ্ট্য, যেমন attach
, detach
, এবং USB গতি সনাক্তকরণ, শুধুমাত্র libusb
ব্যাকএন্ড ব্যবহার করার সময় উপলব্ধ।
আপনি ADB_LIBUSB
পরিবেশ পরিবর্তনশীল ব্যবহার করে একটি ব্যাকএন্ড চয়ন করতে পারেন। এটি সেট না থাকলে, adb তার ডিফল্ট ব্যাকএন্ড ব্যবহার করে। ডিফল্ট আচরণ OS এর মধ্যে পরিবর্তিত হয়। ADB v34 দিয়ে শুরু করে, liubusb
ব্যাকএন্ড ডিফল্টরূপে উইন্ডোজ ছাড়া সমস্ত OS-এ ব্যবহৃত হয়, যেখানে নেটিভ ব্যাকএন্ড ডিফল্টরূপে ব্যবহৃত হয়। যদি ADB_LIBUSB
সেট করা থাকে, তাহলে এটি নির্ধারণ করে যে নেটিভ ব্যাকএন্ড বা libusb
ব্যবহার করা হবে কিনা। adb পরিবেশ ভেরিয়েবল সম্পর্কে আরও তথ্যের জন্য adb ম্যানুয়াল পৃষ্ঠাটি দেখুন।
adb mDNS ব্যাকএন্ড
সার্ভার এবং ডিভাইসগুলিকে স্বয়ংক্রিয়ভাবে সংযুক্ত করতে ADB মাল্টিকাস্ট ডিএনএস প্রোটোকল ব্যবহার করতে পারে। ADB সার্ভার দুটি ব্যাকএন্ড, Bonjour (Apple এর mdnsResponder) এবং Openscreen সহ পাঠানো হয়।
হোস্ট মেশিনে চলার জন্য Bonjour ব্যাকএন্ডের একটি ডেমন প্রয়োজন। MacOS অ্যাপলের অন্তর্নির্মিত ডেমন সর্বদা চলমান থাকে, তবে উইন্ডোজ এবং লিনাক্সে, ব্যবহারকারীকে নিশ্চিত করতে হবে যে mdnsd
ডেমন চালু আছে এবং চলছে। যদি adb mdns check
কমান্ড একটি ত্রুটি প্রদান করে, তাহলে সম্ভবত ADB Bonjour ব্যাকএন্ড ব্যবহার করছে কিন্তু কোন Bonjour ডেমন চলছে না।
ওপেনস্ক্রিন ব্যাকএন্ডের মেশিনে চলার জন্য ডেমনের প্রয়োজন নেই। MacOS-এ ওপেনস্ক্রিন ব্যাকএন্ডের জন্য সমর্থন ADB v35 থেকে শুরু হয়। উইন্ডোজ এবং লিনাক্স ADB v34 হিসাবে সমর্থিত।
ডিফল্টরূপে ADB Bonjour ব্যাকএন্ড ব্যবহার করে। পরিবেশ পরিবর্তনশীল ADB_MDNS_OPENSCREEN
( 1
বা 0
এ সেট) ব্যবহার করে এই আচরণ পরিবর্তন করা যেতে পারে। আরও বিস্তারিত জানার জন্য ADB ম্যানুয়াল পৃষ্ঠা দেখুন।