কম্পিউটার

ADB অ্যান্ড্রয়েড ইনস্টল গাইড:ড্রাইভার এবং কমান্ড

এই নিবন্ধে, আমরা অন্বেষণ করব যে আপনি যখন এক বা একাধিক ডিভাইস এবং এমুলেটর ইনস্টল করছেন, পরীক্ষা করছেন, নির্ণয় করছেন এবং পরিচালনা করছেন তখন কিছু সূক্ষ্ম নিয়ন্ত্রণ পেতে আপনি কীভাবে ADB ব্যবহার করতে পারেন৷

একটি সফ্টওয়্যার বিকাশকারী হিসাবে আমার প্রথম কয়েক বছর, প্রাথমিকভাবে Android SDK-এর সাথে কাজ করার জন্য, Android ডিবাগ ব্রিজ (ADB/adb) কী ছিল, এটি কী করেছিল বা কখন এটি ব্যবহার করতে হবে সে সম্পর্কে আমার কোনও ধারণা ছিল না৷

মজার বিষয় হল, এটি কিছু পেশাদার লক্ষ্য ছিল না যা আমাকে প্রাথমিকভাবে এটি সম্পর্কে শিখতে অনুপ্রাণিত করেছিল। বরং এটি ছিল আমার বুট লুপিং নেক্সাস 6 যা আমি মরিয়াভাবে পুনরুত্থিত করতে চেয়েছিলাম। এই জাতীয় সমস্যার জন্য, অ্যান্ড্রয়েড স্টুডিও এবং গ্রেডল জলরোধী টি ব্যাগের মতোই কার্যকর।

আমি আরও উল্লেখ করতে চাই যে এই নিবন্ধটি দুই ধরনের ব্যক্তিকে মাথায় রেখে লেখা হয়েছে :

  • যারা CLI, Shell, Processes এবং ক্লায়েন্ট-সার্ভার মডেলের সাথে পরিচিত
  • যারা CLI, Shell, Processes এবং ক্লায়েন্ট-সার্ভার মডেলের সাথে পরিচিত নয়

প্রথম বিভাগে যারা আছেন, আপনি শিরোনামের বিভাগটি এড়িয়ে যেতে চাইতে পারেন:"কিভাবে ADB এর সাথে কাজ করবেন "

দ্বিতীয় শ্রেণীর জন্য, আমি ধরে নেব যে আপনি একজন জুনিয়র ডেভেলপার হিসেবে আমার মতো ছিলেন এবং CLI, Shells এবং ADB সম্পর্কে খুব কমই জানেন। প্রথম বিভাগটি কিছু মৌলিক পদ এবং ধারণাগুলির জন্য একটি নরম ভূমিকা এবং শব্দকোষ, যা আমি পরিচালনা করতে পারি এমন সহজ উপায়ে ব্যাখ্যা করা হয়েছে৷

প্রিলিমিনারি

এখানে, আমরা কিছু বিষয় সম্পর্কে শিখব যা গুরুত্বপূর্ণ যদি আপনি বুঝতে চান কিভাবে ADB কাজ করে এবং ব্যবহার করা হয়।

আপনার মধ্যে কেউ কেউ হয়ত অতীতে ভিম উত্সাহী বা বিচারমূলক ইউনিক্স সিস্টেম অ্যাডমিনিস্ট্রেটরদের উপহাস করে কমান্ড লাইন সরঞ্জামগুলি শেখা থেকে ভয় পেয়েছিলেন। আপনি দেখতে পাবেন, আমি নির্দ্বিধায় স্বীকার করি যে আমার মস্তিষ্ক কীভাবে কাজ করে তার জন্য CLI আদর্শ নয়, তাই আমি মনে করি আপনি এই বিষয়ে আমার মতামত উপভোগ করতে পারেন।

কমান্ড লাইন

সহজভাবে বলতে গেলে, একটি কমান্ড লাইন হল একটি কম্পিউটারে একটি ইন্টারফেস (তথ্য পাঠানো/প্রাপ্তির উপায়) যা শুধুমাত্র পাঠ্যের লাইন ব্যবহার করে .

এটা বোঝা গুরুত্বপূর্ণ যে একটি কমান্ড লাইন ইন্টারফেস (CLI) নিজেই একটি প্রোগ্রাম নয়, বরং কিছু প্রোগ্রাম একটি CLI প্রদান করবে (এবং সম্ভবত অন্যান্য ইন্টারফেস যেমন একটি GUI)।

কোনো কোনো সময়ে, আপনি হয়ত উইন্ডোজ কমান্ড প্রম্পটে কিছু টাইপ করেছেন (অথবা আপনি যদি আমার মতো 90-এর দশকের বাচ্চা হন তবে MS-DOS), ম্যাক টার্মিনাল, বা অনেক লিনাক্স ডিস্ট্রিবিউশনে সাধারণ জিনোম টার্মিনালের মতো কিছু। এই সব প্রাথমিকভাবে একটি CLI মাধ্যমে ব্যবহৃত হয়.

একটি CLI ব্যবহার করার সুবিধা এবং ঘাটতিগুলি মূলত এটি ব্যবহার করা ব্যক্তির উপর নির্ভর করে এবং তারা কি ধরনের সমস্যা সমাধান করার চেষ্টা করছে। আমি ব্যক্তিগতভাবে CLI ব্যবহার করতে পছন্দ করি না যদি না এটি এমন কিছুর জন্য হয় যা আমি প্রায় প্রতিদিন করি .

