کاملترین راهنمای نصب و استفاده از ADB در اندروید بههمراه دستورات پراستفاده
زومیت
در این مقاله با ADB آشنا میشویم و یاد میگیریم چگونه با استفاده از آن کنترل بیشتری روی دستگاه اندرویدی خود داشته باشیم.
اندروید بهدلیل ماهیت متنباز و انعطافپذیر خود همواره مورد توجه کاربران حرفهای و توسعهدهندگان قرار گرفته است؛ اما با گذشت زمان، بسیاری از قابلیتهای پیشرفته پشت لایههایی از محدودیتهای نرمافزاری پنهان شده و دسترسی مستقیم به تنظیمات سیستمی برای کاربران عادی دشوارتر شدهاند. در این میان، ADB (کوتاهشدهی Android Debug Bridge) بهعنوان ابزاری قدرتمند امکان کنترل و سفارشیسازی عمیقتر دستگاههای اندرویدی را فراهم میکند.
با ADB میتوان از محدودیتهای اعمالشده توسط سازنده عبور کرد، برنامههای پیشفرض غیرضروری را حذف نمود، تنظیمات پنهان سیستم را تغییر داد یا حتی اپلیکیشنها را بدون نیاز به فروشگاههای رسمی نصب کرد. این ابزار، فاصلهی میان استفادهی روزمره از اندروید و قابلیتهایی را که معمولاً در اختیار توسعهدهندگان قرار میگیرد، از میان برمیدارد. در واقع اگر بهدنبال آزادی عمل و کنترل بیشتر روی دستگاه اندرویدی خود هستید، ADB همان چیزی است که نیاز دارید.
در این مقاله، تمام جنبههای ADB بررسی میشود؛ از نحوهی راهاندازی و برقراری اتصال گرفته تا مدیریت برنامهها، جابهجایی فایلها، اجرای دستورات سیستمی و اشکالزدایی. تسلط بر این ابزار، امکانات پنهان اندروید را در اختیار شما قرار میدهد.
ADB چیست و چگونه کار میکند؟
Android Debug Bridge یا ADB ابزاری مبتنیبر خط فرمان است که ارتباط میان کامپیوتر و دستگاه اندرویدی را برقرار کرده و امکان اجرای دستورات پیشرفته را فراهم میکند. توسعهدهندگان و کاربران حرفهای از این ابزار برای نصب و مدیریت برنامهها، اشکالزدایی و دسترسی به تنظیمات سیستمی استفاده میکنند.
ADB بر اساس یک معماری کلاینت-سرور کار میکند و از سه بخش اصلی تشکیل شده است:
- کلاینت (Client): روی کامپیوتر اجرا شده و دستورات را ارسال میکند. کاربران از طریق این بخش، فرمانهای موردنظر خود را به دستگاه اندرویدی متصل ارسال میکنند.
- سرور (Server): در پسزمینهی کامپیوتر اجرا میشود و وظیفهی هماهنگی بین کلاینت و دیمن را بر عهده دارد. این بخش درخواستهای کلاینت را مدیریت و آنها را به مقصد مناسب هدایت میکند.
- دیمن (Daemon - adbd): روی دستگاه اندرویدی اجرا میشود و فرمانها را دریافت و اجرا میکند. این بخش عملیات مختلفی از جمله اجرای دستورات شل، انتقال فایلها و نصب برنامهها را پردازش میکند.
با این ساختار، ADB امکان کنترل پیشرفتهی دستگاههای اندرویدی را فراهم میکند و به کاربران اجازه میدهد تا بدون نیاز به دسترسی روت، وظایف مختلفی از جمله مدیریت برنامهها، تغییر تنظیمات سیستمی و اشکالزدایی را انجام دهند.
مزایا و قابلیتهای کلیدی ADB
پیشاز آنکه وارد مراحل نصب و راهاندازی ADB شویم، بد نیست نگاهی به مهمترین مزایا و کاربردهای آن برای کاربران داشته باشیم. از جمله کاربردهای ADB میتوان به موارد زیر اشاره کرد:
- مدیریت اپلیکیشنها: نصب یا حذف برنامهها (چه بهصورت تکی و چه گروهی) بهطور مستقیم از طریق کامپیوتر.
- حذف برنامههای پیشفرض (Bloatware): حذف اپلیکیشنهای از پیش نصبشده که معمولاً از طریق تنظیمات معمولی قابل حذف نیستند.
- دیباگ کردن اپلیکیشنها: دسترسی به لاگها و اطلاعات اشکالزدایی برای تحلیل و بهینهسازی برنامهها.
- دسترسی به شل (Shell Access): اجرای دستورات در محیط یونیکس، تغییر تنظیمات سیستمی و استفاده از قابلیتهای مخفی دستگاه.
- پروفایلینگ عملکرد: بررسی عملکرد سیستم، میزان استفاده از حافظه و پردازنده (CPU) برای شناسایی گلوگاهها و بهینهسازی کارایی.
- خودکارسازی تست دستگاه: ADB امکان خودکارسازی فرایندهای مختلف تست را فراهم میکند، از جمله شبیهسازی ورودی کاربر یا انجام تستهای فشار روی اپلیکیشنها، که در جریان توسعهی نرمافزار نقش حیاتی دارد.
- سایدلودکردن آپدیتها بهصورت دستی: پل اشکالزدایی اندروید امکان نصب دستی بهروزرسانیهای اندروید که بهصورت OTA عرضه میشوند را از طریق سایدلود کردن فایل zip آپدیت ممکن میکند.
این موارد تنها قسمت کوچکی از کاربردهای این بخش مهم از سیستمعامل اندروید بهحساب میآیند.
راهاندازی ADB روی اندروید و کامپیوتر
برای استفادهی کامل از دستورات ADB، لازم است برخی مراحل ابتدایی را روی دستگاه اندرویدی و کامپیوتر انجام دهید. در این بخش، راهنمای گامبهگام فعالسازی USB Debugging روی دستگاه اندرویدی و نصب ADB در ویندوز و لینوکس ارائه میشود.
فعالسازی USB Debugging در دستگاه اندرویدی
برای اجرای دستورات ADB، ابتدا باید Developer Options (گزینههای توسعهدهندگان) و سپس USB Debugging (اشکالزدایی USB) را در دستگاه اندرویدی فعال کنید.
- وارد تنظیمات شوید و به بخش About phone (دربارهی گوشی) بروید.
- روی Build number (شماره ساخت) (گاهی در بخش Software information) هفت بار ضربه بزنید تا مطابق تصویر پیامی مبنیبر فعالسازی Developer Options ظاهر شود.
- به منوی اصلی تنظیمات برگردید؛ اکنون گزینهی Developer options در فهرست تنظیمات قابل مشاهده است (در برخی برندها باید وارد زیرمنوی System شوید).
- وارد Developer options شوید.
- گزینهی USB Debugging را پیدا و فعال کنید.
- در صورت نمایش اخطار، آن را تأیید کنید.
- از این مرحله به بعد، دستگاه شما آمادهی دریافت فرمانهای ADB از طریق USB است.
نصب و تنظیم ADB در کامپیوتر (ویندوز)
برای استفاده از ADB در ویندوز، بهصورت زیر عمل کنید.
- برای شناسایی دستگاه توسط ویندوز، ابتدا درایورهای مخصوص برند گوشی خود (مانند Samsung USB Driver، Xiaomi USB Driver، یا Google USB Driver) را نصب کنید.
- از لینک زیر جدیدترین نسخهی SDK Platform Tools for Windows را دانلود کنید (برای دانلود نیاز به ابزار عبور از تحریم دارید).
- فایل ZIP را در پوشهی دلخواه (مثلاً C:\platform-tools) استخراج نمایید.
- وارد پوشهی platform-tools شوید.
- در فضای خالی پوشه، کلید Shift را نگه دارید و راستکلیک کنید.
- گزینهی Open in Terminal یا Open in PowerShell را انتخاب کنید.
- دستگاه اندرویدی را با کابل USB به کامپیوتر وصل کنید.
- در صورت نیاز، حالت اتصال USB را روی انتقال فایل (MTP) تنظیم کنید. (این کار برای همهی دستگاهها الزامی نیست، اما ممکن است از بروز مشکلات جلوگیری کند.)
- در پنجرهی خط فرمان یا پاورشل (Command Prompt یا PowerShell)، دستور زیر را وارد کنید:
adb devices- روی صفحهی دستگاه اندرویدی پیامی برای تأیید اشکالزدایی ظاهر میشود؛ گزینهی Always allow from this computer را انتخاب کنید و Allow را بزنید.
- دوباره دستور یادشده را وارد کنید. اگر همهچیز درست باشد، در خروجی دستور، شمارهی سریال دستگاه اندرویدی نمایش داده میشود.
افزودن ADB به متغیر Path ویندوز (اختیاری)
با اضافهکردن مسیر platform-tools به متغیر Path ویندوز، میتوانید دستورات ADB را از هر پوشهای در خط فرمان اجرا کنید.
- روی Start راستکلیک کنید و System را بزنید.
- در تنظیمات ویندوز روی Advanced system settings کلیک کنید.
- در پنجرهی System Properties روی Environment Variables کلیک کنید.
- در بخش System variables، متغیر Path را انتخاب و Edit را بزنید.
- New را بزنید و مسیر پوشهی platform-tools (مثلا C:\platform-tools) را اضافه کنید.
- با OK تغییرات را ذخیره کنید و در نهایت، خط فرمان یا ویندوز را ریاستارت نمایید تا تغییرات اعمال شوند.
نصب ADB در لینوکس
بسته به توزیع خود، میتوانید ADB را از طریق پکیجمنیجر یا دانلود دستی نصب کنید. نسخهی مخازن برخی توزیعها ممکن است قدیمی باشد.
نصب ADB با پکیجمنیجرها
برای دانلود و نصب ADB در توزیعهای لینوکسی زیر، دستورات را در ترمینال اجرا کنید.
- در دبیان/اوبونتو:
sudo apt-get install android-sdk-platform-tools- در فدورا:
sudo dnf install android-tools- آرچ لینوکس:
sudo pacman -S android-tools android-udev- برای اطمینان از نصب صحیح ADB، دستور زیر را اجرا کنید:
adb versionنصب دستی ADB
- ابتدا، فایل ZIP مربوطبه Android SDK Platform Tools برای لینوکس را از وبسایت رسمی توسعهدهندگان اندروید دانلود کنید (برای دانلود نیاز به ابزار عبور از تحریم دارید).
- فایل ZIP دانلودشده را در یک محل دردسترس (مثلاً دسکتاپ) استخراج کنید.
- یک پنجرهی ترمینال را باز کنید.
- با استفاده از دستور زیر، وارد پوشهای شوید که فایل ZIP را در آن استخراج کردهاید. مسیر /path/to/extracted/folder/ را با مسیر واقعی جایگزین کنید:
cd /path/to/extracted/folder/ مثال:
cd /home/USERNAME/Desktop/platform-tools/- گوشی خود را با کابل USB به کامپیوتر متصل کنید.
- درصورت نیاز، حالت اتصال USB را روی انتقال فایل (MTP) تنظیم کنید (این کار برای همهی دستگاهها الزامی نیست، اما ممکن است از بروز مشکلات جلوگیری کند).
- حالا که در مسیر صحیح قرار دارید، دستور زیر را در ترمینال اجرا کنید تا ADB Daemon راهاندازی شود:
adb devices - روی صفحهی دستگاه اندرویدی پیامی برای تأیید اشکالزدایی ظاهر میشود؛ گزینهی Always allow from this computer را انتخاب کرده و Allow را بزنید.
- دوباره دستور adb devices را اجرا کنید تا مطمئن شوید دستگاه شما توسط ADB شناسایی شده است.
- اگر همهچیز بهدرستی انجام شده باشد، شمارهی سریال گوشی شما در خروجی ترمینال نمایش داده میشود.
فعالسازی وایرلس دیباگینگ (Wireless Debugging) در اندروید ۱۱ و بالاتر
در اندروید 11 و نسخههای بالاتر، امکان اتصال ADB از طریق Wi-Fi بهصورت داخلی پشتیبانی میشود. این روش، مشکلات متداول اتصال از طریق USB و نیاز به نصب درایورهای OEM در ویندوز را حذف میکند.
برای راهاندازی دیباگ بیسیم (Wireless Debugging)، مراحل زیر را دنبال کنید:
- مطمئن شوید که کامپیوتر و گوشی اندرویدی شما به یک شبکهی وایفای متصل هستند.
- وارد Settings شوید و به بخش Developer options بروید.
- گزینهی Wireless debugging را فعال کنید.
- در پنجرهی بازشده با عنوان Allow wireless debugging on this network، گزینهی Allow را انتخاب کنید.
- روی Wireless debugging ضربه بزنید و گزینهی Pair device with pairing code را انتخاب کنید.
- اکنون، صفحهای شامل کد جفتسازی (Pairing Code)، آدرس IP و شمارهی پورت روی گوشی نمایش داده میشود.
- روی کامپیوتر، ترمینال یا خط فرمان را باز و دستور زیر را اجرا کنید (به جای IP_Address:Port، مقدار نمایش دادهشده در گوشی خود را وارد کنید):
adb pair IP_Address:Port- پس از اجرای دستور، سیستم از شما میخواهد کد جفتسازی که در مراحل پیشین دریافت کردید را وارد کنید. پس از تأیید، پیغام Successfully paired نمایش داده خواهد شد.
- پس از جفتسازی، دستور زیر را در ترمینال کامپیوتر وارد کنید تا گوشی بهصورت بیسیم متصل شود:
adb connect IP_Address:Port- برای مقدار IP_Address:Port، مطابق اسکرینشات زیر از مقادیر نمایش داده شده در بخش IP address & Port استفاده کنید.
- اگر همهچیز درست باشد، پیغام زیر نمایش داده میشود:
connected to 192.168.68.100:37173- اکنون گوشی شما از طریق وایفای به ADB متصل شده است و میتوانید هر دستور ADB را بدون نیاز به کابل USB اجرا کنید.
اتصال به VPN یا ابزارهای تغییر آیپی در گوشی یا کامپیوتر ممکن است مانعاز اتصال بیسیم ADB شود.
دستورات اصلی ADB؛ جعبهابزار شما
حالا که محیط ADB را راهاندازی کردهاید و دستگاه بهدرستی شناسایی شده، وقت آن رسیده که با دستورات ضروری آشنا شوید. در این بخش، مهمترین فرمانهای ADB را بهصورت دستهبندیشده و کاربردی بررسی میکنیم.
ابزار ADB امکانات زیادی برای شخصیسازی و دسترسیهای پیشرفته فراهم میکند، اما اجرای برخی دستورات بدون آگاهی کافی ممکن است باعث اختلال در عملکرد دستگاه یا حذف ناخواستهی اطلاعات شود. لطفاً قبل از استفاده از این ابزار، راهنما را با دقت بخوانید و در صورت نیاز از دادههای مهم خود نسخهی پشتیبان تهیه کنید. زومیت مسئولیتی در قبال عواقب احتمالی ناشی از استفادهی نادرست از دستورات ندارد.
مدیریت دستگاه و سرور ADB
در این بخش، دستورات مربوطبه بررسی وضعیت دستگاههای متصل، راهاندازی و توقف سرور ADB و مدیریت اتصال از طریق شبکه را بررسی خواهیم کرد.
بررسی دستگاههای متصل
با این دستورات میتوانید ببینید کدام دستگاهها به ADB متصل هستند و اطلاعات آنها را مشاهده کنید.
- نمایش لیست دستگاههای متصل:
adb devices خروجی نمونه:
List of devices attached
e8674903 deviceدر ستون وضعیت (Status) ممکن است این موارد نمایش داده شود:
- device: دستگاه متصل و آماده به کار است.
- offline: دستگاه شناسایی شده اما پاسخگو نیست.
- unauthorized: مجوز دسترسی به ADB در دستگاه تأیید نشده است.
اگر adb devices دستگاه را نشان نمیدهد یا وضعیت آن unauthorized یا offline است، مجدداً بررسی کنید که USB Debugging فعال باشد و پیام تأیید روی گوشی را حتماً قبول کرده باشید.
- نمایش جزئیات بیشتر دربارهی دستگاهها:
adb devices -lاین نسخهی پیشرفته، اطلاعاتی مانند مدل، نام محصول و transport ID را نیز نمایش میدهد. خروجی نمونه:
List of devices attached
e8674903 device product:lineage_raphael model:Mi_9T_Pro device:raphael transport_id:1مدیریت سرور ADB
در حالت عادی، ADB خودش سرور را مدیریت میکند، اما اگر مشکلی پیش بیاید، میتوانید با این دستورات آن را کنترل کنید.
- راهاندازی سرور ADB (اگر درحال اجرا نیست):
adb start-server - متوقف کردن سرور ADB:
adb kill-server - ریاستارت سرور: اگر با ADB مشکلی داشتید، ریاستارت کردن سرور معمولاً آن را رفع میکند.
adb kill-server && adb start-serverاتصال ADB از طریق وایفای
پیشتر مراحل مربوطبه اتصال ADB از طریق وایرلس دیباگینگ را توضیح دادیم. دستورات زیر نیز در این حالت کاربردی هستند:
- قطع اتصال:
adb disconnectیا برای قطع از یک دستگاه خاص:
adb disconnect IP_Address:Port- بازگشت به حالت USB
adb usbریبوت دستگاه در حالات مختلف و نصب آپدیت
در این بخش، دستورات مربوطبه ریبوت کردن، ورود به حالتهای خاص مانند Recovery و Bootloader و نصب بهروزرسانیهای سیستمی را بررسی خواهیم کرد.
ریبوت کردن (Restart)
با این دستورات میتوانید دستگاه را در حالتهای مختلف ریبوت کنید.
- ریبوت عادی: دستگاه را بهصورت معمولی راهاندازی مجدد میکند.
adb reboot- ریبوت به حالت ریکاوری (Recovery Mode): برای تعمیر سیستم، نصب آپدیتها و بازیابی کارخانه از طریق محیط ریکاوری.
adb reboot recovery- ریبوت به حالت بوتلودر (Bootloader/Fastboot): برای فلشکردن رام، آنلاککردن بوتلودر و انجام تغییرات سیستمی عمیقتر.
adb reboot bootloader
یا
adb reboot fastbootنکته: بعضی دستگاهها ممکن است نیاز به تأیید دستی یا فشردن کلیدهای فیزیکی پساز ورود به این حالتها داشته باشند. حتماً راهنمای اختصاصی دستگاه خود را بررسی کنید.
نصب بهروزرسانیهای سیستمی (OTA Updates)
این بخش مربوطبه زمانی است که بخواهید فایل بهروزرسانی رسمی (OTA) را از طریق ریکاوری و با استفاده از فرمان sideload نصب کنید:
- نصب فایل آپدیت OTA از طریق Recovery Mode: پساز ورود به حالت ریکاوری و انتخاب گزینهای شبیهبه Apply update from ADB، از طریق دستور زیر میتوانید فایل آپدیت را نصب کنید:
adb sideload <نام_فایل.zip> مثال:
adb sideload update.zipنکته: فایل ZIP آپدیت OTA را از منبع معتبر دریافت کنید. همچنین مطمئن شوید باتری گوشی بهاندازهی کافی شارژ دارد تا در حین آپدیت خاموش نشود.
بررسی اطلاعات دستگاه
برای مشاهدهی اطلاعات مربوطبه دستگاه متصل به ADB، از این دستورات استفاده کنید.
- نمایش وضعیت فعلی دستگاه: در خروجی، وضعیت device (متصل)، offline (بدون پاسخ) یا unauthorized (مجوز تأیید نشده) نشان داده میشود.
adb get-state- دریافت شمارهی سریال دستگاه متصل: زمانی مفید است که چند دستگاه/شبیهساز همزمان به کامپیوتر وصل باشند و بخواهید شمارهی سریال هر کدام را بدانید.
adb get-serialnoارسال دستورات به یک دستگاه خاص
اگر چندین دستگاه یا شبیهساز به سیستم متصل باشند، میتوانید مشخص کنید که فرمان به کدامیک ارسال شود.
- ارسال دستور به یک دستگاه خاص با شماره سریال:
adb -s <device_serial_number> <command>مثال:
adb -s e8674903 shell pm list packages- ارسال دستور فقط به دستگاه متصل از طریق USB: اگر بخواهید دستور فقط به دستگاهی که از طریق USB متصل است ارسال شود (و شبیهسازها نادیده گرفته شوند):
adb -d <command> - ارسال دستور فقط به شبیهساز (امولیتور): اگر قصد ارسال فرمان به شبیهساز اندرویدی را دارید:
adb -e <command>مدیریت اپلیکیشنها
ADB یک ابزار قدرتمند برای نصب، حذف و مدیریت اپلیکیشنها فراتر از محدودیتهای فروشگاه گوگل پلی است. در این بخش، مهمترین دستورات برای کار با APK-ها و دادههای اپلیکیشنها معرفی میشود.
دستورات شل Package Manager
- فهرست تمام بستههای نصبشده
adb shell pm list packages- لیست اپلیکیشنهای کاربر (غیرسیستمی)
adb shell pm list packages -3- لیست اپلیکیشنهای سیستمی
adb shell pm list packages -s- لیست اپلیکیشنهای غیرفعالشده
adb shell pm list packages -d- لیست اپلیکیشنهای فعال
adb shell pm list packages -e- نمایش مسیر فایل APK یک برنامه
adb shell pm path <package-name>نصب اپلیکیشنها
با استفاده از این دستورات، میتوان اپلیکیشنها را مستقیماً از طریق ADB روی دستگاه نصب کرد، از جمله نصب چند APK همزمان یا بهروزرسانی برنامههای موجود.
- نصب یک APK ساده:
adb install <مسیر_فایل_APK> مثال:
adb install /path/to/app.apk - نصب برنامه روی حافظهی خارجی (در صورت پشتیبانی دستگاه):
adb install -s <نام-فایل-APk>.apk- نصب اپلیکیشنهای چندبخشی (Split APK یا App Bundle): برخی اپلیکیشنها بهصورت چند فایل APK منتشر میشوند؛ این فایلها که شامل یک APK پایه (base.apk) و چند فایل جانبی مثل زبان، DPI یا معماری پردازنده هستند، تحت عنوان Split APK یا App Bundle شناخته میشوند. برای نصب این نوع اپها، تمام فایلهای مرتبط را باید در یک دستور وارد کنید، مشابه نمونهی زیر:
adb install-multiple base.apk split_en.apk split_hdpi.apk نکته: اگر حتی یکی از فایلهای موردنیاز در این نوع نصب حذف شده یا ناقص باشد، نصب اپلیکیشن با خطا مواجه خواهد شد.
حذف اپلیکیشنها
برای حذف برنامهها از طریق ADB، میتوان از نام پکیج (package_name) آنها استفاده کرد (میتوان package name را از طریق دستور adb shell pm list packages به دست آورد).
- حذف کامل یک اپلیکیشن (APK + دادهها):
adb uninstall <package-name>مثال:
adb uninstall com.example.unwantedappمدیریت دادهها و وضعیت اپلیکیشن
با این دستورات، میتوانید دادههای یک اپلیکیشن را پاک کنید، برنامههای پیشفرض سیستم را غیرفعال کنید، یا مجدداً فعال نمایید.
- پاک کردن دادهها و کش اپلیکیشن: برنامه به وضعیت ابتدایی (مثل اولین نصب) برمیگردد.
adb shell pm clear <package-name>مثال:
adb shell pm clear com.example.brokenapp- غیرفعالکردن اپلیکیشن سیستمی (بدون نیاز به روت در بسیاری از دستگاهها): این کار برنامه را پنهان و غیرفعال میکند. برای برنامههای مهم سیستمی توصیه نمیشود.
adb shell pm disable-user --user 0 <package-name>مثال:
adb shell pm disable-user --user 0 com.android.unwantedbloatware- فعال کردن مجدد اپلیکیشن غیرفعالشده:
adb shell pm enable <package-name>مثال:
adb shell pm enable com.android.unwantedbloatware هشدار: پیشاز غیرفعالکردن اپلیکیشنهای سیستمی حساس، تحقیق کنید که این برنامه برای عملکرد عادی دستگاه ضروری نباشد. درغیراینصورت ممکن است با مشکل بوتنشدن دستگاه یا عملکرد نادرست روبهرو شوید.
انتقال داده و عملیات فایل
علاوهبر مدیریت اپلیکیشنها، ADB یک ابزار قدرتمند برای ارسال و دریافت فایلها بین کامپیوتر و دستگاه اندرویدی است. همچنین میتوان مستقیماً با سیستم فایل دستگاه کار کرد.
- ارسال فایل از کامپیوتر به دستگاه:
adb push -p <local> <remote>
مثال:
adb push -p music-khoob.mp3 /sdcard/Download/نکته: بهطور پیشفرض، مسیر /sdcard در اغلب دستگاهها همان حافظهی داخلی (Internal Storage) است. اگر دستگاه از کارت حافظه (SD Card) پشتیبانی کند و دسترسی لازم داشته باشد، مسیر کارت حافظه ممکن است /sdcard یا /storage/xxxx-xxxx باشد.
- دریافت فایل از دستگاه به کامپیوتر:
adb pull -p <remote> <local>
مثال:
adb pull -p /sdcard/Download/music-khoob.mp3 c:\Users\Mehdi\Desktop\نکته: اگر فولدری را مشخص کنید، تمامی محتوای آن در مقصد دانلود خواهد شد.
نکته: هنگام انتقال فایل بین کامپیوتر و دستگاه اندرویدی با adb pull و adb push، اگر مسیر مقصد را یک پوشه مشخص کنید (بدون ذکر نام و پسوند فایل)، ADB فایل را با همان نام اصلیاش در آن پوشه ذخیره خواهد کرد. اما اگر میخواهید فایل با نام متفاوتی در کامپیوتر ذخیره شود، حتماً در انتهای آدرس مقصد نام جدید فایل بههمراه پسوند آن را وارد کنید.
عملیات روی فایلسیستم دستگاه (داخل محیط adb shell)
بخش عمدهای از دستورات مدیریتی روی فایلها، پوشهها، و عملکردهای سیستمی از طریق محیط adb shell انجام میشود. با اجرای این دستور:
adb shellشما وارد یک محیط خط فرمان شبیه به ترمینال لینوکس میشوید که در واقع همان شل داخلی سیستمعامل اندروید است. در این محیط میتوانید دستورات مختلفی برای بررسی یا تغییر فایلها، اجرای فرامین سیستمی، یا حتی مشاهدهی لاگها وارد کنید.
نکته: برای خروج از محیط شل از دستور exit استفاده کنید.
نکته: بسیاری از دستورات رایج لینوکس مانند pwd، cd، ls، mv، cp، rm، و cat در این محیط پشتیبانی میشوند؛ اما باید توجه داشت که برخی دستورات یا قابلیتها ممکن است به دلایل امنیتی یا محدودیتهای سیستمی اندروید فعال یا دردسترس نباشند (بهویژه در دستگاههای بدون روت).
- گرفتن اسکرینشات:
adb shell screencap -p <مسیر_و_نام_برای_ذخیره_روی_دستگاه>مثال:
adb shell screencap -p /sdcard/screenshot.png - ضبط ویدیو از صفحه: دستور screenrecord یکی از ابزارهای داخلی ADB برای ضبط ویدیو از صفحهنمایش دستگاه اندرویدی است. این دستور بهطور پیشفرض تا ۳ دقیقه (۱۸۰ ثانیه) از صفحه ضبط میکند.
adb shell screenrecord [options] <مسیر_ذخیره>بهجای [options] میتوانید از یک یا چندتا از گزینههای زیر استفاده کنید:
گزینه | توضیح |
|---|---|
--size WIDTHxHEIGHT | تعیین رزولوشن خروجی، مثلاً 1280x720 |
--bit-rate RATE | تعیین نرخ بیت ویدیو (واحد: بیت بر ثانیه). پیشفرض 4Mbps است. برای مثال --bit-rate 8000000 برای کیفیت بالاتر |
--time-limit SECONDS | تعیین مدت زمان ضبط (پیشفرض: 180 ثانیه). برای مثال --time-limit 60 برای ضبط ۱ دقیقهای |
--rotate | چرخش ۹۰ درجهای تصویر ضبطشده (مثلاً برای ویدیوهای عمودی یا افقی) |
--verbose | نمایش اطلاعات جزئی دربارهی فرایند ضبط در ترمینال |
مثال:
adb shell screenrecord --verbose /sdcard/screen_recording.mp4نکته: برای توقف ضبط، میتوانید کلیدهای Ctrl + C را در ترمینال فشار دهید یا اجازه دهید تا زمان مشخصشده تمام شود.
- حذف یک فایل:
adb shell rm <مسیر_و_نام_فایل> مثال:
adb shell rm /sdcard/screenshot.png - ایجاد یک پوشه:
adb shell mkdir <مسیر_و_نام_پوشه> مثال:
adb shell mkdir /sdcard/NewFolder لیستکردن فایلها و پوشهها:
adb shell ls <مسیر> مثال:
adb shell ls /sdcard/Download - نمایش محتوای یک فایل متنی:
adb shell cat <مسیر_فایل> مثال:
adb shell cat /sdcard/Download/important_notes.txt- شبیهسازی تایپ متن:
adb shell input text "<متن>" مثال:
adb shell input text "Hello%20from%20ADB!"با این دستور، انگار کاربر همین متن را روی کیبورد دستگاه تایپ کرده. برای فاصله (space) باید از %20 استفاده شود.
ثبت گزارش و اشکالزدایی (Logcat و Bugreport)
یکی از مهمترین کارکردهای ADB برای توسعهدهندگان و کاربران حرفهای، مشاهدهی لاگهای سیستم و تهیهی گزارش اشکال برای عیبیابی است.
مشاهدهی لاگهای زنده با logcat
- دستور پایه برای نمایش لاگها: تمام لاگهای سیستم را بهصورت زنده در ترمینال نشان میدهد.
adb logcatنکته: برای متوقف کردن فرآیند نمایش لاگها، از کلیدهای Ctrl + C استفاده کنید.
- پاککردن لاگهای قبلی: این دستور تمامی بافر لاگ را پاک میکند. سپس با اجرای دوبارهی دستور adb logcat فقط لاگهای جدید نمایش داده خواهند شد.
adb logcat -c فیلتر کردن خروجی Logcat
- بر اساس سطح اولویت: V (Verbose)، D (Debug)، I (Info)، W (Warning)، E (Error)، F (Fatal)، و S (Silent).
مثال: دستور زیر فقط لاگهای سطح Error و بالاتر را نمایش میدهد.
adb logcat *:E - بر اساس تگ
adb logcat <tag>:<priority> *:Sمثال: فقط لاگهای Debug مربوطبه پکیج مشخص شده (مثلاً com.duolingo) نمایش داده میشود و بقیه تگها مخفی میشوند.
adb logcat com.duolingo:D *:Sترکیب logcat با ابزارهای دیگر
برای فیلتر کردن یا پردازش خروجی دستور adb logcat، میتوان آن را با ابزارهای خط فرمان ترکیب کرد. بستهبه سیستمعاملی که استفاده میکنید، روش انجام اینکار کمی متفاوت است.
در ویندوز (CMD یا PowerShell)
- جستجوی عبارت خاص در خروجی لاگ با findstr: برای مثال، نمایش فقط خطوطی که شامل عبارت Error هستند:
adb logcat | findstr "Error"میتوانید هر عبارت دلخواهی را جایگزین کنید. مثلاً برای لاگهای مربوط به MyAppTag:
adb logcat | findstr "MyAppTag" - مشاهدهی تعداد معینی از خطوط آخر لاگ (شبیه tail): ویندوز بهصورت پیشفرض ابزار tail را ندارد، ولی میتوانید از پاورشل استفاده کنید:
adb logcat | Select-Object -Last 20در لینوکس / macOS
- جستوجوی عبارت خاص با grep: برای مثال فقط لاگهایی که شامل کلمهی Error هستند:
adb logcat | grep "Error"مشاهدهی ۲۰ خط آخر لاگ با tail: برای نمایش تعداد مشخصی از خطوط پایانی:
adb logcat | tail -n 20ترکیب این ابزارها با logcat کمک میکند که سریعتر لاگهای مهم یا خطاها را در میان حجم زیادی از اطلاعات پیدا کنید.
تولید گزارش اشکالزدایی (Bug Reports)
دستور adb bugreport یکی از روشهای جامع برای تهیهی گزارش اشکال از دستگاه اندرویدی است. این گزارش شامل اطلاعاتی مثل لاگهای سیستم، خروجی سرویسهای سیستمی (dumpsys)، وضعیت باتری، پردازشها، شبکه، اپلیکیشنها و دیگر اطلاعات فنی لحظهای دستگاه میشود.
این ابزار معمولاً برای توسعهدهندگان، تسترها و کاربران حرفهای کاربرد دارد که قصد بررسی مشکلات نرمافزاری یا ارسال گزارش اشکال به تیم پشتیبانی دارند.
- ذخیرهی گزارش در دستگاههای جدید (اندروید ۸ و بالاتر): در اندرویدهای جدیدتر، اجرای دستور adb bugreport باعث میشود دستگاه فایل فشردهی zip حاوی گزارش را تولید و آن را بهصورت خودکار به کامپیوتر منتقل کند.
adb bugreportمحتوای فایل ZIP ممکن است شامل فایلهایی مثل زیر باشد:
- bugreport.txt
- dumpstate_board.txt
- logcat.txt
- kernel_log.txt
مثال:
Bug report copied to C:\Users\Mehdi\Desktop\ADB\bugreport-lineage_raphael-AP4A.250205.002-2025-04-05-18-12-13.zipاطلاعات سیستم و دستگاه
فرمانهای ADB این امکان را میدهند که اطلاعات دقیقی دربارهی سختافزار، سرویسهای سیستم، وضعیت عملکرد و منابع دستگاه اندرویدی دریافت کنید. این اطلاعات میتوانند در عیبیابی، تحلیل رفتار سیستم یا بررسی باگها بسیار مفید باشند.
دریافت اطلاعات سرویسهای سیستمی با dumpsys
دستور dumpsys ابزاری قدرتمند برای استخراج اطلاعات از سرویسهای مختلف سیستم اندروید است. این اطلاعات شامل وضعیت فعلی سرویسها، اپلیکیشنها، باتری، وایفای، وضعیت حافظه و دهها مورد دیگر است.
- نمایش اطلاعات تمام سرویسها در ترمینال:
adb shell dumpsys نکته: این خروجی بسیار طولانی است و بهتر است آن را در فایل ذخیره یا فیلتر کنید.
- لیست سرویسهای موجود: لیستی از سرویسهایی مانند activity, battery, wifi, package و غیره را نمایش میدهد.
adb shell dumpsys -l- دریافت اطلاعات از سرویس خاص:
adb shell dumpsys <نام_سرویس>مثالها:
adb shell dumpsys battery
adb shell dumpsys wifi
adb shell dumpsys package com.example.app- ذخیرهی خروجی dumpsys در فایل: برای اینکه بتوانید خروجی کامل را بعداً بررسی یا با دیگران بهاشتراک بگذارید، میتوانید آن را در یک فایل ذخیره کنید:
adb shell dumpsys > dumpsys_output.txtیا برای سرویس خاص:
adb shell dumpsys battery > battery_info.txtفایل خروجی در همان مسیری ذخیره میشود که دستور را در آن اجرا کردهاید (پوشهی جاری ترمینال یا CMD). اگر مسیر خاصی مدنظرتان است، میتوانید آن را بهصورت کامل مشخص کنید.
مانیتورینگ پردازشها و وضعیت سیستم
- مشاهدهی پردازشهای فعال همراه با مصرف CPU (نمایش زنده):
adb shell top- لیست کامل پردازشها (مشابه ps در لینوکس):
adb shell ps نکته: بسته به نسخهی اندروید، ممکن است نیاز به گزینههای بیشتری مثل ps -A یا ps -e باشد.
- بررسی فضای پارتیشنها: این دستور مشخص میکند هر پارتیشن چه حجمی دارد و چه مقدار آن پر است.
adb shell df- نمایش اطلاعات پردازنده (CPU):
adb shell cat /proc/cpuinfo- نمایش اطلاعات حافظهی رم:
adb shell cat /proc/meminfoابزار ADB از گستردگی و انعطافپذیری بالایی برخوردار است. هرچند در این مقاله تلاش شده تا کاربردیترین بخشهای آن معرفی شود، اما همچنان بسیاری از دستورات و قابلیتها خارج از محدودهی این مطلب باقی ماندهاند. کاربران علاقهمند میتوانند با توجه به نیازهای خاص خود، از طریق جستوجو در منابع رسمی یا مشارکت در انجمنهای تخصصی، شناخت عمیقتری از توانمندیهای ADB به دست آورند.
اگر تجربهای از استفاده از ADB دارید یا با مشکلی در اجرای دستورات روبهرو شدهاید، حتماً در بخش نظرات با ما در میان بگذارید.