به عنوان متخصص اندروید، ابزارهای رفع اشکال در سطح پایین مانند ADB و Logcat از ضروریترین ابزارهای توسعه و عیبیابی هستند. در ادامه به تفصیل این ابزارها و کاربردهایشان را شرح میدهم:
۱. ADB (Android Debug Bridge)
ابزار خط فرمانی برای ارتباط مستقیم با دستگاه اندرویدی (یا شبیهساز) و اجرای دستورات سیستم.
دستورات کلیدی:
اتصال به دستگاه:
adb devices # لیست دستگاههای متصل
adb connect <IP:PORT> # اتصال از طریق شبکه
مدیریت فایلها:
adb push <local> <remote> # آپلود فایل
adb pull <remote> <local> # دانلود فایل
مدیریت پکیجها:
adb install <app.apk> # نصب اپلیکیشن
adb uninstall <package> # حذف اپلیکیشن
دسترسی به Shell:
adb shell # ورود به محیط Linux دستگاه
کاربردهای پیشرفته:
عیبیابی سیستمفایل با دستوراتی مثل adb shell ls /dev/block.
فعال کردن دسترسی روت (در دستگاههای روت شده).
۲. Logcat
ابزار نمایش لاگهای سیستم و اپلیکیشنها در زمان واقعی (Real-Time).
فیلترهای ضروری:
نمایش لاگهای یک اپلیکیشن:
adb logcat –pid=$(adb shell pidof -s <package>)
فیلتر بر اساس سطح اهمیت:
adb logcat *:E # فقط خطاها (Errors)
جستجوی کلیدواژه:
adb logcat | grep “Crash”
فرمتهای خروجی:
خروجی به فایل:
adb logcat -d > log.txt
پاک کردن لاگها:
adb logcat -c
۳. ترکیب ADB و Logcat برای عیبیابی حرفهای
گرفتن باگریپورت:
adb bugreport <output_dir>
تحلیل ANRها (Application Not Responding):
adb pull /data/anr/traces.txt
۴. ابزارهای مکمل
Strace: ردیابی فراخوانیهای سیستمی (System Calls).
adb shell strace -p <PID>
DDMS (Dalvik Debug Monitor): ابزار گرافیکی برای تحلیل هستهی اندروید (در Android Studio قدیمی).
۵. نکات کلیدی برای آموزش
برای دانشجویان: تمرکز روی فیلتر کردن لاگها و تفسیر خطاهای رایج (مثل NullPointerException).
برای پروژههای صنعتی: استفاده از خروجی JSON یا ابزارهایی مثل Firebase Crashlytics برای تحلیل خودکار.
اگر نیاز به مثال عملی یا توضیح یک سناریوی خاص دارید، خوشحال میشوم کمک کنم! 😊