আমার মস্তিষ্ক অস্পষ্ট শর্টহ্যান্ড টেক্সট কমান্ডগুলি মনে রাখার জন্য উপযুক্ত নয় (একই কারণে ছোটবেলায় পড়তে শিখতে আমার সমস্যা হয়েছিল), তাই আমাকে অবশ্যই পুনরাবৃত্তি-ভিত্তিক অন্তর্নিহিত মেমরি (পেশী মেমরি) এবং চিট শীটের উপর নির্ভর করতে হবে।

যারা সংগ্রাম করে হলেও সময় দিতে ইচ্ছুক (যেমন আমি করি), অথবা যারা এই ধরনের জিনিস মনে রাখতে সত্যিই বেশ ভালো,আপনি সম্ভবত আপনি কতটা দক্ষ হতে পারেন তা উপলব্ধি করতে শিখবেন একটি CLI বনাম একটি GUI এর মধ্যে .

বিভিন্ন মেনু এবং স্ক্রীনের মাধ্যমে আপনার পথ নির্দেশ করতে এবং ক্লিক করতে যে সময় লাগে তার একটি ভগ্নাংশে অনেকগুলি অপারেশন করা যেতে পারে। স্ক্রিপ্টগুলি লেখাও সম্ভব, যেগুলি পাঠ্য কমান্ডগুলির একটি সিরিজ সম্বলিত ফাইল, যা আপনার দক্ষতা আরও বাড়িয়ে তুলতে পারে৷

এবিডি শেল কীভাবে ব্যবহার করবেন

আমাকে ধরে নিতে হবে যে আপনি অপারেটিং সিস্টেম (OS) শব্দটির সাথে পরিচিত, যার মধ্যে রয়েছে অ্যান্ড্রয়েড, আইওএস, উইন্ডোজ, ম্যাক, লিনাক্স এবং অন্য কোনো ইউনিক্স-এর মতো সিস্টেম।

কেন এই শব্দটি ADB এর জন্য প্রাসঙ্গিক? স্পষ্টতার চেয়ে স্পষ্টতাকে অগ্রাধিকার দেয় এমন একটি ব্যাখ্যা দিতে, অ্যান্ড্রয়েড ওএস লিনাক্সের উপর ভিত্তি করে এবং লিনাক্স ইউনিক্সের উপর ভিত্তি করে।

এর ফলস্বরূপ, আমরা যে ডিভাইস বা এমুলেটরের সাথে কাজ করছি তার জন্য ইউনিক্স শেল ধরে রাখতে আমরা ADB ব্যবহার করতে পারি। এটি আমাদের ডিভাইস বা এমুলেটর এর শেলের সাথে সরাসরি ইন্টারঅ্যাক্ট করার মাধ্যমে প্রচুর নমনীয়তা, ক্ষমতা এবং নিয়ন্ত্রণের অনুমতি দেয়।

একটি শেল হল প্রোগ্রামের জন্য একটি সাধারণ শব্দ যা আপনি একটি OS এর সাথে ইন্টারঅ্যাক্ট করতে ব্যবহার করেন। ঠিক যেমন একটি কচ্ছপের খোসা একটি কচ্ছপকে সুরক্ষা এবং অ্যাক্সেস প্রদান করে (এবং এটি সবচেয়ে বাইরের স্তর), একটি OS এর শেলটি OS এর ভিতরের কাজগুলিকে সুরক্ষা এবং অ্যাক্সেস প্রদান করে। ব্যক্তিগতভাবে, আমি এটা জেনে বেশ অবাক হয়েছিলাম যে "শেল" কিছু গুপ্ত সংক্ষিপ্ত শব্দ ছিল না।

এই শব্দটিকে অতিরিক্ত চিন্তা করার প্রয়োজন বোধ করবেন না। আপনি যদি এটি কোনো ধরনের কম্পিউটারে পড়ছেন, আপনি এখানে পেতে সাহায্য করার জন্য একটি শেল ব্যবহার করেছেন।

একটি শেল উভয় একটি CLI বা GUI প্রদান করতে পারে। উভয় ক্ষেত্রেই আপনি ফাইলগুলি তৈরি/আপডেট/মুছতে/সরাতে, অন্যান্য প্রোগ্রাম শুরু করতে এবং শেলের মাধ্যমে উপলব্ধ OS-এর বিভিন্ন পরিষেবা অ্যাক্সেস করতে এটি ব্যবহার করবেন৷

কিভাবে ABD ক্লায়েন্ট এবং ABD সার্ভার ব্যবহার করবেন

আবার, আসুন একটি সামান্য অস্পষ্ট ব্যাখ্যা দিয়ে শুরু করি যা আশা করা যায় বোঝা সহজ। যদিও আমি এই সংজ্ঞাটি শীঘ্রই সংশোধন করব।

ক্লায়েন্ট এবং সার্ভার উভয়ই কম্পিউটার। কেন আমরা তাদের এইভাবে আলাদা করি তার কারণ তাদের ভুমিকা এর উপর ভিত্তি করে . উদাহরণস্বরূপ, আপনার কম্পিউটার (সেটি একটি ডেস্কটপ, ল্যাপটপ, ফোন বা অন্য যা কিছু হোক না কেন) একটি ফ্রিকোডক্যাম্প সার্ভারের ক্লায়েন্ট, যা পরিষেবা করে আপনি এই HTML পাতা.

সাধারণভাবে, একজন ক্লায়েন্ট হল অন্য কিছু ব্যবহার করে , যেখানে একটি সার্ভার হল যা ব্যবহার করা হচ্ছে . এই শব্দটিকে অতিরিক্ত চিন্তা করবেন না, যেহেতু একটি ক্লায়েন্ট-সার্ভার মডেল কম্পিউটিং-এর ভিতরে এবং বাইরে অনেকগুলি জিনিস বর্ণনা করতে পারে৷

