ADB: مبانی کار با Android Debug Bridge و دستورات پرکاربرد

نویسنده: IT Sectr منتشر شده: 2026-02-12 زمان مطالعه: 10 دقیقه

ADB (Android Debug Bridge) — یک ابزار کنسولی چندمنظوره است که جزء Android SDK می‌باشد. این ابزار به کامپیوتر اجازه می‌دهد مستقیماً با دستگاه Android از طریق کابل USB یا Wi-Fi ارتباط برقرار کند. با استفاده از ADB می‌توان برنامه‌ها را نصب و حذف کرد، فایل‌ها را کپی کرد، دستورات shell را اجرا کرد، لاگ‌های سیستمی را مشاهده کرد، اسکرین‌شات و ضبط صفحه گرفت، تنظیمات را مدیریت کرد و حتی تست‌های خودکار را انجام داد. این ابزار برای توسعه‌دهندگان، تست‌کنندگان و علاقه‌مندانی که می‌خواهند کنترل کامل دستگاه را داشته باشند، ضروری است.

نکات اصلی

  • ADB — ابزار کنسولی برای اشکال‌زدایی Android، بخشی از ابزارهای پلتفرم SDK
  • اتصال — کار از طریق USB و Wi-Fi (adb tcpip / adb connect)
  • دستورات پایه — adb devices, adb shell, adb install, adb uninstall, adb pull / push
  • کار با لاگ‌ها — adb logcat با فیلتر کردن بر اساس تگ‌ها و سطوح اهمیت
  • اسکرین‌شات و ضبط — adb shell screencap و adb shell screenrecord
  • چند دستگاه — adb -s برای انتخاب دستگاه خاص
  • خودکارسازی — adb shell input برای شبیه‌سازی لمس، سوایپ و ورود متن

ADB چیست و به چه دردی می‌خورد

Android Debug Bridge (ADB) — یک برنامه کلاینت-سرور است که از سه مؤلفه تشکیل شده است: کلاینت (روی کامپیوتر اجرا می‌شود)، سرور (فرآیند پس‌زمینه روی کامپیوتر) و دیمن adbd (روی خود دستگاه Android اجرا می‌شود). هنگامی که توسعه‌دهنده یا مهندس گوشی هوشمند را به کامپیوتر متصل می‌کند، ADB یک کانال ارتباطی قابل اعتماد ایجاد می‌کند که از طریق آن می‌توان دستورات، فایل‌ها و داده‌ها را ارسال کرد.

سناریوهای اصلی استفاده از ADB شامل اشکال‌زدایی برنامه‌ها روی دستگاه واقعی بدون نیاز به انتشار APK در فروشگاه، استخراج لاگ‌ها برای تحلیل خطاها، خودکارسازی تست، پشتیبان‌گیری از داده‌ها، فلش کردن تصاویر recovery و دریافت دسترسی root است. حتی اگر کدنویسی نمی‌کنید، ADB می‌تواند برای استخراج اسکرین‌شات از برنامه‌ها، ضبط راهنمای تصویری از صفحه گوشی یا بازیابی دستگاه پس از فلش ناموفق مفید باشد.

پشتیبانی از ADB در تمام بیلدهای رسمی Android از نسخه 2.1 (API 7) به بعد تعبیه شده است. برای کار نیاز به فعال بودن گزینه «اشکال‌زدایی از طریق USB» در تنظیمات توسعه‌دهنده است. از Android 4.2 به بعد، در اولین اتصال، دستگاه تأییدیه می‌خواهد: باید اجازه اشکال‌زدایی را برای کامپیوتر خاص بر اساس کلید RSA آن صادر کنید.

نصب ADB روی کامپیوتر

برای Windows — Platform Tools را از سایت رسمی Google Developers دانلود کنید، آرشیو را در پوشه C:\adb استخراج کنید و این مسیر را به متغیر محیطی PATH اضافه کنید. پس از راه‌اندازی مجدد ترمینال، دستور adb به صورت سراسری در دسترس خواهد بود.

