کاملترین راهنمای نصب و استفاده از 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)، دستور زیر را وارد کنید:
- روی صفحهی دستگاه اندرویدی پیامی برای تأیید اشکالزدایی ظاهر میشود؛ گزینهی 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 در توزیعهای لینوکسی زیر، دستورات را در ترمینال اجرا کنید.
- در دبیان/اوبونتو:
- در فدورا:
- آرچ لینوکس:
- برای اطمینان از نصب صحیح ADB، دستور زیر را اجرا کنید:
نصب دستی ADB
- ابتدا، فایل ZIP مربوطبه Android SDK Platform Tools برای لینوکس را از وبسایت رسمی توسعهدهندگان اندروید دانلود کنید (برای دانلود نیاز به ابزار عبور از تحریم دارید).
- فایل ZIP دانلودشده را در یک محل دردسترس (مثلاً دسکتاپ) استخراج کنید.
- یک پنجرهی ترمینال را باز کنید.
- با استفاده از دستور زیر، وارد پوشهای شوید که فایل ZIP را در آن استخراج کردهاید. مسیر /path/to/extracted/folder/ را با مسیر واقعی جایگزین کنید:
مثال:
- گوشی خود را با کابل USB به کامپیوتر متصل کنید.
- درصورت نیاز، حالت اتصال USB را روی انتقال فایل (MTP) تنظیم کنید (این کار برای همهی دستگاهها الزامی نیست، اما ممکن است از بروز مشکلات جلوگیری کند).
- حالا که در مسیر صحیح قرار دارید، دستور زیر را در ترمینال اجرا کنید تا ADB Daemon راهاندازی شود:
- روی صفحهی دستگاه اندرویدی پیامی برای تأیید اشکالزدایی ظاهر میشود؛ گزینهی 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، مقدار نمایش دادهشده در گوشی خود را وارد کنید):
- پس از اجرای دستور، سیستم از شما میخواهد کد جفتسازی که در مراحل پیشین دریافت کردید را وارد کنید. پس از تأیید، پیغام Successfully paired نمایش داده خواهد شد.
- پس از جفتسازی، دستور زیر را در ترمینال کامپیوتر وارد کنید تا گوشی بهصورت بیسیم متصل شود:
- برای مقدار IP_Address:Port، مطابق اسکرینشات زیر از مقادیر نمایش داده شده در بخش IP address & Port استفاده کنید.
- اگر همهچیز درست باشد، پیغام زیر نمایش داده میشود:
- اکنون گوشی شما از طریق وایفای به ADB متصل شده است و میتوانید هر دستور ADB را بدون نیاز به کابل USB اجرا کنید.
اتصال به VPN یا ابزارهای تغییر آیپی در گوشی یا کامپیوتر ممکن است مانعاز اتصال بیسیم ADB شود.
دستورات اصلی ADB؛ جعبهابزار شما
حالا که محیط ADB را راهاندازی کردهاید و دستگاه بهدرستی شناسایی شده، وقت آن رسیده که با دستورات ضروری آشنا شوید. در این بخش، مهمترین فرمانهای ADB را بهصورت دستهبندیشده و کاربردی بررسی میکنیم.
ابزار ADB امکانات زیادی برای شخصیسازی و دسترسیهای پیشرفته فراهم میکند، اما اجرای برخی دستورات بدون آگاهی کافی ممکن است باعث اختلال در عملکرد دستگاه یا حذف ناخواستهی اطلاعات شود. لطفاً قبل از استفاده از این ابزار، راهنما را با دقت بخوانید و در صورت نیاز از دادههای مهم خود نسخهی پشتیبان تهیه کنید. زومیت مسئولیتی در قبال عواقب احتمالی ناشی از استفادهی نادرست از دستورات ندارد.
مدیریت دستگاه و سرور ADB
در این بخش، دستورات مربوطبه بررسی وضعیت دستگاههای متصل، راهاندازی و توقف سرور ADB و مدیریت اتصال از طریق شبکه را بررسی خواهیم کرد.
بررسی دستگاههای متصل
با این دستورات میتوانید ببینید کدام دستگاهها به ADB متصل هستند و اطلاعات آنها را مشاهده کنید.
- نمایش لیست دستگاههای متصل:
خروجی نمونه:
در ستون وضعیت (Status) ممکن است این موارد نمایش داده شود:
- device: دستگاه متصل و آماده به کار است.
- offline: دستگاه شناسایی شده اما پاسخگو نیست.
- unauthorized: مجوز دسترسی به ADB در دستگاه تأیید نشده است.
اگر adb devices دستگاه را نشان نمیدهد یا وضعیت آن unauthorized یا offline است، مجدداً بررسی کنید که USB Debugging فعال باشد و پیام تأیید روی گوشی را حتماً قبول کرده باشید.
- نمایش جزئیات بیشتر دربارهی دستگاهها:
این نسخهی پیشرفته، اطلاعاتی مانند مدل، نام محصول و transport ID را نیز نمایش میدهد. خروجی نمونه:
مدیریت سرور ADB
در حالت عادی، ADB خودش سرور را مدیریت میکند، اما اگر مشکلی پیش بیاید، میتوانید با این دستورات آن را کنترل کنید.
- راهاندازی سرور ADB (اگر درحال اجرا نیست):
- متوقف کردن سرور ADB:
- ریاستارت سرور: اگر با ADB مشکلی داشتید، ریاستارت کردن سرور معمولاً آن را رفع میکند.
اتصال ADB از طریق وایفای
پیشتر مراحل مربوطبه اتصال ADB از طریق وایرلس دیباگینگ را توضیح دادیم. دستورات زیر نیز در این حالت کاربردی هستند:
- قطع اتصال:
یا برای قطع از یک دستگاه خاص:
- بازگشت به حالت USB
ریبوت دستگاه در حالات مختلف و نصب آپدیت
در این بخش، دستورات مربوطبه ریبوت کردن، ورود به حالتهای خاص مانند Recovery و Bootloader و نصب بهروزرسانیهای سیستمی را بررسی خواهیم کرد.
ریبوت کردن (Restart)
با این دستورات میتوانید دستگاه را در حالتهای مختلف ریبوت کنید.
- ریبوت عادی: دستگاه را بهصورت معمولی راهاندازی مجدد میکند.
- ریبوت به حالت ریکاوری (Recovery Mode): برای تعمیر سیستم، نصب آپدیتها و بازیابی کارخانه از طریق محیط ریکاوری.
- ریبوت به حالت بوتلودر (Bootloader/Fastboot): برای فلشکردن رام، آنلاککردن بوتلودر و انجام تغییرات سیستمی عمیقتر.
نکته: بعضی دستگاهها ممکن است نیاز به تأیید دستی یا فشردن کلیدهای فیزیکی پساز ورود به این حالتها داشته باشند. حتماً راهنمای اختصاصی دستگاه خود را بررسی کنید.
نصب بهروزرسانیهای سیستمی (OTA Updates)
این بخش مربوطبه زمانی است که بخواهید فایل بهروزرسانی رسمی (OTA) را از طریق ریکاوری و با استفاده از فرمان sideload نصب کنید:
- نصب فایل آپدیت OTA از طریق Recovery Mode: پساز ورود به حالت ریکاوری و انتخاب گزینهای شبیهبه Apply update from ADB، از طریق دستور زیر میتوانید فایل آپدیت را نصب کنید:
مثال:
نکته: فایل ZIP آپدیت OTA را از منبع معتبر دریافت کنید. همچنین مطمئن شوید باتری گوشی بهاندازهی کافی شارژ دارد تا در حین آپدیت خاموش نشود.
بررسی اطلاعات دستگاه
برای مشاهدهی اطلاعات مربوطبه دستگاه متصل به ADB، از این دستورات استفاده کنید.
- نمایش وضعیت فعلی دستگاه: در خروجی، وضعیت device (متصل)، offline (بدون پاسخ) یا unauthorized (مجوز تأیید نشده) نشان داده میشود.
- دریافت شمارهی سریال دستگاه متصل: زمانی مفید است که چند دستگاه/شبیهساز همزمان به کامپیوتر وصل باشند و بخواهید شمارهی سریال هر کدام را بدانید.
ارسال دستورات به یک دستگاه خاص
اگر چندین دستگاه یا شبیهساز به سیستم متصل باشند، میتوانید مشخص کنید که فرمان به کدامیک ارسال شود.
- ارسال دستور به یک دستگاه خاص با شماره سریال:
مثال:
- ارسال دستور فقط به دستگاه متصل از طریق USB: اگر بخواهید دستور فقط به دستگاهی که از طریق USB متصل است ارسال شود (و شبیهسازها نادیده گرفته شوند):
- ارسال دستور فقط به شبیهساز (امولیتور): اگر قصد ارسال فرمان به شبیهساز اندرویدی را دارید:
مدیریت اپلیکیشنها
ADB یک ابزار قدرتمند برای نصب، حذف و مدیریت اپلیکیشنها فراتر از محدودیتهای فروشگاه گوگل پلی است. در این بخش، مهمترین دستورات برای کار با APK-ها و دادههای اپلیکیشنها معرفی میشود.
دستورات شل Package Manager
- فهرست تمام بستههای نصبشده
- لیست اپلیکیشنهای کاربر (غیرسیستمی)
- لیست اپلیکیشنهای سیستمی
- لیست اپلیکیشنهای غیرفعالشده
- لیست اپلیکیشنهای فعال
- نمایش مسیر فایل APK یک برنامه
نصب اپلیکیشنها
با استفاده از این دستورات، میتوان اپلیکیشنها را مستقیماً از طریق ADB روی دستگاه نصب کرد، از جمله نصب چند APK همزمان یا بهروزرسانی برنامههای موجود.
- نصب یک APK ساده:
مثال:
- نصب برنامه روی حافظهی خارجی (در صورت پشتیبانی دستگاه):
- نصب اپلیکیشنهای چندبخشی (Split APK یا App Bundle): برخی اپلیکیشنها بهصورت چند فایل APK منتشر میشوند؛ این فایلها که شامل یک APK پایه (base.apk) و چند فایل جانبی مثل زبان، DPI یا معماری پردازنده هستند، تحت عنوان Split APK یا App Bundle شناخته میشوند. برای نصب این نوع اپها، تمام فایلهای مرتبط را باید در یک دستور وارد کنید، مشابه نمونهی زیر:
نکته: اگر حتی یکی از فایلهای موردنیاز در این نوع نصب حذف شده یا ناقص باشد، نصب اپلیکیشن با خطا مواجه خواهد شد.
حذف اپلیکیشنها
برای حذف برنامهها از طریق ADB، میتوان از نام پکیج (package_name) آنها استفاده کرد (میتوان package name را از طریق دستور adb shell pm list packages به دست آورد).
- حذف کامل یک اپلیکیشن (APK + دادهها):
مثال:
مدیریت دادهها و وضعیت اپلیکیشن
با این دستورات، میتوانید دادههای یک اپلیکیشن را پاک کنید، برنامههای پیشفرض سیستم را غیرفعال کنید، یا مجدداً فعال نمایید.
- پاک کردن دادهها و کش اپلیکیشن: برنامه به وضعیت ابتدایی (مثل اولین نصب) برمیگردد.
مثال:
- غیرفعالکردن اپلیکیشن سیستمی (بدون نیاز به روت در بسیاری از دستگاهها): این کار برنامه را پنهان و غیرفعال میکند. برای برنامههای مهم سیستمی توصیه نمیشود.
مثال:
- فعال کردن مجدد اپلیکیشن غیرفعالشده:
مثال:
هشدار: پیشاز غیرفعالکردن اپلیکیشنهای سیستمی حساس، تحقیق کنید که این برنامه برای عملکرد عادی دستگاه ضروری نباشد. درغیراینصورت ممکن است با مشکل بوتنشدن دستگاه یا عملکرد نادرست روبهرو شوید.
انتقال داده و عملیات فایل
علاوهبر مدیریت اپلیکیشنها، ADB یک ابزار قدرتمند برای ارسال و دریافت فایلها بین کامپیوتر و دستگاه اندرویدی است. همچنین میتوان مستقیماً با سیستم فایل دستگاه کار کرد.
- ارسال فایل از کامپیوتر به دستگاه:
مثال:
نکته: بهطور پیشفرض، مسیر /sdcard در اغلب دستگاهها همان حافظهی داخلی (Internal Storage) است. اگر دستگاه از کارت حافظه (SD Card) پشتیبانی کند و دسترسی لازم داشته باشد، مسیر کارت حافظه ممکن است /sdcard یا /storage/xxxx-xxxx باشد.
- دریافت فایل از دستگاه به کامپیوتر:
مثال:
نکته: اگر فولدری را مشخص کنید، تمامی محتوای آن در مقصد دانلود خواهد شد.
نکته: هنگام انتقال فایل بین کامپیوتر و دستگاه اندرویدی با adb pull و adb push، اگر مسیر مقصد را یک پوشه مشخص کنید (بدون ذکر نام و پسوند فایل)، ADB فایل را با همان نام اصلیاش در آن پوشه ذخیره خواهد کرد. اما اگر میخواهید فایل با نام متفاوتی در کامپیوتر ذخیره شود، حتماً در انتهای آدرس مقصد نام جدید فایل بههمراه پسوند آن را وارد کنید.
عملیات روی فایلسیستم دستگاه (داخل محیط adb shell)
بخش عمدهای از دستورات مدیریتی روی فایلها، پوشهها، و عملکردهای سیستمی از طریق محیط adb shell انجام میشود. با اجرای این دستور:
شما وارد یک محیط خط فرمان شبیه به ترمینال لینوکس میشوید که در واقع همان شل داخلی سیستمعامل اندروید است. در این محیط میتوانید دستورات مختلفی برای بررسی یا تغییر فایلها، اجرای فرامین سیستمی، یا حتی مشاهدهی لاگها وارد کنید.
نکته: برای خروج از محیط شل از دستور exit استفاده کنید.
نکته: بسیاری از دستورات رایج لینوکس مانند pwd، cd، ls، mv، cp، rm، و cat در این محیط پشتیبانی میشوند؛ اما باید توجه داشت که برخی دستورات یا قابلیتها ممکن است به دلایل امنیتی یا محدودیتهای سیستمی اندروید فعال یا دردسترس نباشند (بهویژه در دستگاههای بدون روت).
- گرفتن اسکرینشات:
مثال:
- ضبط ویدیو از صفحه: دستور screenrecord یکی از ابزارهای داخلی ADB برای ضبط ویدیو از صفحهنمایش دستگاه اندرویدی است. این دستور بهطور پیشفرض تا ۳ دقیقه (۱۸۰ ثانیه) از صفحه ضبط میکند.
بهجای [options] میتوانید از یک یا چندتا از گزینههای زیر استفاده کنید:
گزینه | توضیح |
---|---|
--size WIDTHxHEIGHT | تعیین رزولوشن خروجی، مثلاً 1280x720 |
--bit-rate RATE | تعیین نرخ بیت ویدیو (واحد: بیت بر ثانیه). پیشفرض 4Mbps است. برای مثال --bit-rate 8000000 برای کیفیت بالاتر |
--time-limit SECONDS | تعیین مدت زمان ضبط (پیشفرض: 180 ثانیه). برای مثال --time-limit 60 برای ضبط ۱ دقیقهای |
--rotate | چرخش ۹۰ درجهای تصویر ضبطشده (مثلاً برای ویدیوهای عمودی یا افقی) |
--verbose | نمایش اطلاعات جزئی دربارهی فرایند ضبط در ترمینال |
مثال:
نکته: برای توقف ضبط، میتوانید کلیدهای Ctrl + C را در ترمینال فشار دهید یا اجازه دهید تا زمان مشخصشده تمام شود.
- حذف یک فایل:
مثال:
- ایجاد یک پوشه:
مثال:
لیستکردن فایلها و پوشهها:
مثال:
- نمایش محتوای یک فایل متنی:
مثال:
- شبیهسازی تایپ متن:
مثال:
با این دستور، انگار کاربر همین متن را روی کیبورد دستگاه تایپ کرده. برای فاصله (space) باید از %20 استفاده شود.
ثبت گزارش و اشکالزدایی (Logcat و Bugreport)
یکی از مهمترین کارکردهای ADB برای توسعهدهندگان و کاربران حرفهای، مشاهدهی لاگهای سیستم و تهیهی گزارش اشکال برای عیبیابی است.
مشاهدهی لاگهای زنده با logcat
- دستور پایه برای نمایش لاگها: تمام لاگهای سیستم را بهصورت زنده در ترمینال نشان میدهد.
نکته: برای متوقف کردن فرآیند نمایش لاگها، از کلیدهای Ctrl + C استفاده کنید.
- پاککردن لاگهای قبلی: این دستور تمامی بافر لاگ را پاک میکند. سپس با اجرای دوبارهی دستور adb logcat فقط لاگهای جدید نمایش داده خواهند شد.
فیلتر کردن خروجی Logcat
- بر اساس سطح اولویت: V (Verbose)، D (Debug)، I (Info)، W (Warning)، E (Error)، F (Fatal)، و S (Silent).
مثال: دستور زیر فقط لاگهای سطح Error و بالاتر را نمایش میدهد.
- بر اساس تگ
مثال: فقط لاگهای Debug مربوطبه پکیج مشخص شده (مثلاً com.duolingo) نمایش داده میشود و بقیه تگها مخفی میشوند.
ترکیب logcat با ابزارهای دیگر
برای فیلتر کردن یا پردازش خروجی دستور adb logcat، میتوان آن را با ابزارهای خط فرمان ترکیب کرد. بستهبه سیستمعاملی که استفاده میکنید، روش انجام اینکار کمی متفاوت است.
در ویندوز (CMD یا PowerShell)
- جستجوی عبارت خاص در خروجی لاگ با findstr: برای مثال، نمایش فقط خطوطی که شامل عبارت Error هستند:
میتوانید هر عبارت دلخواهی را جایگزین کنید. مثلاً برای لاگهای مربوط به MyAppTag:
- مشاهدهی تعداد معینی از خطوط آخر لاگ (شبیه tail): ویندوز بهصورت پیشفرض ابزار tail را ندارد، ولی میتوانید از پاورشل استفاده کنید:
در لینوکس / macOS
- جستوجوی عبارت خاص با grep: برای مثال فقط لاگهایی که شامل کلمهی Error هستند:
مشاهدهی ۲۰ خط آخر لاگ با tail: برای نمایش تعداد مشخصی از خطوط پایانی:
ترکیب این ابزارها با logcat کمک میکند که سریعتر لاگهای مهم یا خطاها را در میان حجم زیادی از اطلاعات پیدا کنید.
تولید گزارش اشکالزدایی (Bug Reports)
دستور adb bugreport یکی از روشهای جامع برای تهیهی گزارش اشکال از دستگاه اندرویدی است. این گزارش شامل اطلاعاتی مثل لاگهای سیستم، خروجی سرویسهای سیستمی (dumpsys)، وضعیت باتری، پردازشها، شبکه، اپلیکیشنها و دیگر اطلاعات فنی لحظهای دستگاه میشود.
این ابزار معمولاً برای توسعهدهندگان، تسترها و کاربران حرفهای کاربرد دارد که قصد بررسی مشکلات نرمافزاری یا ارسال گزارش اشکال به تیم پشتیبانی دارند.
- ذخیرهی گزارش در دستگاههای جدید (اندروید ۸ و بالاتر): در اندرویدهای جدیدتر، اجرای دستور adb bugreport باعث میشود دستگاه فایل فشردهی zip حاوی گزارش را تولید و آن را بهصورت خودکار به کامپیوتر منتقل کند.
محتوای فایل ZIP ممکن است شامل فایلهایی مثل زیر باشد:
- bugreport.txt
- dumpstate_board.txt
- logcat.txt
- kernel_log.txt
مثال:
اطلاعات سیستم و دستگاه
فرمانهای ADB این امکان را میدهند که اطلاعات دقیقی دربارهی سختافزار، سرویسهای سیستم، وضعیت عملکرد و منابع دستگاه اندرویدی دریافت کنید. این اطلاعات میتوانند در عیبیابی، تحلیل رفتار سیستم یا بررسی باگها بسیار مفید باشند.
دریافت اطلاعات سرویسهای سیستمی با dumpsys
دستور dumpsys ابزاری قدرتمند برای استخراج اطلاعات از سرویسهای مختلف سیستم اندروید است. این اطلاعات شامل وضعیت فعلی سرویسها، اپلیکیشنها، باتری، وایفای، وضعیت حافظه و دهها مورد دیگر است.
- نمایش اطلاعات تمام سرویسها در ترمینال:
نکته: این خروجی بسیار طولانی است و بهتر است آن را در فایل ذخیره یا فیلتر کنید.
- لیست سرویسهای موجود: لیستی از سرویسهایی مانند activity, battery, wifi, package و غیره را نمایش میدهد.
- دریافت اطلاعات از سرویس خاص:
مثالها:
- ذخیرهی خروجی dumpsys در فایل: برای اینکه بتوانید خروجی کامل را بعداً بررسی یا با دیگران بهاشتراک بگذارید، میتوانید آن را در یک فایل ذخیره کنید:
یا برای سرویس خاص:
فایل خروجی در همان مسیری ذخیره میشود که دستور را در آن اجرا کردهاید (پوشهی جاری ترمینال یا CMD). اگر مسیر خاصی مدنظرتان است، میتوانید آن را بهصورت کامل مشخص کنید.
مانیتورینگ پردازشها و وضعیت سیستم
- مشاهدهی پردازشهای فعال همراه با مصرف CPU (نمایش زنده):
- لیست کامل پردازشها (مشابه ps در لینوکس):
نکته: بسته به نسخهی اندروید، ممکن است نیاز به گزینههای بیشتری مثل ps -A یا ps -e باشد.
- بررسی فضای پارتیشنها: این دستور مشخص میکند هر پارتیشن چه حجمی دارد و چه مقدار آن پر است.
- نمایش اطلاعات پردازنده (CPU):
- نمایش اطلاعات حافظهی رم:
ابزار ADB از گستردگی و انعطافپذیری بالایی برخوردار است. هرچند در این مقاله تلاش شده تا کاربردیترین بخشهای آن معرفی شود، اما همچنان بسیاری از دستورات و قابلیتها خارج از محدودهی این مطلب باقی ماندهاند. کاربران علاقهمند میتوانند با توجه به نیازهای خاص خود، از طریق جستوجو در منابع رسمی یا مشارکت در انجمنهای تخصصی، شناخت عمیقتری از توانمندیهای ADB به دست آورند.
اگر تجربهای از استفاده از ADB دارید یا با مشکلی در اجرای دستورات روبهرو شدهاید، حتماً در بخش نظرات با ما در میان بگذارید.