এখন, যখন আমি বলেছিলাম যে ক্লায়েন্ট এবং সার্ভার উভয়ই "কম্পিউটার", এটি আসলে সত্য নয় যে প্রেক্ষাপটে আমরা পরে এই পদগুলি ব্যবহার করব৷

প্রোগ্রামার এবং ইঞ্জিনিয়ার হিসাবে, আমাদের সাধারণত ক্লায়েন্ট এবং সার্ভারগুলিকে প্রক্রিয়া হিসাবে ভাবতে হবে (একটি প্রক্রিয়া কেবল একটি চলমান প্রোগ্রাম )

এর মানে হল যে যখন একটি ক্লায়েন্ট প্রক্রিয়া এবং একটি সার্ভার প্রক্রিয়া প্রায়শই পৃথক কম্পিউটারে চলে, তারা একই কম্পিউটারে চালালে এটিও ভাল।

তারা উল্লিখিত কম্পিউটারের মেমরি স্পেসে স্বতন্ত্র অবস্থানগুলি দখল করবে, তাই কার্যকরীভাবে একমাত্র পার্থক্য হল তারা নেটওয়ার্ক সংযোগের মাধ্যমে একে অপরকে বার্তা পাঠানোর বিপরীতে IPC (আন্তঃপ্রক্রিয়া যোগাযোগ) ব্যবহার করে যোগাযোগ করবে।

আমরা শীঘ্রই দেখতে পাব, ADB একটি সার্ভার প্রক্রিয়া ব্যবহার করে, যা একাধিক বিকাশকারীকে (একাধিক ক্লায়েন্ট) একাধিক অ্যান্ড্রয়েড ডিভাইস এবং/অথবা এমুলেটর পরিচালনা করতে দেয়।

একটি এন্টারপ্রাইজ সেটিংয়ে, এই সার্ভার প্রক্রিয়াটি সম্ভবত একটি দূরবর্তী (একটি নেটওয়ার্ক সংযোগের মাধ্যমে যোগাযোগ করা) কম্পিউটারে বসবে, তবে আমরা একটি সার্ভার সেট আপ করব যা আমাদের ক্লায়েন্টের স্থানীয়। এটি করা আপনার ধারণার চেয়ে অনেক সহজ হবে।

এবিডি ডেমন কি?

যদি আপনি এগিয়ে যান, আমি ইতিমধ্যে ব্যাখ্যা করেছি যে একটি প্রক্রিয়া কেবল একটি চলমান প্রোগ্রাম। একটি ডেমন হল একটি প্রক্রিয়া যা ব্যাকগ্রাউন্ডে চলে, যার অর্থ হল ব্যবহারকারী সরাসরি এটির সাথে যোগাযোগ করে না।

উদাহরণস্বরূপ, যদি আপনি একটি ওয়েব ব্রাউজার খোলেন, তাহলে সম্ভাবনা হল যে ইন্টারনেট সংযোগের জন্য প্রয়োজনীয় নেটওয়ার্ক সংযোগগুলি পরিচালনার প্রকৃত কাজটি নেটওয়ার্ক ম্যানেজার ডেমনের মতো কিছু দ্বারা করা হবে (ব্রাউজার প্রক্রিয়ার বিপরীতে)। পি>

প্রতিটি অ্যান্ড্রয়েড ডিভাইস (ভৌতিক বা অনুকরণ করা), এটি সঠিকভাবে কনফিগার করা হয়েছে বলে ধরে নিলে, একটি ADB ডেমন (adbd) থাকবে যা একটি সার্ভার প্রক্রিয়া দ্বারা প্রদত্ত কমান্ডগুলি কার্যকর করে৷

সংক্ষেপে, যখন আমাদের ক্লায়েন্ট সার্ভারে একটি কমান্ড ইস্যু করে, সার্ভার সেই কমান্ডটি ADBD-এর কাছে ফরোয়ার্ড করবে, যা ডিভাইসে এটি কার্যকর করবে।

অ্যান্ড্রয়েড ডেভেলপমেন্টের জন্য কীভাবে ADB ব্যবহার করবেন

এই নিবন্ধের বাকি অংশের জন্য, আমরা নিম্নলিখিত বিষয়গুলি অন্বেষণ করব:

  • আপনার সিস্টেমে ADB ব্যবহার করার জন্য প্রয়োজনীয় ড্রাইভার এবং কনফিগারেশন
  • ভৌত ডিভাইস এবং এমুলেটরগুলির সাথে ADB ব্যবহার করা
  • ADB-এর CLI ব্যবহার করে মৌলিক কমান্ডগুলি
  • এডিবি-এর মাধ্যমে একটি অ্যান্ড্রয়েড ডিভাইসের শেল ব্যবহার করে আরও জটিল ব্যবহারের দিকে এক নজর

এগিয়ে যাওয়ার আগে, আপনি ADB-এর সাথে ইন্টারঅ্যাক্ট করার জন্য কোন CLI টুল ব্যবহার করবেন তা নির্ধারণ করতে চাইবেন। উইন্ডোজে, আমি পাওয়ারশেল ব্যবহার করতে পছন্দ করি, তবে কমান্ড প্রম্পটও কাজ করবে। লিনাক্স এবং ম্যাকের জন্য, ডিফল্ট টার্মিনাল কাজ করা উচিত।

কাজ সম্পন্ন করা যাই হোক না কেন ব্যবহার করতে নির্দ্বিধায়.

এই নিবন্ধটিতে পুরো প্রক্রিয়াটির একটি খুব বিশদ ব্যাখ্যা রয়েছে, তবে আমি একটি ভিডিও টিউটোরিয়াল তৈরি করেছি যা এখানে সংক্ষিপ্তভাবে কভার করেছে:

adb এর জন্য ভিডিও টিউটোরিয়াল।