برای macOS — ساده‌ترین راه نصب ADB از طریق مدیر بسته Homebrew است: brew install android-platform-tools را اجرا کنید. تمام وابستگی‌ها به طور خودکار حل می‌شوند.

برای Linux — در توزیع‌های مبتنی بر Debian / Ubuntu: sudo apt install adb. پس از نصب، کاربر را به گروه plugdev اضافه کنید: sudo usermod -aG plugdev $USER و دوباره وارد شوید تا ADB به دستگاه‌های USB دسترسی داشته باشد.

می‌توان صحت نصب را با دستور adb version بررسی کرد. اگر در پاسخ شماره نسخه Android Debug Bridge نمایش داده شود، ابزار آماده کار است.

اتصال دستگاه و دستورات پایه

اولین اتصال همیشه با دستور adb devices شروع می‌شود. این دستور لیست دستگاه‌های متصل و وضعیت آنها را نمایش می‌دهد. اگر دستگاه به صورت unauthorized نمایش داده می‌شود، صفحه را قفل‌گشایی کرده و اشکال‌زدایی را روی تلفن تأیید کنید.

adb devices
List of devices attached
emulator-5554   device
0123456789ABCD  device

نصب برنامه — یکی از رایج‌ترین عملیات‌ها. فقط کافی است مسیر فایل APK را مشخص کنید:

adb install C:\apps\myapp.apk

اگر برنامه قبلاً نصب شده است اما نیاز به جایگزینی با نسخه به‌روز دارد، پرچم -r (replace) را اضافه کنید:

adb install -r C:\apps\myapp-v2.apk

حذف برنامه با نام بسته انجام می‌شود:

adb uninstall com.example.myapp

کپی فایل‌ها — adb pull فایل را از دستگاه به کامپیوتر استخراج می‌کند، adb push فایل را به دستگاه بارگذاری می‌کند:

adb pull /sdcard/DCIM/screenshot.png .
adb push myfile.txt /sdcard/Documents/

Shell تعاملی — دستور adb shell یک پوسته دستوری دستگاه را باز می‌کند. در داخل آن می‌توان دستورات استاندارد Linux را اجرا کرد: ls، ps، top، dumpsys، pm، am و دیگران.

adb shell
tissot_sprout:/ $ ls -la /sdcard/
tissot_sprout:/ $ ps | grep com.android.chrome

راه‌اندازی فعالیت از طریق ADB به شما امکان می‌دهد هر برنامه یا صفحه‌ای را بدون جستجوی دستی آیکون باز کنید:

adb shell am start -n com.android.chrome/com.google.android.apps.chrome.Main

کار با لاگ‌ها: Logcat

Logcat — سیستم لاگ‌گیری Android است که پیام‌های برنامه‌ها، سرویس‌های سیستمی و هسته را جمع‌آوری می‌کند. این ابزار در اشکال‌زدایی ضروری است: با لاگ‌ها می‌توان فهمید چرا برنامه کرش کرد، کدام متد باعث استثنا شد یا یک عملیات خاص چقدر طول می‌کشد.

اجرای ساده بدون فیلتر — adb logcat. جریان لاگ بی‌نهایت است، برای توقف Ctrl+C را فشار دهید. برای فیلتر کردن پیام‌ها بر اساس تگ، از پارامتر -s استفاده کنید:

adb logcat -s MainActivity:V

سطوح اهمیت لاگ‌گیری (از دقیق‌ترین به بحرانی): V (Verbose)، D (Debug)، I (Info)، W (Warning)، E (Error)، F (Fatal). ترکیب تگ و سطح به شما امکان می‌دهد فقط پیام‌های مورد نیاز را جدا کنید.

برای پاک کردن بافر انباشته قبل از تست:

adb logcat -c

و برای ذخیره لاگ‌ها در فایل:

adb logcat -d > app_logs.txt

پرچم -d (dump) بافر فعلی را نمایش می‌دهد و کار را بدون مسدود کردن ترمینال پایان می‌دهد. این برای اسکریپت‌های خودکارسازی راحت است.

اسکرین‌شات، ضبط صفحه و دستورات تشخیصی مفید

اسکرین‌شات با دستور adb shell screencap گرفته می‌شود. نتیجه در یک فایل ذخیره می‌شود که سپس از طریق adb pull استخراج می‌گردد:

adb shell screencap /sdcard/screen.png
adb pull /sdcard/screen.png

می‌توان هر دو عملیات را با استفاده از جانشینی و لوله در یک خط ترکیب کرد. در عمل این کار ایجاد مستندات و گزارش‌های تست را سرعت می‌بخشد.

ضبط صفحه در Android 4.4+ (API 19) در دسترس است. مدت زمان پیش‌فرض ضبط — 180 ثانیه، نرخ بیت — 4 مگابیت در ثانیه. دستور اصلی:

adb shell screenrecord /sdcard/demo.mp4

برای توقف ضبط Ctrl+C را فشار دهید. وضوح ویدیو با وضوح صفحه دستگاه مطابقت دارد، اما از 1080p تجاوز نمی‌کند. برای تغییر نرخ بیت، --bit-rate را مشخص کنید:

adb shell screenrecord --bit-rate 8000000 /sdcard/demo.mp4

دستورات تشخیصی: adb shell dumpsys وضعیت تمام سرویس‌های سیستمی را نمایش می‌دهد. برای دریافت اطلاعات فقط در مورد باتری:

adb shell dumpsys battery

لیست بسته‌های نصب شده را می‌توان از طریق Package Manager دریافت کرد:

adb shell pm list packages

بازنشانی تنظیمات برنامه (معادل پاک کردن داده‌ها در تنظیمات):

adb shell pm clear com.example.myapp

قابلیت‌های پیشرفته ADB

اشکال‌زدایی Wi-Fi نیاز به نگه‌داشتن دستگاه متصل از طریق USB را برطرف می‌کند. مطمئن شوید کامپیوتر و دستگاه در یک شبکه هستند. ابتدا adb tcpip 5555 را اجرا کنید، USB را جدا کنید، سپس از طریق IP متصل شوید:

adb tcpip 5555
adb connect 192.168.1.100:5555

اگر آدرس IP دستگاه ناشناخته است، قبل از جدا کردن کابل آن را از طریق adb shell ip addr show wlan0 بیابید.

پشتیبان‌گیری از داده‌ها برنامه یا کل سیستم بدون root انجام می‌شود:

adb backup -apk -shared -all -system -f mybackup.ab

بازیابی از پشتیبان:

adb restore mybackup.ab

شبیه‌سازی ورود — دستور adb shell input به شما امکان می‌دهد لمس، سوایپ، فشار دادن کلیدها و ورود متن را شبیه‌سازی کنید. این اساس خودکارسازی تست‌های UI بدون فریمورک‌های اضافی است:

adb shell input tap 500 1000
adb shell input swipe 300 500 800 500
adb shell input text "Hello, ADB!"

راه‌اندازی مجدد در حالت‌های مختلف:

adb reboot          # راه‌اندازی مجدد معمولی
adb reboot recovery # حالت بازیابی
adb reboot bootloader # بوت‌لودر (fastboot)

حالت fastboot دسترسی به فلش کردن تصاویر، باز کردن قفل بوت‌لودر و نصب recovery سفارشی را فراهم می‌کند.

کار با چند دستگاه

وقتی چند دستگاه یا شبیه‌ساز همزمان متصل هستند، ADB نیاز به مشخص کردن شماره سریال خاص دارد. دستور adb devices تمام دستگاه‌های متصل را با شماره سریال آنها نمایش می‌دهد.

برای آدرس‌دهی دستور به دستگاه خاص از پرچم -s استفاده کنید:

adb -s 0123456789ABCD install myapp.apk

اگر دستگاه یک است، می‌توان بدون پرچم کار کرد. با این حال در محیط CI که چند شبیه‌ساز همزمان اجرا می‌شوند، مشخص کردن شماره سریال الزامی است.

کشتن سرور ADB — اگر دستگاه دیگر شناسایی نمی‌شود یا خطا می‌دهد، راه‌اندازی مجدد سرور کمک می‌کند:

adb kill-server
adb start-server

پس از آن adb devices را اجرا کنید — سرور دوباره راه‌اندازی می‌شود و درخواست‌ها را به دیمن‌های دستگاه هدایت می‌کند.

دستورات اصلی ADB: جدول خلاصه

دستور توضیح
adb devices نمایش لیست دستگاه‌های متصل
adb install نصب فایل APK روی دستگاه
adb uninstall حذف برنامه با نام بسته
adb shell راه‌اندازی پوسته دستوری تعاملی
adb push کپی فایل از کامپیوتر به دستگاه
adb pull کپی فایل از دستگاه به کامپیوتر
adb logcat مشاهده لاگ‌های سیستم و برنامه‌ها
adb shell screencap ایجاد اسکرین‌شات از صفحه
adb shell screenrecord ضبط ویدیو از صفحه
adb reboot راه‌اندازی مجدد دستگاه
adb tcpip 5555 تغییر ADB به حالت TCP/IP برای Wi-Fi
adb connect :5555 اتصال به دستگاه از طریق Wi-Fi

سؤالات متداول

اگر گزینه «برای توسعه‌دهندگان» پنهان است، چگونه اشکال‌زدایی از طریق USB را فعال کنیم؟

«تنظیمات» → «درباره تلفن» را باز کنید و 7 بار روی «شماره بیلد» ضربه بزنید. به منوی اصلی تنظیمات برگردید — بخش «برای توسعه‌دهندگان» ظاهر می‌شود. داخل آن «اشکال‌زدایی از طریق USB» را فعال کنید. از Android 4.2 به بعد، در اولین اتصال به کامپیوتر باید کلید RSA اشکال‌زدایی را روی صفحه دستگاه تأیید کنید.

چرا دستور adb devices وضعیت unauthorized را نشان می‌دهد؟

دستگاه به کامپیوتر اعتماد ندارد. صفحه تلفن را قفل‌گشایی کنید، وقتی دیالوگ «آیا اجازه اشکال‌زدایی از طریق USB داده شود؟» ظاهر شد، گزینه «همیشه برای این کامپیوتر مجاز باشد» را علامت بزنید و «OK» را فشار دهید. اگر دیالوگ ظاهر نشد، کابل USB را جدا کرده و دوباره وصل کنید یا adb kill-server && adb start-server را اجرا کنید.

چگونه APK را روی دستگاه بدون صفحه نمایش (با نمایشگر شکسته) نصب کنیم؟

ADB نیاز به تعامل با صفحه ندارد. دستگاه را از طریق USB متصل کنید، صبر کنید تا در adb devices ظاهر شود (اگر اشکال‌زدایی قبلاً فعال بود) و adb install <مسیر_apk> را اجرا کنید. برای باز کردن برنامه از adb shell am start -n <بسته>/<فعالیت> استفاده کنید. اگر اشکال‌زدایی قبلاً فعال نشده بود، بازیابی دسترسی بدون صفحه به طور قابل توجهی دشوارتر است — نیاز به recovery سفارشی خواهد بود.

adb install چه تفاوتی با نصب از طریق Google Play دارد؟

ADB APK را مستقیماً نصب می‌کند و بررسی‌های Google Play Protect را هنگام نصب دور می‌زند، که این امکان را می‌دهد برنامه‌ها را قبل از انتشار تست کنید. با این حال، بررسی نهایی کد مخرب همچنان پس از نصب اجرا می‌شود. ADB نیاز به حساب Google ندارد، که برای کیوسک‌های شرکتی و دستگاه‌های بدون سرویس‌های Google مهم است.