সিএলআই উদাহরণগুলি কীভাবে বুঝবেন

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

আপনার লেখা CLI কমান্ডে কোণ বন্ধনী অন্তর্ভুক্ত করবেন না।

উদাহরণস্বরূপ, যদি আমি লিখি...:

adb pair <ip-address>:<port>

...আপনি প্রকৃত মানের জন্য কোণ বন্ধনী এবং নাম প্রতিস্থাপন করবেন, যেমন:

adb pair 192.168.0.1:5554

ABD ড্রাইভার এবং কনফিগারেশন

প্রথমত, নিশ্চিত করুন যে আপনার কাছে Android SDK Platform-Tools-এর সর্বশেষ (বা অন্তত একটি সাম্প্রতিক) সংস্করণ আছে। যদি কোনো কারণে আপনি অ্যান্ড্রয়েড স্টুডিও (AS) ব্যবহার না করেন, তাহলে সেই লিঙ্কটিতে ক্লিক করুন এবং আপনার নিজ নিজ OS-এর জন্য স্বতন্ত্র প্যাকেজটি ডাউনলোড করুন।

আপনার যদি অ্যান্ড্রয়েড স্টুডিও থাকে, আপনি SDK ম্যানেজার ব্যবহার করে এই প্যাকেজটি ডাউনলোড বা আপডেট করতে পারেন।

SDK ম্যানেজার খোলার জন্য AS-তে সাধারণত একটি টুলবার আইকন থাকে, কিন্তু তারা ব্যবহারিকভাবে প্রতিটি হটফিক্সের মতো দেখতে পছন্দ করে।

যদি আপনার ভাগ্য না থাকে তবে ফাইল -> সেটিংস এ যান৷ এবং অনুসন্ধান বারে, "SDK" টাইপ করুন এবং "Android SDK" মেনু আইটেমটি অনুসন্ধান করুন৷

ADB অ্যান্ড্রয়েড ইনস্টল গাইড:ড্রাইভার এবং কমান্ড
সিস্টেম সেটিং দেখায় যে Android SDK প্ল্যাটফর্ম টুল ইনস্টল করা আছে

পরবর্তী ধাপে পরিবর্তন হয় বেশ কয়েকটি ভেরিয়েবলের উপর নির্ভর করে। যেমনটি প্রিলিমিনারি এ আলোচনা করা হয়েছে বিভাগে, ADB একটি ক্লায়েন্ট-সার্ভার মডেল ব্যবহার করে যা আপনি কীভাবে সরঞ্জামটি ব্যবহার করেন তাতে অনেক নমনীয়তার অনুমতি দেয়।

আরো সুনির্দিষ্ট হতে, আপনার থাকতে পারে:

  • একটি দূরবর্তী সার্ভারের সাথে একাধিক ক্লায়েন্ট ইন্টারঅ্যাক্ট করছে
  • একটি সার্ভার যা একটি ক্লায়েন্টের স্থানীয় (একই কম্পিউটার)
  • একই সার্ভারের সাথে সংযুক্ত বিভিন্ন ধরনের ভৌত ডিভাইস এবং এমুলেটর

একাধিক ক্লায়েন্ট এবং অত্যধিক সংখ্যক ডিভাইসের সাথে উন্নত কনফিগারেশন ADB এর মাধ্যমে সম্ভব, কিন্তু এই নিবন্ধের সুযোগের বাইরে।

একটি সার্ভার উন্নত কনফিগারেশনের প্রয়োজন ছাড়াই 16টি এমুলেটর এবং আপনার পছন্দ অনুযায়ী অনেকগুলি শারীরিক ডিভাইস পরিচালনা করতে পারে।

এই নিবন্ধের বাকি অংশের জন্য, একটি একক ADB সার্ভার প্রক্রিয়ার জন্য একটি শারীরিক ডিভাইস এবং একটি এমুলেটর নিয়ে আমরা সবচেয়ে বেশি কাজ করব৷

কিভাবে একটি ABD এমুলেটর কনফিগার করবেন

সম্ভবত আপনার আর কোন কনফিগারেশন করার দরকার নেই, তবে এটা সম্ভব যে আপনাকে ডেভেলপার বিকল্পগুলি সক্ষম করতে হবে আপনার এমুলেটরে। আপনি খুব শীঘ্রই জানতে পারবেন যে এটি সঠিকভাবে কাজ করছে কিনা যখন আমরা আমাদের প্রথম কয়েকটি ADB কমান্ডে পৌঁছাব৷

আপনি যদি আপনার এমুলেটরে এই বৈশিষ্ট্যটি সক্ষম করতে চান তবে আপনার Android এর নির্দিষ্ট সংস্করণের জন্য এটি কীভাবে করবেন তা আপনাকে গবেষণা করতে হবে৷

ইউএসবি ডিবাগিং – কিভাবে একটি শারীরিক ডিভাইস কনফিগার করতে হয়

আপনি যদি একটি শারীরিক অ্যান্ড্রয়েড ডিভাইস ব্যবহার করার পরিকল্পনা না করেন তবে আপনি এই বিভাগটি এড়িয়ে যেতে পারেন। যাইহোক, এটি লক্ষণীয় যে আপনাকে এখনও বিকাশকারী বিকল্পগুলি সক্ষম করতে হতে পারে

এগিয়ে যাওয়ার জন্য, আপনাকে আপনার Android ডিভাইস এবং ডেভেলপমেন্ট মেশিনে USB ডিবাগিং বা WiFi ডিবাগিং কনফিগার করতে হবে৷

উভয় ক্ষেত্রেই, বিকাশকারী বিকল্পগুলি সক্ষম করে শুরু করুন৷ আপনার ডিভাইসে। আপনার অ্যান্ড্রয়েডের নির্দিষ্ট সংস্করণের জন্য এটি কীভাবে করবেন তা আপনাকে গবেষণা করতে হবে।

USB ডিবাগিং

আপনি বিকাশকারী বিকল্পগুলির মাধ্যমে Android ডিভাইসে USB ডিবাগিং সক্ষম করেছেন তা নিশ্চিত করুন৷ আমি উপরে যে লিঙ্কটি শেয়ার করেছি সেটি সেই প্রক্রিয়াটিকে বর্ণনা করবে, যা Android OS এর বিভিন্ন সংস্করণে কিছুটা পরিবর্তন হতে থাকে।

এগিয়ে যাওয়ার আগে, উইন্ডোজ ব্যবহারকারীদের একটি USB ড্রাইভার ডাউনলোড করতে হবে। উবুন্টু ব্যবহারকারীদেরও কিছু অতিরিক্ত পদক্ষেপ প্রয়োজন। ম্যাক এবং ক্রোম ওএসের জন্য, আপনাকে যেতে হবে।

একবার বিকাশকারী বিকল্পগুলির মাধ্যমে USB ডিবাগিং সক্ষম হয়ে গেলে, একটি USB কেবলের মাধ্যমে আপনার Android ডিভাইসটি সংযুক্ত করুন৷

ওয়াইফাই ডিবাগিং

যদি আপনার একাধিক শারীরিক ডিভাইস থাকে বা USB কেবলের অভাব থাকে, তাহলে আপনি WiFi ডিবাগিং বেছে নিতে চাইতে পারেন।

আবার, আপনার অ্যান্ড্রয়েড ডিভাইসে বিকাশকারী বিকল্পগুলিতে যান এবং ওয়্যারলেস ডিবাগিং সক্ষম করুন৷ এটি আপনাকে নেটওয়ার্কে ডিবাগ করার অনুমতি দেওয়ার বিষয়ে প্রম্পট করবে যে ডিভাইসটি বর্তমানে সংযুক্ত রয়েছে, যেটি আপনার অনুমতি দেওয়া উচিত (ধরে নেওয়া উপযুক্ত নেটওয়ার্ক)।

আপনার CLI এর সাথে কাজ শুরু করার সময় . প্রথমে, আপনাকে আপনার Android SDK ইনস্টলেশন ডিরেক্টরির মধ্যে প্ল্যাটফর্ম-টুল ডিরেক্টরি (বা ফোল্ডার - একই জিনিস) সনাক্ত করতে হবে।

ধরে নিচ্ছি যে আপনার Android স্টুডিও ইনস্টল করা আছে, অ্যাপের মাধ্যমে এটি সনাক্ত করার একটি দ্রুত উপায় হল আবার ফাইল -> সেটিংসে যাওয়া, তারপর অনুসন্ধান বারে "SDK" টাইপ করুন। "Android SDK" মেনু আপনাকে দেখাবে যে আপনার SDK কোথায় ইনস্টল করা আছে, যেটি এমন ডিরেক্টরি হবে যাতে প্ল্যাটফর্ম-টুল থাকা উচিত।

নীচের উদাহরণে, আমি আমার Android SDK ডিরেক্টরিতে পাথ কপি করেছি৷ , এবং তারপর Windows PowerShell-এর একটি উদাহরণ খোলেন। আমি তারপর নিম্নলিখিত কমান্ড টাইপ করেছি:

পরিবর্তন নির্দেশিকা:

cd <path-to-SDK-directory>

ফাইল এবং ডিরেক্টরি তালিকাভুক্ত করুন:

ls
ADB অ্যান্ড্রয়েড ইনস্টল গাইড:ড্রাইভার এবং কমান্ড

এরপর, আমি cd platform-tools টাইপ করেছি যে ডিরেক্টরি নেভিগেট করতে. মনে রাখবেন যে নিম্নলিখিত পদক্ষেপগুলি অনুমান করে আপনি এমন একটি ডিভাইস ব্যবহার করছেন যা Android OS 11 বা উচ্চতর চালাচ্ছে৷

আপনি যদি অ্যান্ড্রয়েড 10 বা তার কম সংস্করণে চলমান কোনো ডিভাইস নিয়ে কাজ করেন, তাহলে সেই পরিস্থিতির জন্য বিস্তারিত নির্দেশাবলী এখানে পাওয়া যাবে।

একবার আপনি প্ল্যাটফর্ম-টুল ডিরেক্টরির মধ্যে চলে গেলে, আপনি নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করে একটি ডেভেলপমেন্ট মেশিনের সাথে একটি অ্যান্ড্রয়েড ডিভাইস যুক্ত করতে প্রস্তুত:

1. সেটিংস -> সিস্টেম -> বিকাশকারী বিকল্পগুলিতে ওয়্যারলেস ডিবাগিং সাবমেনুর মধ্যে, পেয়ারিং কোডের সাথে ডিভাইস যুক্ত করুন নির্বাচন করুন .

2. আপনার CLI টুলের মধ্যে যা প্ল্যাটফর্ম-টুল ডিরেক্টরিতে সেট করা উচিত, নিম্নলিখিত কমান্ডটি প্রবেশ করান:

adb pair <IP address>:<Port>

যেখানে IP ঠিকানা এবং পোর্ট উভয়ই আপনার Android ডিভাইসের ডায়ালগ থেকে আসে যা পেয়ারিং কোডের সাথে ডিভাইস যুক্ত করুন নির্বাচন করার পরে পপ আপ হয় (কোণ বন্ধনী অন্তর্ভুক্ত করবেন না)।