آیا می‌توان از ADB بدون دسترسی root روی دستگاه استفاده کرد؟

بله، اکثریت قریب به اتفاق دستورات ADB بدون root کار می‌کنند. استثناها — دستوراتی که نیاز به دسترسی به پارتیشن‌های سیستمی محافظت‌شده دارند (مثلاً dump مستقیم پارتیشن boot یا تغییر فایل‌های سیستمی). برای کارهای روزمره — نصب برنامه‌ها، لاگ‌گیری، اسکرین‌شات‌ها، پشتیبان‌گیری، شبیه‌سازی ورود — root لازم نیست.

نتیجه‌گیری

ADB (Android Debug Bridge) — یک ابزار اساسی برای همه کسانی است که در سطح حرفه‌ای با Android کار می‌کنند. از نصب پایه برنامه‌ها تا خودکارسازی پیچیده تست و بازیابی دستگاه‌ها — ADB تقریباً هر سناریوی تعامل کامپیوتر با گوشی هوشمند یا تبلت را پوشش می‌دهد.

با تسلط بر دستورات شرح داده شده در این مقاله، می‌توانید با اطمینان دستگاه Android را از طریق ترمینال مدیریت کنید، لاگ‌ها را تحلیل کنید، برای مستندات اسکرین‌شات بگیرید، پشتیبان‌گیری انجام دهید و فرآیند توسعه را تسریع کنید. تمرین منظم و مطالعه خروجی adb help شما را به یک کاربر ماهر این ابزار قدرتمند تبدیل می‌کند.

خلاصه

  • ADB — ابزار کنسولی برای اشکال‌زدایی Android، جزء Platform Tools Android SDK
  • اتصال — کار از طریق USB و Wi-Fi با دستورات adb tcpip و adb connect
  • دستورات پایه — adb devices, adb shell, adb install, adb uninstall, adb pull / adb push
  • Logcat — سیستم لاگ‌گیری Android با فیلتر بر اساس تگ و سطوح اهمیت V/D/I/W/E/F
  • اسکرین‌شات و ضبط — adb shell screencap و adb shell screenrecord برای ایجاد تصاویر و ویدیو از صفحه
  • قابلیت‌های پیشرفته — اشکال‌زدایی Wi-Fi، پشتیبان‌گیری داده، شبیه‌سازی ورود، راه‌اندازی مجدد در fastboot و recovery
  • چند دستگاه — پرچم -s برای انتخاب دستگاه خاص در اتصال موازی

خلاصه

  • ADB — ابزار کنسولی برای اشکال‌زدایی Android، جزء Platform Tools Android SDK
  • اتصال — کار از طریق USB و Wi-Fi با دستورات adb tcpip و adb connect
  • دستورات پایه — adb devices, adb shell, adb install, adb uninstall, adb pull / adb push
  • Logcat — سیستم لاگ‌گیری Android با فیلتر بر اساس تگ و سطوح اهمیت V/D/I/W/E/F
  • اسکرین‌شات و ضبط — adb shell screencap و adb shell screenrecord برای ایجاد تصاویر و ویدیو از صفحه
  • قابلیت‌های پیشرفته — اشکال‌زدایی Wi-Fi، پشتیبان‌گیری داده، شبیه‌سازی ورود، راه‌اندازی مجدد در fastboot و recovery
  • چند دستگاه — پرچم -s برای انتخاب دستگاه خاص در اتصال موازی

ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد

IT Sectr از سال 2017 برنامه‌های iOS و Android را برای استارتاپ‌ها و کسب‌وکارها ایجاد می‌کند. ما به شما مشاوره می‌دهیم و بهترین راه‌حل را پیشنهاد خواهیم کرد.

بحث درباره پروژه

همچنین بخوانید