দ্রষ্টব্য:আপনি কোন CLI টুল ব্যবহার করছেন, আপনার OS এবং আপনার অ্যাক্সেস কন্ট্রোলের উপর নির্ভর করে আপনাকে কিছু অন্যান্য চিহ্ন বা কমান্ড দিয়ে আপনার কলকে অ্যাডবি-তে প্রিপেন্ড করতে হতে পারে। উদাহরণস্বরূপ, আমাকে উইন্ডোজে পাওয়ারশেল ব্যবহার করে .\adb জোড়া : টাইপ করতে হয়েছিল।

3. ধরে নিচ্ছি যে জিনিসগুলি আপনার CLI এর সাথে ভাল হয়েছে, আপনাকে পেয়ারিং কোডটি প্রবেশ করতে বলা হবে যা Android ডিভাইসে একই ডায়ালগে দৃশ্যমান হয়েছে যা আপনাকে IP ঠিকানা এবং পোর্ট নম্বর দিয়েছে৷

4. পেয়ারিং কোড লেখার পর, আপনি জানতে পারবেন যে এই অপারেশন সফল হয়েছে যদি আপনি উল্লেখ করে একটি বার্তা পান:

Successfully paired to <IP Address>:<Port> [guid=<Some GUID>]

5. আপনি যদি উইন্ডোজ বা লিনাক্স ব্যবহার করেন তবে আপনাকে আইপি অ্যাড্রেস এবং পোর্ট ব্যবহার করে নিম্নলিখিত কমান্ডটি চালাতে হবে যা ওয়্যারলেস ডিবাগিং পছন্দ মেনু থেকে দৃশ্যমান হয় (সংলাপ নয় যা পেয়ারিং কোড সহ পেয়ার ডিভাইস নির্বাচন করার পরে পপ আপ হয়) :

adb connect <IP Address>:<Port>

এর পরে আপনার ফোনে একটি বিজ্ঞপ্তি পাওয়া উচিত যাতে আপনি সংযুক্ত আছেন।

কিভাবে ADB ব্যবহার করবেন:কমান্ড

ধরে নিচ্ছি আপনি আপনার অ্যান্ড্রয়েড ডিভাইস এবং আপনার ডেভেলপমেন্ট মেশিন সঠিকভাবে কনফিগার করতে পেরেছেন, আপনি এখন ADB টুল ব্যবহার করতে পারেন।

এগিয়ে যাওয়ার আগে, একটি CLI টুল ব্যবহার করে adb ধারণকারী ডিরেক্টরিতে নেভিগেট করুন (যদি না আপনি ওয়াইফাই ডিবাগিং সেট আপ করার জন্য পূর্ববর্তী বিভাগে দেওয়া পদক্ষেপগুলি অনুসরণ করেন)।

অন্যথায় এখনই তা করুন, বা ফোল্ডারটি কীভাবে সনাক্ত করতে হয় তার নির্দেশাবলীর জন্য সেই বিভাগটি দেখুন৷

কোন ডিভাইসগুলি বর্তমানে সার্ভারের সাথে সংযুক্ত আছে তা কীভাবে দেখতে হয়

আপনি এখন adb kill-server ছাড়া ADB-এর যেকোনো কমান্ডে কল করে একটি adb সার্ভার শুরু করতে পারেন . আপনার সার্ভার প্রক্রিয়া চলমান কিনা, নিম্নলিখিত কমান্ড টাইপ করুন:

adb devices

ADB অ্যান্ড্রয়েড ইনস্টল গাইড:ড্রাইভার এবং কমান্ড

উপরের স্ক্রিনশটে, আমি প্রথমে adb devices কল করেছিলাম যখন আমার অ্যান্ড্রয়েড ফোন সার্ভারের সাথে সংযুক্ত ছিল। adb kill-server এর মাধ্যমে সার্ভারটিকে হত্যা করার পরে কমান্ড, আমি আবার ডিভাইসগুলিকে কল করেছি যা সার্ভার পুনরায় চালু করেছে।

আবার, যদি একটি ADB সার্ভার বর্তমানে চালু না হয়, কম বা কম যেকোন ADB কমান্ডকে কল করলে সার্ভার ব্যাক আপ শুরু হবে (adb kill-server ছাড়া , অবশ্যই). একটি স্পষ্ট adb start-server আছে কমান্ড, কিন্তু বাস্তবে আমার কখনই এটি ব্যবহার করার প্রয়োজন হয়নি৷

যেহেতু সার্ভার রিসেট করা হয়েছে, ডিভাইসগুলি কোনো আইটেম ফেরত দেয়নি৷ অতএব, পরবর্তী উদাহরণে যাওয়ার আগে আমাকে আবার adb pair ব্যবহার করতে হয়েছিল এবং adb connect (যদি উইন্ডোজ বা লিনাক্সে) পূর্ববর্তী বিভাগে বর্ণিত কমান্ড।

আমি এখন PowerShell ব্যবহার করে একটি এমুলেটর এবং এমুলেটর প্রোগ্রামটি চালু করেছি যা "এমুলেটর" নামক প্ল্যাটফর্ম-টুলগুলির একটি সাবডিরেক্টরিতে অবস্থিত।

আপনি অবশ্যই AVD ম্যানেজার বা অ্যান্ড্রয়েড স্টুডিও ব্যবহার করতে পারেন একটি এমুলেটর চালু করতে যদি আপনি চান তাহলে উদাহরণটি অনুসরণ করতে পারেন।

আপনার কাছে অনেকগুলি সংযুক্ত ডিভাইস থাকলে, adb devices-এর জন্য একটি দরকারী বিকল্প৷ কমান্ড হল -l , যা আপনাকে ডিভাইসগুলি সম্পর্কে আরও তথ্য দেয়৷

নীচে আপনি বেশ কয়েকটি এন্ট্রি দেখতে পাবেন যা আমার শারীরিক অ্যান্ড্রয়েড ডিভাইসের সাথে সাথে একটি এমুলেটর যা একটি নির্দিষ্ট পোর্টের সাথে সংযুক্ত করা হয়েছে:

ADB অ্যান্ড্রয়েড ইনস্টল গাইড:ড্রাইভার এবং কমান্ড

কীভাবে একটি নির্দিষ্ট ডিভাইসে কমান্ড পাঠাতে হয়

ভুলবশত আমার ফোনে ব্রিকিং এড়াতে, আমি পরিবর্তে এমুলেটরে কমান্ড পাঠাতে চাই। এটি করার জন্য, আমাকে অবশ্যই -s পূর্বে লিখতে হবে কমান্ড টাইপ করার আগে, টার্গেট ডিভাইসের সিরিয়াল নম্বর অনুসরণ করে বিকল্প।

ক্রমিক নম্বর হল অক্ষরের প্রথম সেট যা ডিভাইস কমান্ড ব্যবহার করার পরে একটি সংযুক্ত ডিভাইস বর্ণনা করে।

উদাহরণ স্বরূপ, এই ক্ষেত্রে এমুলেটরের ক্রমিক নম্বরটি শুধুমাত্র এমুলেটর শব্দটি যার সাথে বর্তমানে এমুলেটর সংযুক্ত পোর্টটি অনুসরণ করে।

ADB অ্যান্ড্রয়েড ইনস্টল গাইড:ড্রাইভার এবং কমান্ড

অন্য লাল তীরটি আমার ফোনের সিরিয়াল নম্বরকে নির্দেশ করে (স্পষ্ট কারণে অবরুদ্ধ)।

স্বাভাবিকভাবেই, যদি আপনার শুধুমাত্র একটি ডিভাইস সংযুক্ত থাকে (সেটি যে ধরনেরই হোক না কেন), আপনাকে -s ব্যবহার করতে হবে না বিকল্প।

একটি ডিভাইসে একটি APK (অ্যাপ) ইনস্টল করুন

আমি এখন adb install ব্যবহার করে চলমান এমুলেটরে একটি পরীক্ষা APK ইনস্টল করতে যাচ্ছি আদেশ

এটি মূলত অ্যান্ড্রয়েড স্টুডিও এবং গ্রেডল একটি ডিবাগ APK ইনস্টল করার সমতুল্য। আপনি দেখতে পাচ্ছেন, পরীক্ষার APK-এর -t প্রয়োজন ইনস্টল কমান্ডের পরে বিকল্প:

adb -s <device-serial-number> install -t <path-to-APK>

ADB অ্যান্ড্রয়েড ইনস্টল গাইড:ড্রাইভার এবং কমান্ড

দ্রষ্টব্য:Android OS-এর প্রয়োজন যে কোনো APK ইন্সটল করার আগে অবশ্যই সাইন ইন করতে হবে (এমনকি যদি এটি শুধুমাত্র একটি পরীক্ষা/ডিবাগ APK হয়)।

একটি সমাধান হ'ল অ্যান্ড্রয়েড স্টুডিওতে ইনস্টল করার জন্য অ্যাপটি তৈরি করা এবং চালানো, যা এটি একটি জেনারেট করা ডিবাগ শংসাপত্রের সাথে স্বাক্ষর করবে। এই ধরনের একটি APK সাইন করার আরও অনেক উপায় আছে যা আপনি এই লিঙ্কে গিয়ে অন্বেষণ করতে পারেন।

এডিবি আর কি করতে পারে?

ADB-এর আরও কিছু উন্নত ব্যবহারের দিকে নজর দেওয়ার আগে, আমি আপনাকে adb --help চেষ্টা করার জন্য জোরালোভাবে উৎসাহিত করছি আদেশ বেশিরভাগ CLI ভিত্তিক প্রোগ্রামগুলির জন্য প্রথাগত হিসাবে, সাহায্য কমান্ডটি ডকুমেন্টেশন প্রিন্ট করবে যা টুলের বিভিন্ন কমান্ড এবং বিকল্পগুলি বর্ণনা করে।

আমি এটা বলতে পেরে খুশি যে ADB-এর জন্য ডকুমেন্টেশন বেশ সুস্পষ্ট এবং দরকারী, যা CLI প্রোগ্রামে সবসময় হয় না।

উন্নত ADB ব্যবহারের পরামর্শ

এই নিবন্ধে ADB-এর প্রতিটি ব্যবহার এবং কমান্ড কভার করা আমাদের উভয়ের জন্যই সময়ের অপচয় হবে।

যদি কোনো বিভ্রান্তি থাকে, তাহলে ADB ব্যবহার করে APK ইনস্টল করা এবং অ্যান্ড্রয়েড স্টুডিও এবং গ্রেডল আপনার জন্য অনেক কিছু করে যা আমি সুপারিশ করব না (যদি না আপনার কাছে এটি করার উপযুক্ত কারণ থাকে)।

এটি বলার সাথে সাথে, ADB অনেক কিছু করতে পারে যা এটি ছাড়া করা কঠিন বা অসম্ভব।

প্রাথমিক বিভাগে, আমি উল্লেখ করেছি যে ডিভাইসের শেলের হুক পেতে ADB ব্যবহার করা যেতে পারে। এই নিবন্ধটি শেষ করতে, আমরা শেল কমান্ডগুলি কীভাবে ব্যবহার করতে হয় এবং সেগুলি সম্পর্কে আরও তথ্য কোথায় পাওয়া যায় তা দেখব।

আপনি যদি না জানেন যে শেল কী, আপনি সম্ভবত উপরের বিভাগটি এড়িয়ে গেছেন যেখানে আমি ব্যাখ্যা করেছি।

কিভাবে ABD শেল ব্যবহার করবেন

ADB ব্যবহার করে ডিভাইসের শেলে একটি কমান্ড পাঠানো মোটামুটি সহজ। মনে রাখবেন যে আপনার একাধিক ডিভাইস সংযুক্ত থাকলে, -s <device-serial-number> দিয়ে এটি অনুসরণ করুন একটি নির্দিষ্ট ডিভাইসে কমান্ড নির্দেশ করতে।

একটি একক শেল কমান্ড তৈরি করতে, আমাদের অবশ্যই adb shell ব্যবহার করতে হবে কমান্ড (বড় আশ্চর্য, ইহ?), এর পরে প্রকৃত কমান্ড যা আমরা ডিভাইসের শেলে করতে চাই:

adb shell ls

আউটপুট:

ADB অ্যান্ড্রয়েড ইনস্টল গাইড:ড্রাইভার এবং কমান্ড

পূর্বে উল্লেখ করা হয়েছে, ls কমান্ড CLI এর বর্তমান ডিরেক্টরিতে ফাইল এবং ডিরেক্টরিগুলির একটি তালিকা প্রদর্শন করে। এটি Android ডিভাইসের রুট ডিরেক্টরি হিসাবে ঘটবে যতক্ষণ না আমরা অন্য একটিতে চলে যাই।

আপনি শেল এর মাধ্যমে অনেক কমান্ড তৈরি করার পরিকল্পনা করলে, আপনি একটি ইন্টারেক্টিভ শেল সেশনও শুরু করতে পারেন। এটি সহজ কমান্ডের মাধ্যমে করা যেতে পারে:

adb shell

একটি ইন্টারেক্টিভ শেল সেশনে থাকাকালীন, আপনি adb shell <command> ব্যবহার না করে সরাসরি শেল কমান্ড টাইপ করতে পারেন .

মনে রাখবেন যে আপনি যখন ইন্টারেক্টিভ শেল সেশন ছেড়ে যেতে চান, আপনি exit টাইপ করে তা করতে পারেন অথবা Ctrl + D.

হিট করুন ADB অ্যান্ড্রয়েড ইনস্টল গাইড:ড্রাইভার এবং কমান্ড

বিভিন্ন ধরণের কমান্ড এবং ইউটিলিটি রয়েছে যা আপনি শেল এর মাধ্যমে কাজ করতে পারেন। অ্যাক্টিভিটি ম্যানেজার (am একটি অ্যান্ড্রয়েড ডিভাইসের ) বিভিন্ন পরিস্থিতিতে একটি অ্যান্ড্রয়েড অ্যাপের বিভিন্ন উপাদান (ক্রিয়াকলাপ, পরিষেবা, ব্রডকাস্ট রিসিভার, কয়েকটি নাম) পরীক্ষা করার জন্য বিশেষভাবে কার্যকর হতে পারে।

ধরুন আমরা সরাসরি একটি নির্দিষ্ট কার্যকলাপে লঞ্চ করতে চাই, কিন্তু এই কার্যকলাপটি ম্যানিফেস্টে লঞ্চার কার্যকলাপ হিসাবে মনোনীত করা হয়নি।

আপনাকে এখনও android:exported=”true” যোগ করতে হবে প্রতিটি <activity/>-এর বৈশিষ্ট্য ম্যানিফেস্টে এন্ট্রি যা আপনি লঞ্চ করতে চান (ধরে নিচ্ছি যে এটি ইতিমধ্যে লঞ্চার কার্যকলাপ নয়)।

এর পরে আপনি এটিতে সরাসরি যেতে নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:

am start -n <app-package-id>/<activity-name>

মনে রাখবেন যে <activity-name> প্যাকেজ-আইডির সাথে সম্পর্কিত যে কোনো প্যাকেজ অবশ্যই অন্তর্ভুক্ত করতে হবে, যার মধ্যে এটি অবস্থিত। একটি ক্রিয়াকলাপ চালু করার উদাহরণের জন্য নীচের আউটপুটটি দেখুন যা বেশ কয়েকটি প্যাকেজের মধ্যে বসে৷

ADB অ্যান্ড্রয়েড ইনস্টল গাইড:ড্রাইভার এবং কমান্ড

আরো পড়া

এই নিবন্ধে আমার লক্ষ্য ছিল আমার নিজের কথায় (যতটা সম্ভব) ABD ব্যবহারের মাধ্যমে আপনাকে পরিচয় করিয়ে দেওয়ার, ব্যাখ্যা করার এবং গাইড করার জন্য আমার যথাসাধ্য চেষ্টা করা।

এই মুহুর্তে আমাকে কিছু খুব কল্পিত উদাহরণ তৈরি করা শুরু করতে হবে বা ডকুমেন্টেশনগুলিকে কেবল কার্বন কপি করতে হবে, যেগুলির কোনটিই আমি করতে আগ্রহী নই৷

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

আপনি এখানে সোশ্যাল মিডিয়াতে আমার সাথে যোগাযোগ করতে পারেন:

https://www.instagram.com/rkay301/
https://www.facebook.com/wiseassblog/
https://twitter.com/wiseass301
https://wiseassblog.com/


  1. কিভাবে অ্যান্ড্রয়েডে মাইক্রোসফ্ট টিম ইনস্টল এবং সেট আপ করবেন

  2. কিভাবে অ্যান্ড্রয়েডে এজ ইনস্টল এবং ব্যবহার করবেন

  3. আপনার কাস্টম অ্যান্ড্রয়েড রমে GApps ইনস্টল করার জন্য গাইড?

  4. কিভাবে অ্যান্ড্রয়েডে একাধিক ফেসবুক অ্যাকাউন্ট ইনস্টল এবং চালাবেন