Android Debug Bridge (adb
) הוא כלי גמיש בשורת הפקודה שמאפשר לתקשר עם מכשיר. הפקודה adb
מאפשרת לבצע מגוון פעולות במכשיר, כמו התקנה של אפליקציות וניפוי באגים בהן. adb
מספק גישה למעטפת Unix שבה אפשר להריץ מגוון פקודות במכשיר. זוהי תוכנית לקוח-שרת שכוללת שלושה רכיבים:
- לקוח, ששולח פקודות. הלקוח פועל במכונה שלכם לפיתוח. אפשר להפעיל לקוח מסוף שורת פקודה באמצעות הפקודה
adb
. - דימון (adbd), שמריץ פקודות במכשיר. הדימון פועל בתור תהליך רקע בכל מכשיר.
- שרת שמנהל את התקשורת בין הלקוח לבין הדימון. השרת פועל בתור תהליך רקע במכונה שלכם לפיתוח.
adb
נכלל בחבילת Android SDK Platform Tools. מורידים את החבילה הזו באמצעות SDK Manager, שמתקין אותה ב-android_sdk/platform-tools/
. אם אתם רוצים את חבילת Android SDK Platform Tools העצמאית, הורידו אותה מכאן.
במאמר הפעלת אפליקציות במכשיר חומרה מוסבר איך מחברים מכשיר לשימוש דרך adb
, כולל איך משתמשים בכלי לסיוע בחיבור כדי לפתור בעיות נפוצות.
איך פועל adb
כשמפעילים לקוח adb
, הלקוח בודק קודם אם כבר פועל תהליך שרת של adb
. אם לא, הוא מתחיל את תהליך השרת.
כשהשרת מופעל, הוא מתחבר ליציאת ה-TCP המקומית 5037 ומקשיב לפקודות שנשלחות מלקוחות adb
.
הערה: כל לקוחות adb
משתמשים ביציאה 5037 כדי לתקשר עם השרת adb
.
לאחר מכן, השרת מגדיר חיבורים לכל המכשירים שפועלים.
הוא מאתר את המהדמנים על ידי סריקת יציאות בעלות מספרים אי זוגיים בטווח 5555 עד 5585, שהוא הטווח שבו נעשה שימוש ב-16 המהדמנים הראשונים. כשהשרת מוצא דימון (daemon) של adb
(adbd), הוא מגדיר חיבור ליציאה הזו.
כל אמולטור משתמש בשתי יציאות רצופות – יציאה בעלת מספר זוגי לחיבורי מסוף ויציאה בעלת מספר אי זוגי לחיבורי adb
. לדוגמה:
אמולטור 1, מסוף: 5554
אמולטור 1, adb
: 5555
אמולטור 2, מסוף: 5556
אמולטור 2, adb
: 5557
וכן הלאה.
כפי שמוצג, האמולטור שמחובר ל-adb
ביציאה 5555 הוא זהה לאמולטור שהמסוף שלו מקשיב ביציאה 5554.
אחרי שהשרת מגדיר חיבורים לכל המכשירים, אפשר להשתמש בפקודות adb
כדי לגשת למכשירים האלה. מכיוון שהשרת מנהל את החיבורים למכשירים ומטפל בפקודות ממספר לקוחות adb
, אפשר לשלוט בכל מכשיר מכל לקוח או מסקריפט.
הפעלת ניפוי באגים באמצעות adb במכשיר
כדי להשתמש ב-adb עם מכשיר שמחובר באמצעות USB, צריך להפעיל את ניפוי הבאגים ב-USB בהגדרות המערכת של המכשיר, בקטע אפשרויות למפתחים. ב-Android 4.2 ואילך (רמה 17 של API ואילך), המסך אפשרויות למפתחים מוסתר כברירת מחדל. כדי להציג אותו, מפעילים את האפשרויות למפתחים.
עכשיו אפשר לחבר את המכשיר באמצעות USB. כדי לוודא שהמכשיר מחובר, מריצים את הפקודה adb devices
מהספרייה android_sdk/platform-tools/
. אם המכשיר מחובר, שם המכשיר יופיע בתור 'מכשיר'.
הערה: כשמחברים מכשיר עם Android מגרסה 4.2.2 (רמת API 17) ואילך, מוצגת תיבת דו-שיח עם שאלה אם לקבל מפתח RSA שמאפשר ניפוי באגים דרך המחשב הזה. מנגנון האבטחה הזה מגן על מכשירי המשתמשים כי הוא מוודא שלא ניתן להריץ ניפוי באגים ב-USB ופקודות adb אחרות, אלא אם אתם יכולים לבטל את נעילת המכשיר ולאשר את תיבת הדו-שיח.
מידע נוסף על חיבור למכשיר באמצעות USB זמין במאמר הפעלת אפליקציות במכשיר חומרה.
התחברות למכשיר באמצעות Wi-Fi
הערה: ההוראות הבאות לא חלות על מכשירי Wear שפועלת בהם מערכת Android 11 (רמת API 30). מידע נוסף זמין במדריך לניפוי באגים באפליקציות ל-Wear OS.
בגרסאות Android 11 ואילך (רמת API 30 ואילך) יש תמיכה בפריסה ובניפוי באגים של האפליקציה באופן אלחוטי מתחנת העבודה באמצעות Android Debug Bridge (adb). לדוגמה, אפשר לפרוס אפליקציה שניתנת לניפוי באגים למספר מכשירים מרוחקים בלי שתצטרכו לחבר את המכשיר פיזית באמצעות USB. כך אין צורך לטפל בבעיות נפוצות בחיבור USB, כמו התקנת מנהל התקן.
לפני שמתחילים להשתמש בניפוי באגים אלחוטי, צריך לבצע את הפעולות הבאות:
-
מוודאים שמכונת העבודה והמכשיר מחוברים לאותה רשת אלחוטית.
-
מוודאים שבטלפון פועלת מערכת ההפעלה Android 11 (רמת API 30) ואילך, ובטלוויזיה וב-Wear OS פועלת מערכת ההפעלה Android 13 (רמת API 33) ואילך. מידע נוסף זמין במאמר איך בודקים את גרסת Android ומעדכנים אותה.
-
אם אתם משתמשים בסביבת הפיתוח המשולבת, חשוב לוודא שמותקנת אצלכם הגרסה האחרונה של Android Studio. אפשר להוריד אותו כאן.
-
בתחנת העבודה, מעדכנים לגרסת SDK Platform Tools האחרונה.
כדי להשתמש בניפוי באגים אלחוטי, צריך להתאים את המכשיר לתחנת העבודה באמצעות קוד QR או קוד התאמה. תחנת העבודה והמכשיר צריכים להיות מחוברים לאותה רשת אלחוטית. כדי להתחבר למכשיר:
-
מפעילים את האפשרויות למפתחים במכשיר.
-
פותחים את Android Studio ובוחרים באפשרות Pair Devices Using Wi-Fi בתפריט ההגדרות של ההרצה.
איור 1. תפריט ההגדרות של ההרצה.החלון התאמת מכשירים באמצעות Wi-Fi יופיע, כפי שמוצג באיור 2.
איור 2. חלון קופץ להתאמת מכשירים באמצעות קוד QR או קוד התאמה. -
במכשיר, מקישים על ניפוי באגים אלחוטי ומתאימים את המכשיר:
איור 3. צילום מסך של ההגדרה ניפוי באגים אלחוטי בטלפון Google Pixel.-
כדי להתאים את המכשיר באמצעות קוד QR, בוחרים באפשרות התאמת מכשיר באמצעות קוד QR וסורקים את קוד ה-QR שמופיע בחלון הקופץ התאמת מכשירים באמצעות Wi-Fi שמוצג באיור 2.
-
כדי להתאים את המכשיר באמצעות קוד התאמה, בוחרים באפשרות התאמת מכשיר באמצעות קוד התאמה בחלון הקופץ התאמת מכשירים דרך Wi-Fi. במכשיר, בוחרים באפשרות התאמה באמצעות קוד התאמה ומתעדים את הקוד בן 6 הספרות שמוצג. כשהמכשיר מופיע בחלון התאמת מכשירים באמצעות Wi-Fi, בוחרים באפשרות התאמה ומזינים את הקוד בן שש הספרות שמוצג במכשיר.
איור 4. דוגמה להזנת קוד בן 6 ספרות.
-
-
אחרי שמתאימים את המכשיר, אפשר לנסות לפרוס את האפליקציה במכשיר.
כדי להתאים מכשיר אחר או למחוק את המכשיר הנוכחי בתחנת העבודה, עוברים אל ניפוי באגים אלחוטי במכשיר. מקישים על שם תחנת העבודה בקטע מכשירים מותאמים ובוחרים באפשרות הסרה.
-
אם רוצים להפעיל ולכבות במהירות את ניפוי הבאגים האלחוטי, אפשר להשתמש בכרטיסי המידע למפתחים בהגדרות המהירות לניפוי באגים אלחוטי. הכרטיסים נמצאים בקטע אפשרויות למפתחים > כרטיסי מידע למפתחים בהגדרות המהירות.
איור 5. ההגדרה כרטיסי מידע למפתחים בהגדרות המהירות מאפשרת להפעיל או להשבית במהירות את ניפוי הבאגים האלחוט.
חיבור Wi-Fi באמצעות שורת הפקודה
לחלופין, כדי להתחבר למכשיר באמצעות שורת הפקודה בלי Android Studio, פועלים לפי השלבים הבאים:
-
מפעילים את האפשרויות למפתחים במכשיר, כפי שמתואר למעלה.
-
מפעילים את ניפוי הבאגים האלחוטי במכשיר, כפי שמתואר למעלה.
-
בתחנת העבודה, פותחים חלון טרמינל ועוברים אל
android_sdk/platform-tools
. -
כדי למצוא את כתובת ה-IP, מספר היציאה וקוד ההתאמה, בוחרים באפשרות התאמת מכשיר באמצעות קוד התאמה. שימו לב לכתובת ה-IP, למספר היציאה ולקוד ההתאמה שמוצגים במכשיר.
-
מריצים את הפקודה
adb pair ipaddr:port
בטרמינל של תחנת העבודה. צריך להשתמש בכתובת ה-IP ובמספר היציאה שמופיעים למעלה. -
כשתתבקשו, מזינים את קוד ההתאמה כפי שמתואר בהמשך.
איור 6. תופיע הודעה על כך שהמכשיר הותאם בהצלחה.
פתרון בעיות בחיבור אלחוטי
אם נתקלתם בבעיות בחיבור אל המכשיר באופן אלחוטי, תוכלו לנסות את השלבים הבאים לפתרון הבעיה.
בדיקה אם תחנת העבודה והמכשיר עומדים בדרישות המוקדמות
בודקים אם תחנת העבודה והמכשיר עומדים בדרישות המוקדמות שמפורטות בתחילת הקטע הזה.
בדיקה אם יש בעיות ידועות אחרות
בהמשך מופיעה רשימה של הבעיות הידועות הנוכחיות בניפוי באגים אלחוטי (באמצעות adb או Android Studio) ואופן הפתרון שלהן:
-
לא ניתן להתחבר לרשת Wi-Fi: רשתות Wi-Fi מאובטחות, כמו רשתות Wi-Fi ארגוניות, עשויות לחסום חיבורי P2P ולא לאפשר לכם להתחבר דרך Wi-Fi. מנסים להתחבר באמצעות כבל או לרשת Wi-Fi אחרת (לא עסקית). אפשרות נוספת היא חיבור אלחוטי באמצעות
adb connect ip:port
על גבי tcp/ip (לאחר חיבור USB ראשוני), במקרה שאפשר להשתמש ברשת שאינה של הארגון. -
adb
בחיבור ל-Wi-Fi מושבת לפעמים באופן אוטומטי: המצב הזה יכול לקרות אם המכשיר עובר בין רשתות Wi-Fi או מתנתק מהרשת. כדי לפתור את הבעיה, צריך להתחבר מחדש לרשת. -
המכשיר לא מתחבר אחרי ההתאמה:
adb
מסתמך על mDNS כדי לגלות מכשירים מותאמים ולהתחבר אליהם באופן אוטומטי. אם ההגדרות של הרשת או המכשיר לא תומכות ב-mDNS או שהן משביתות אותו, צריך להתחבר למכשיר באופן ידני באמצעותadb connect ip:port
.
חיבור אלחוטי למכשיר אחרי חיבור USB ראשוני (האפשרות הזו זמינה רק ב-Android מגרסה 10 ואילך)
הערה: תהליך העבודה הזה רלוונטי גם ל-Android 11 (וגם לגרסאות מתקדמות יותר), אבל יש לזכור שהוא כולל גם חיבור *ראשוני* באמצעות USB פיזי.
הערה: ההוראות הבאות לא חלות על מכשירי Wear עם Android מגרסה 10 (רמת API 29) ומטה. מידע נוסף זמין במדריך בנושא ניפוי באגים באפליקציה ל-Wear OS.
בדרך כלל, adb
מתקשר עם המכשיר דרך USB, אבל אפשר להשתמש ב-adb
גם דרך Wi-Fi. כדי לחבר מכשיר עם Android מגרסה 10 (API ברמה 29) ומטה, צריך לבצע את השלבים הראשוניים הבאים באמצעות USB:
-
מחברים את מכשיר Android ואת המחשב המארח
adb
לרשת Wi-Fi משותפת. - מחברים את המכשיר למחשב המארח באמצעות כבל USB.
-
מגדירים את מכשיר היעד להאזנה לחיבור TCP/IP ביציאה 5555:
adb tcpip 5555
- מנתקים את כבל ה-USB מהמכשיר היעד.
- מוצאים את כתובת ה-IP של מכשיר Android. לדוגמה, במכשיר Nexus, אפשר למצוא את כתובת ה-IP בקטע הגדרות > מידע על הטאבלט (או מידע על הטלפון) > סטטוס > כתובת IP.
-
מתחברים למכשיר לפי כתובת ה-IP שלו:
adb connect device_ip_address:5555
-
מוודאים שמחשב המארח מחובר למכשיר היעד:
$ adb devices List of devices attached device_ip_address:5555 device
הערה: חשוב לזכור שלא כל נקודות הגישה מתאימות. יכול להיות שתצטרכו להשתמש בנקודת גישה שחומת האש שלה מוגדרת כראוי לתמיכה ב-adb
.
המכשיר מחובר עכשיו ל-adb
.
אם החיבור של adb
למכשיר שלכם יתנתק:
- מוודאים שהמארח עדיין מחובר לאותה רשת Wi-Fi שממנה מחובר מכשיר Android.
-
כדי להתחבר מחדש, מבצעים שוב את שלב
adb connect
. -
אם הבעיה נמשכת, מאפסים את המארח
adb
:adb kill-server
לאחר מכן מתחילים מחדש.
שליחת שאילתה לגבי מכשירים
לפני שמפעילים פקודות adb
, כדאי לדעת אילו מכונות של מכשירים מחוברות לשרת adb
. יוצרים רשימה של מכשירים מחוברים באמצעות הפקודה devices
:
adb devices -l
בתגובה, adb
מדפיס את פרטי הסטטוס האלה לכל מכשיר:
- מספר סידורי:
adb
יוצר מחרוזת כדי לזהות את המכשיר באופן ייחודי לפי מספר היציאה שלו. דוגמה למספר סידורי:emulator-5554
- מצב: סטטוס החיבור של המכשיר יכול להיות אחד מהסטטוסים הבאים:
offline
: המכשיר לא מחובר ל-adb
או שהוא לא מגיב.device
: המכשיר מחובר לשרתadb
. חשוב לזכור שהמצב הזה לא מעיד על כך שמערכת Android מופעלת באופן מלא, כי המכשיר מתחבר ל-adb
בזמן שהמערכת עדיין מופעלת. אחרי ההפעלה, זהו המצב התפעולי הרגיל של המכשיר.no device
: אין מכשיר מחובר.
- תיאור: אם תכללו את האפשרות
-l
, הפקודהdevices
תציין את סוג המכשיר. המידע הזה שימושי כשיש כמה מכשירים מחוברים, כדי שתוכלו להבדיל ביניהם.
בדוגמה הבאה מוצגת הפקודה devices
והפלט שלה. יש שלושה מכשירים שפועלים. שתי השורות הראשונות ברשימה הן מכונות וירטואליות, והשורה השלישית היא מכשיר חומרה שמחובר למחשב.
$ adb devices List of devices attached emulator-5556 device product:sdk_google_phone_x86_64 model:Android_SDK_built_for_x86_64 device:generic_x86_64 emulator-5554 device product:sdk_google_phone_x86 model:Android_SDK_built_for_x86 device:generic_x86 0a388e93 device usb:1-1 product:razor model:Nexus_7 device:flo
האמולטור לא מופיע ברשימה
בפקודה adb devices
יש רצף פקודות של מקרה קיצון שגורם למהדמנים שפועלים לא להופיע בפלט של adb devices
, למרות שהמהדמנים גלויים במחשב. המצב הזה מתרחש אם כל התנאים הבאים מתקיימים:
- השרת
adb
לא פועל. - משתמשים בפקודה
emulator
עם האפשרות-port
או-ports
עם ערך יציאה בעל מספר אי-זוגי בין 5554 ל-5584. - היציאה בעלת המספר הלא זוגי שבחרתם לא תפוסה, כך שניתן לבצע את חיבור היציאה במספר היציאה שצוין. אם היא תפוסה, הסימולטור עובר ליציאה אחרת שעומדת בדרישות שמפורטות בפסקה 2.
- מפעילים את השרת
adb
אחרי שמפעילים את הסימולטור.
אחת מהדרכים למנוע את המצב הזה היא לאפשר למהדר לבחור את היציאות שלו ולא להפעיל יותר מ-16 מכונות וירטואליות בו-זמנית. אפשרות אחרת היא תמיד להפעיל את השרת adb
לפני שמשתמשים בפקודה emulator
, כפי שמוסבר בדוגמאות הבאות.
דוגמה 1: בסדרת הפקודות הבאה, הפקודה adb devices
מפעילה את השרת adb
, אבל רשימת המכשירים לא מופיעה.
מפסיקים את השרת adb
ומזינים את הפקודות הבאות בסדר המוצג. בשם ה-AVD, נותנים שם AVD חוקי מהמערכת. כדי לקבל רשימה של שמות AVD, מקלידים emulator -list-avds
. הפקודה emulator
נמצאת בספרייה android_sdk/tools
.
$ adb kill-server $ emulator -avd Nexus_6_API_25 -port 5555 $ adb devices List of devices attached * daemon not running. starting it now on port 5037 * * daemon started successfully *
דוגמה 2: בסדרת הפקודות הבאה, adb devices
מציגה את רשימת המכשירים כי שרת adb
הופעל קודם.
כדי לראות את האמולטור בפלט של adb devices
, צריך לעצור את השרת adb
ואז להפעיל אותו שוב אחרי שמשתמשים בפקודה emulator
ולפני שמשתמשים בפקודה adb devices
, באופן הבא:
$ adb kill-server $ emulator -avd Nexus_6_API_25 -port 5557 $ adb start-server $ adb devices List of devices attached emulator-5557 device
למידע נוסף על אפשרויות שורת הפקודה של המהדר, ראו אפשרויות הפעלה בשורת הפקודה.
שליחת פקודות למכשיר ספציפי
אם פועלים כמה מכשירים, צריך לציין את מכשיר היעד כשמפעילים את הפקודה adb
.
כדי לציין את היעד, מבצעים את השלבים הבאים:
- משתמשים בפקודה
devices
כדי לקבל את המספר הסידורי של היעד. - אחרי שמוצאים את המספר הסידורי, משתמשים באפשרות
-s
עם הפקודותadb
כדי לציין את המספר הסידורי.- אם אתם מתכוונים להפעיל הרבה פקודות
adb
, תוכלו להגדיר את משתנה הסביבה$ANDROID_SERIAL
כך שיכיל את המספר הסידורי במקום זאת. - אם משתמשים גם ב-
-s
וגם ב-$ANDROID_SERIAL
, הערך של-s
מבטל את הערך של$ANDROID_SERIAL
.
- אם אתם מתכוונים להפעיל הרבה פקודות
בדוגמה הבאה, מתקבלת רשימת המכשירים המחוברים, ואז המספר הסידורי של אחד מהמכשירים משמש להתקנת helloWorld.apk
במכשיר הזה:
$ adb devices List of devices attached emulator-5554 device emulator-5555 device 0.0.0.0:6520 device # To install on emulator-5555 $ adb -s emulator-5555 install helloWorld.apk # To install on 0.0.0.0:6520 $ adb -s 0.0.0.0:6520 install helloWorld.apk
הערה: אם נותנים פקודה בלי לציין מכשיר יעד כשיש כמה מכשירים זמינים, ב-adb
תוצג השגיאה "adb: more than one device/emulator".
אם יש לכם כמה מכשירים זמינים, אבל רק אחד מהם הוא אמולטור, תוכלו להשתמש באפשרות -e
כדי לשלוח פקודות לאמולטור. אם יש כמה מכשירים אבל רק מכשיר חומרה אחד מחובר, משתמשים באפשרות -d
כדי לשלוח פקודות למכשיר החומרה.
התקנת אפליקציה
אפשר להשתמש ב-adb
כדי להתקין קובץ APK במהדמ או במכשיר מחובר באמצעות הפקודה install
:
adb install path_to_apk
צריך להשתמש באפשרות -t
עם הפקודה install
כשמתקינים קובץ APK לבדיקה. למידע נוסף, ראו -t
.
כדי להתקין כמה חבילות APK, משתמשים ב-install-multiple
. האפשרות הזו שימושית אם מורידים מ-Play Console את כל קובצי ה-APK של האפליקציה למכשיר ספציפי, ואז רוצים להתקין אותם במהדמ או במכשיר פיזי.
למידע נוסף על יצירת קובץ APK שאפשר להתקין במכונה של מכשיר או של אמולטור, ראו פיתוח והרצה של האפליקציה.
הערה: אם אתם משתמשים ב-Android Studio, אתם לא צריכים להשתמש ישירות ב-adb
כדי להתקין את האפליקציה במהדורת האדמולטור או במכשיר. במקום זאת, Android Studio מטפלת באריזה ובהתקנה של האפליקציה בשבילכם.
הגדרת העברה ליציאה אחרת
משתמשים בפקודה forward
כדי להגדיר העברה שרירותית ליציאה אחרת, שמעבירה בקשות ביציאת מארח ספציפית ליציאה אחרת במכשיר.
בדוגמה הבאה מגדירים העברה של יציאת המארח 6100 ליציאת המכשיר 7100:
adb forward tcp:6100 tcp:7100
בדוגמה הבאה מגדירים העברה של יציאת המארח 6100 אל local:logd:
adb forward tcp:6100 local:logd
האפשרות הזו שימושית אם רוצים לבדוק מה נשלח לשקע מסוים במכשיר. כל הנתונים שהתקבלו ייכתבו לדיימון של יומני המערכת ויוצגו ביומנים של המכשיר.
העתקת קבצים אל מכשיר וממנו
משתמשים בפקודות pull
ו-push
כדי להעתיק קבצים למכשיר וממנו. בניגוד לפקודה install
, שמעתיקה רק קובץ APK למיקום ספציפי, הפקודות pull
ו-push
מאפשרות להעתיק ספריות וקבצים שרירותיים לכל מיקום במכשיר.
כדי להעתיק קובץ או ספרייה ואת ספריות המשנה שלהם מה המכשיר:
adb pull remote local
כדי להעתיק קובץ או ספרייה ואת ספריות המשנה שלהם אל המכשיר:
adb push local remote
מחליפים את local
ו-remote
בנתיב לקובץ או לתיקיית היעד במחשב הפיתוח (מקומי) ובמכשיר (מרחוק). לדוגמה:
adb push myfile.txt /sdcard/myfile.txt
עצירת שרת adb
במקרים מסוימים, יכול להיות שתצטרכו לסיים את תהליך השרת adb
ואז להפעיל אותו מחדש כדי לפתור את הבעיה. לדוגמה, המצב הזה יכול לקרות אם adb
לא מגיב לפקודה.
כדי להפסיק את השרת adb
, משתמשים בפקודה adb kill-server
.
לאחר מכן אפשר להפעיל מחדש את השרת באמצעות כל פקודת adb
אחרת.
הפעלת פקודות adb
אפשר להריץ פקודות adb
משורת הפקודה במכונה לפיתוח או מסקריפט באמצעות הפקודות הבאות:
adb [-d | -e | -s serial_number] command
אם פועל רק אמולטור אחד או שמחובר רק מכשיר אחד, הפקודה adb
נשלחת למכשיר הזה כברירת מחדל. אם פועלים כמה מכשירי אמולציה ו/או מחוברים כמה מכשירים, צריך להשתמש באפשרות -d
, -e
או -s
כדי לציין את מכשיר היעד שאליו צריך לשלוח את הפקודה.
אפשר לראות רשימה מפורטת של כל הפקודות הנתמכות של adb
באמצעות הפקודה הבאה:
adb --help
הפעלת פקודות מעטפת
אפשר להשתמש בפקודה shell
כדי להפעיל פקודות במכשיר דרך adb
או כדי להפעיל מעטפת אינטראקטיבית. כדי להפעיל פקודה אחת, משתמשים בפקודה shell
באופן הבא:
adb [-d |-e | -s serial_number] shell shell_command
כדי להפעיל מעטפת אינטראקטיבית במכשיר, משתמשים בפקודה shell
באופן הבא:
adb [-d | -e | -s serial_number] shell
כדי לצאת ממעטפת אינטראקטיבית, מקישים על Control+D
או מקלידים exit
.
ב-Android יש את רוב הכלים הרגילים של שורת הפקודה של Unix. כדי לקבל רשימה של הכלים הזמינים, משתמשים בפקודה הבאה:
adb shell ls /system/bin
אפשר לקבל עזרה לגבי רוב הפקודות באמצעות הארגומנט --help
.
רבות מפקודות המעטפת מסופקות על ידי toybox.
עזרה כללית שחלה על כל הפקודות של תיבת הצעצועים זמינה באמצעות toybox --help
.
ב-Android Platform Tools מגרסה 23 ואילך, הפקודה adb
מטפלת בארגומנטים באותו אופן שבו הפקודה ssh(1)
מטפלת בהם. השינוי הזה תיקן הרבה בעיות שקשורות להזרקת פקודות, ומאפשר להריץ בבטחה פקודות שמכילות מטא-תווים של מעטפת, כמו adb install Let\'sGo.apk
. בעקבות השינוי הזה, גם הפרשנות של כל פקודה שמכילה תווים מטא של מעטפת השתנתה.
לדוגמה, adb shell setprop key 'two words'
היא עכשיו שגיאה, כי המעטפת המקומית 'לוקחת' את המירכאות, והמכשיר רואה את הערך adb shell setprop key two words
. כדי שהפקודה תפעל, צריך להוסיף פעמיים מירכאות, פעם אחת למעטפת המקומית ופעם אחת למעטפת המרוחקת, כמו שצריך לעשות עם ssh(1)
. לדוגמה, adb shell setprop key "'two words'"
פועל כי המעטפת המקומית מקבלת את רמת הציטוט החיצונית, והמכשיר עדיין רואה את רמת הציטוט הפנימית: setprop key 'two words'
. אפשר גם להשתמש בהימלטות, אבל בדרך כלל קל יותר להוסיף ציטוט פעמיים.
כדאי לעיין גם בכלי שורת הפקודה Logcat, ששימושי למעקב אחרי יומן המערכת.
מנהל פעילות השיחות
בתוך מעטפת adb
, אפשר להשתמש בכלי של מנהל הפעילויות (am
) כדי להוציא פקודות ולבצע פעולות שונות במערכת, כמו הפעלת פעילות, עצירת תהליך בכוח, שידור כוונה, שינוי מאפייני המסך של המכשיר ועוד.
בתור מעטפת, התחביר של am
הוא:
am command
אפשר גם להפעיל פקודת ניהול פעילות ישירות מ-adb
בלי להיכנס למעטפת מרוחק. לדוגמה:
adb shell am start -a android.intent.action.VIEW
טבלה 1. הפקודות הזמינות לניהול הפעילויות
הוראה | תיאור |
---|---|
start [options] intent
|
הפעלת Activity שצוין על ידי intent . האפשרויות הן:
|
startservice [options] intent
|
מפעילים את ה-Service שצוין ב-intent . האפשרויות הן:
|
force-stop package
|
מפסיקים בכוח את כל מה שמשוייך ל-package .
|
kill [options] package
|
מבטלים את כל התהליכים שמשויכים ל-package . הפקודה הזו מחסלת רק תהליכים שאפשר להרוג בבטחה ולא ישפיעו על חוויית המשתמש.
האפשרויות הן:
|
kill-all
|
סגירת כל תהליכי הרקע. |
broadcast [options] intent
|
שולחים כוונה לשידור. האפשרויות הן:
|
instrument [options] component
|
מתחילים את המעקב באמצעות מכונה של Instrumentation .
בדרך כלל היעד component הוא הטופס test_package/runner_class . האפשרויות הן:
|
profile start process file
|
מפעילים את הכלי לניתוח ביצועים ב-process , כותבים את התוצאות ב-file .
|
profile stop process
|
עוצרים את הכלי למעקב אחר ביצועים ב-process .
|
dumpheap [options] process file
|
יצירת גרסת dump של process , כתיבת file . האפשרויות הן:
|
set-debug-app [options] package
|
מגדירים את האפליקציה package לניפוי באגים. האפשרויות הן:
|
clear-debug-app
|
מוחקים את החבילה שהוגדרה בעבר לניפוי באגים באמצעות set-debug-app .
|
monitor [options]
|
מתחילים לעקוב אחרי קריסות או אירועי ANR. האפשרויות הן:
|
screen-compat {on | off} package
|
לשלוט במצב תאימות המסך של package .
|
display-size [reset | widthxheight]
|
לשנות את גודל התצוגה במכשיר.
הפקודה הזו עוזרת לבדוק את האפליקציה במסכים בגדלים שונים, על ידי חיקוי של רזולוציית מסך קטנה במכשיר עם מסך גדול, ולהפך.
דוגמה: |
display-density dpi
|
שינוי של צפיפות התצוגה במכשיר.
הפקודה הזו עוזרת לבדוק את האפליקציה בצפיפות מסך שונה, על ידי חיקוי של סביבת מסך בצפיפות גבוהה באמצעות מסך בצפיפות נמוכה, ולהפך.
דוגמה: |
to-uri intent
|
הדפסת מפרט הכוונה הנתון כ-URI. |
to-intent-uri intent
|
הדפסת מפרט הכוונה הנתון כ-URI מסוג intent: . |
מפרט של ארגומנטים של כוונות
בפקודות של מנהל הפעילויות שכוללות את הארגומנט intent
, אפשר לציין את הכוונה באמצעות האפשרויות הבאות:
קריאה למנהל החבילות (pm
)
במעטפת adb
, אפשר להשתמש בפקודות של הכלי של מנהל החבילות (pm
) כדי לבצע פעולות ושאילתות על חבילות האפליקציות שמותקנות במכשיר.
בתור מעטפת, התחביר של pm
הוא:
pm command
אפשר גם להריץ פקודה של מנהל חבילות ישירות מ-adb
בלי להיכנס למעטפת מרוחק. לדוגמה:
adb shell pm uninstall com.example.MyApp
טבלה 2. הפקודות הזמינות של מנהל החבילות
הוראה | תיאור |
---|---|
list packages [options] filter
|
הדפסת כל החבילות, או רק את החבילות ששם החבילה שלהן מכיל את הטקסט ב-filter . עכשיו אפשר:
|
list permission-groups
|
הדפסה של כל קבוצות ההרשאות הידועות. |
list permissions [options] group
|
הדפסה של כל ההרשאות הידועות, או רק של אלה שב-group . עכשיו אפשר:
|
list instrumentation [options]
|
הצגת רשימה של כל חבילות הבדיקה. עכשיו אפשר:
|
list features
|
הדפסת כל התכונות של המערכת. |
list libraries
|
הדפסת כל הספריות הנתמכות במכשיר הנוכחי. |
list users
|
הדפסת כל המשתמשים במערכת. |
path package
|
מדפיסים את הנתיב לקובץ ה-APK של package הנתון.
|
install [options] path
|
התקנה של חבילה, שצוינה על ידי path , במערכת. עכשיו אפשר:
|
uninstall [options] package
|
הסרת חבילה מהמערכת. עכשיו אפשר:
|
clear package
|
מחיקה של כל הנתונים שמשויכים לחבילה. |
enable package_or_component
|
מפעילים את החבילה או הרכיב הנתונים (כתובים כ "package/class"). |
disable package_or_component
|
משביתים את החבילה או הרכיב הנתונים (כתובים כ "package/class"). |
disable-user [options] package_or_component
|
עכשיו אפשר:
|
grant package_name permission
|
מעניקים הרשאה לאפליקציה. במכשירים עם Android 6.0 (רמת API 23) ואילך, ההרשאה יכולה להיות כל הרשאה שהוגדרה במניפסט של האפליקציה. במכשירים עם Android 5.1 (רמת API 22) וגרסאות קודמות, צריכה להיות הרשאה אופציונלית שמוגדרת על ידי האפליקציה. |
revoke package_name permission
|
לבטל הרשאה מאפליקציה. במכשירים עם Android 6.0 (רמת API 23) ואילך, ההרשאה יכולה להיות כל הרשאה שהוגדרה במניפסט של האפליקציה. במכשירים עם Android 5.1 (רמת API 22) וגרסאות קודמות, צריכה להיות הרשאה אופציונלית שמוגדרת על ידי האפליקציה. |
set-install-location location
|
שינוי מיקום ברירת המחדל להתקנה. ערכי מיקום:
הערה: האפשרות הזו מיועדת רק לניפוי באגים. שימוש באפשרות הזו עלול לגרום לשיבושים באפליקציות ולהתנהגות לא רצויה אחרת. |
get-install-location
|
הפונקציה מחזירה את מיקום ההתקנה הנוכחי. ערכים שמוחזרים:
|
set-permission-enforced permission [true | false]
|
מציינים אם צריך לאכוף את ההרשאה הזו. |
trim-caches desired_free_space
|
חיתוך קבצים במטמון כדי להגיע לנפח האחסון הפנוי הנתון. |
create-user user_name
|
יוצרים משתמש חדש עם הערך של user_name , ומדפיסים את מזהה המשתמש החדש של המשתמש.
|
remove-user user_id
|
הסרת המשתמש עם user_id הנתון, מחיקת כל הנתונים שמשויכים למשתמש הזה
|
get-max-users
|
הדפסה של מספר המשתמשים המקסימלי שנתמך במכשיר. |
get-app-links [options] [package]
|
הדפסת מצב האימות של הדומיין עבור package הנתון, או עבור כל החבילות אם לא צוינה אף אחת. קודי המדינות מוגדרים כך:
האפשרויות הן:
|
reset-app-links [options] [package]
|
איפוס מצב האימות של הדומיין לחבילה הנתונה, או לכל החבילות אם לא צוינה אף אחת.
האפשרויות הן:
|
verify-app-links [--re-verify] [package]
|
שליחת בקשת אימות עבור package הנתון, או לכל החבילות אם לא צוין אף ערך. ההודעה נשלחת רק אם לא תועדה תשובה לחבילה בעבר.
|
set-app-links [--package package] state domains
|
הגדרה ידנית של מצב הדומיין לחבילה. כדי שהבדיקה תפעל, החבילה צריכה להצהיר על הדומיין כ-autoVerify. הפקודה הזו לא תדווח על כשל לגבי דומיינים שלא ניתן היה להחיל עליהם את ההגדרות.
|
set-app-links-user-selection --user user_id [--package package]
enabled domains
|
הגדרה ידנית של המצב של בחירת משתמש מארח לחבילה. כדי שזה יפעל, הדומיין צריך להוצהר בחבילה. הפקודה הזו לא תדווח על כשל לגבי דומיינים שלא ניתן היה להחיל עליהם את ההגדרות.
|
set-app-links-user-selection --user user_id [--package package]
enabled domains
|
הגדרה ידנית של המצב של בחירת משתמש מארח לחבילה. כדי שזה יפעל, הדומיין צריך להוצהר בחבילה. הפקודה הזו לא תדווח על כשל לגבי דומיינים שלא ניתן היה להחיל עליהם את ההגדרות.
|
set-app-links-allowed --user user_id [--package package] allowed
|
שינוי ההגדרה של טיפול בקישורים שאומתו באופן אוטומטי לחבילה.
|
get-app-link-owners --user user_id [--package package] domains
|
הדפסת הבעלים של דומיין ספציפי עבור משתמש נתון, בסדר של תעדוף נמוך עד גבוה.
|
קריאה למנהל מדיניות המכשיר (dpm
)
כדי לפתח ולבדוק את האפליקציות לניהול המכשירים, אפשר להשתמש בפקודות של הכלי לניהול מדיניות המכשיר (dpm
). אפשר להשתמש בכלי כדי לשלוט באפליקציית האדמין הפעילה או לשנות את נתוני הסטטוס של מדיניות במכשיר.
בתור מעטפת, התחביר של dpm
הוא:
dpm command
אפשר גם להפעיל פקודה של מנהל מדיניות המכשיר ישירות מ-adb
בלי להיכנס ל-shell מרחוק:
adb shell dpm command
טבלה 3 הפקודות הזמינות של מנהל מדיניות המכשיר
הוראה | תיאור |
---|---|
set-active-admin [options] component
|
הגדרת component כאדמין פעיל.
האפשרויות הן:
|
set-profile-owner [options] component
|
מגדירים את component כאדמין פעיל ואת החבילה שלו כבעלים של פרופיל של משתמש קיים.
האפשרויות הן:
|
set-device-owner [options] component
|
מגדירים את component כאדמין פעיל ואת החבילה שלו כבעלים של המכשיר.
האפשרויות הן:
|
remove-active-admin [options] component
|
להשבית אדמין פעיל. האפליקציה חייבת להצהיר על android:testOnly במניפסט. הפקודה הזו מסירה גם את הבעלים של המכשיר והפרופיל.
האפשרויות הן:
|
clear-freeze-period-record
|
מחיקת הרשומה במכשיר של תקופות ההקפאה שהוגדרו בעבר לעדכוני OTA של המערכת. האפשרות הזו שימושית כדי לעקוף את ההגבלות על תזמון במכשיר כשמפתחים אפליקציות שמנהלות תקופות הקפאה. ניהול עדכוני המערכת
התכונה נתמכת במכשירים עם Android מגרסה 9.0 (רמת API 28) ואילך. |
force-network-logs
|
איך מאלצים את המערכת להכין את יומני הרשת הקיימים לאחזור על ידי DPC. אם יש יומני חיבור או יומני DNS זמינים, ה-DPC מקבל את הקריאה החוזרת (callback) onNetworkLogsAvailable() . תיעוד הפעילות ברשת
יש הגבלה על קצב שליחת הפקודה הזו. התכונה נתמכת במכשירים עם Android מגרסה 9.0 (רמת API 28) ואילך. |
force-security-logs
|
לאלץ את המערכת להפוך את יומני האבטחה הקיימים לזמינים ל-DPC. אם יש יומנים זמינים, ה-DPC מקבל את הקריאה החוזרת onSecurityLogsAvailable() . תיעוד הפעילות במכשירים ארגוניים
יש הגבלה על קצב שליחת הפקודה הזו. התכונה נתמכת במכשירים עם Android מגרסה 9.0 (רמת API 28) ואילך. |
יצירת צילום מסך
הפקודה screencap
היא תוכנית מעטפת לצילום מסך של מסך המכשיר.
בתור מעטפת, התחביר של screencap
הוא:
screencap filename
כדי להשתמש ב-screencap
משורת הפקודה, מזינים את הפקודה הבאה:
adb shell screencap /sdcard/screen.png
דוגמה לסשן צילום מסך, שבו נעשה שימוש במסוף adb
כדי לצלם את צילום המסך ופקודת pull
כדי להוריד את הקובץ מהמכשיר:
$ adb shell shell@ $ screencap /sdcard/screen.png shell@ $ exit $ adb pull /sdcard/screen.png
הקלט סרטון
הפקודה screenrecord
היא תוכנית מעטפת לתיעוד המסך של מכשירים שפועלת בהם מערכת Android בגרסה 4.4 (רמת API 19) ואילך. הכלי מתעד את פעילות המסך בקובץ MPEG-4. אפשר להשתמש בקובץ הזה כדי ליצור סרטונים של קידום מכירות או הדרכה, או לצורך ניפוי באגים ובדיקות.
במעטפת, משתמשים בתחביר הבא:
screenrecord [options] filename
כדי להשתמש ב-screenrecord
משורת הפקודה, מזינים את הפקודה הבאה:
adb shell screenrecord /sdcard/demo.mp4
כדי להפסיק את הקלטת המסך, לוחצים על Control+C. אחרת, ההקלטה תיפסק אוטומטית אחרי שלוש דקות או אחרי מגבלת הזמן שהוגדרה על ידי --time-limit
.
כדי להתחיל להקליט את מסך המכשיר, מריצים את הפקודה screenrecord
כדי להקליט את הסרטון. לאחר מכן, מריצים את הפקודה pull
כדי להוריד את הסרטון מהמכשיר למחשב המארח. דוגמה לסשן הקלטה:
$ adb shell shell@ $ screenrecord --verbose /sdcard/demo.mp4 (press Control + C to stop) shell@ $ exit $ adb pull /sdcard/demo.mp4
הכלי screenrecord
יכול להקליט בכל רזולוציה וקצב ביטים נתמכים שתבקשו, תוך שמירה על יחס הגובה-רוחב של מסך המכשיר. הכלי מתעד כברירת מחדל ברזולוציה ובכיוון של המסך המקורי, באורך של עד שלוש דקות.
מגבלות של השירות screenrecord
:
- האודיו לא מוקלט עם קובץ הווידאו.
- אי אפשר לצלם סרטונים במכשירים עם Wear OS.
- יכול להיות שבחלק מהמכשירים לא תהיה אפשרות לצלם ברזולוציית המסך המקורית. אם נתקלתם בבעיות בהקלטת מסך, נסו להשתמש ברזולוציית מסך נמוכה יותר.
- אין תמיכה בסיבוב המסך במהלך ההקלטה. אם המסך מסתובב במהלך ההקלטה, חלק מהמסך לא יופיע בהקלטה.
טבלה 4. אפשרויות של screenrecord
אפשרויות | תיאור |
---|---|
--help
|
הצגת התחביר והאפשרויות של הפקודה |
--size widthxheight
|
מגדירים את גודל הסרטון: 1280x720 . ערך ברירת המחדל הוא רזולוציית התצוגה המקורית של המכשיר (אם יש תמיכה), או 1280x720 אם אין תמיכה. כדי לקבל את התוצאות הטובות ביותר, מומלץ להשתמש בגודל שנתמך במקודד Advanced Video Coding (AVC) של המכשיר. |
--bit-rate rate |
הגדרת קצב הביט של הסרטון, במגה-ביט לשנייה. ערך ברירת המחדל הוא 20Mbps.
אפשר להגדיל את קצב הביטים כדי לשפר את איכות הסרטון, אבל הפעולה הזו גורמת לקובצי סרטים גדולים יותר. בדוגמה הבאה מוגדר קצב הנתונים של ההקלטה ל-6Mbps:
screenrecord --bit-rate 6000000 /sdcard/demo.mp4 |
--time-limit time |
מגדירים את משך ההקלטה המקסימלי, בשניות. ערך ברירת המחדל והערך המקסימלי הוא 180 (3 דקות). |
--rotate |
מסובבים את הפלט ב-90 מעלות. התכונה הזו היא ניסיונית. |
--verbose |
הצגת פרטי היומן במסך שורת הפקודה. אם לא מגדירים את האפשרות הזו, הכלי לא יציג מידע כלשהו במהלך הפעלתו. |
קריאת פרופילי ART לאפליקציות
החל מגרסה 7.0 של Android (רמת API 24), סביבת זמן הריצה של Android (ART) אוספת פרופילי ביצוע של אפליקציות מותקנות, שמשמשים לאופטימיזציה של ביצועי האפליקציות. בודקים את הפרופילים שנאספו כדי להבין אילו שיטות מתבצעות בתדירות גבוהה ואילו כיתות נמצאות בשימוש במהלך הפעלת האפליקציה.
הערה: אפשר לאחזר את שם הקובץ של פרופיל הביצוע רק אם יש לכם הרשאת root למערכת הקבצים, למשל באמולטור.
כדי ליצור טקסט של פרטי הפרופיל, משתמשים בפקודה הבאה:
adb shell cmd package dump-profiles package
כדי לאחזר את הקובץ שנוצר, משתמשים ב-:
adb pull /data/misc/profman/package.prof.txt
איפוס מכשירים לבדיקה
אם אתם בודקים את האפליקציה במספר מכשירי בדיקה, כדאי לאפס את המכשיר בין הבדיקות. לדוגמה, כדי להסיר את נתוני המשתמשים ולאפס את סביבת הבדיקה. אפשר לבצע איפוס להגדרות המקוריות של מכשיר בדיקה שבו פועלת גרסת Android 10 (רמת API 29) ואילך באמצעות הפקודה testharness
adb
, כפי שמוצג:
adb shell cmd testharness enable
כשמשחזרים את המכשיר באמצעות testharness
, המכשיר מגבה באופן אוטומטי את מפתח ה-RSA שמאפשר ניפוי באגים דרך תחנת העבודה הנוכחית במיקום קבוע. כלומר, אחרי איפוס המכשיר, תחנת העבודה יכולה להמשיך לנפות באגים ולהנפיק פקודות adb
למכשיר בלי לרשום מפתח חדש באופן ידני.
בנוסף, כדי להקל על בדיקת האפליקציה ולהבטיח את האבטחה שלה, שימוש ב-testharness
לשחזור מכשיר משנה גם את הגדרות המכשיר הבאות:
- המכשיר מגדיר הגדרות מערכת מסוימות כדי שאשפי ההגדרה הראשונית של המכשיר לא יופיעו. כלומר, המכשיר עובר למצב שממנו אפשר להתקין, לנפות באגים ולבדוק את האפליקציה במהירות.
- הגדרות:
- השבתת מסך הנעילה.
- השבתת ההתראות על מקרי חירום.
- השבתת הסנכרון האוטומטי של חשבונות.
- השבתת העדכונים האוטומטיים של המערכת.
- אחר:
- השבתת אפליקציות אבטחה שמותקנות מראש.
אם האפליקציה צריכה לזהות את הגדרות ברירת המחדל של הפקודה testharness
ולהתאים את עצמה אליהן, צריך להשתמש בפקודה
ActivityManager.isRunningInUserTestHarness()
.
sqlite
sqlite3
מפעיל את תוכנית שורת הפקודה sqlite
לבדיקה של מסדי נתונים של SQLite.
הוא כולל פקודות כמו .dump
להדפסת התוכן של טבלה ו-.schema
להדפסת ההצהרה SQL CREATE
של טבלה קיימת.
אפשר גם להריץ פקודות SQLite משורת הפקודה, כפי שמוצג:
$ adb -s emulator-5554 shell $ sqlite3 /data/data/com.example.app/databases/rssitems.db SQLite version 3.3.12 Enter ".help" for instructions
הערה: אפשר לגשת למסד נתונים של SQLite רק אם יש לכם הרשאת root למערכת הקבצים, למשל במהלך הדמיה.
מידע נוסף זמין במסמכי התיעוד של שורת הפקודה sqlite3
.
קצות עורפי של adb USB
שרת adb יכול לקיים אינטראקציה עם מחסנית ה-USB דרך שני קצוות עורפיים. הוא יכול להשתמש בקצה העורפי המקורי של מערכת ההפעלה (Windows, Linux או macOS) או בקצה העורפי של libusb
.
תכונות מסוימות, כמו attach
, detach
וזיהוי מהירות USB, זמינות רק כשמשתמשים בקצה העורפי של libusb
.
אפשר לבחור קצה עורפי באמצעות משתנה הסביבה ADB_LIBUSB
.
אם לא מגדירים את הפרמטר, המערכת של adb תשתמש בקצה העורפי שמוגדר כברירת מחדל. התנהגות ברירת המחדל משתנה בהתאם למערכת ההפעלה. החל מ-ADB v34, הקצה העורפי liubusb
משמש כברירת מחדל בכל מערכות ההפעלה, מלבד Windows, שבה הקצה העורפי המקורי משמש כברירת מחדל. אם הערך של ADB_LIBUSB
מוגדר, הוא קובע אם נעשה שימוש בקצה העורפי המקורי או ב-libusb
. מידע נוסף על משתני הסביבה של adb זמין בדף המדריך של adb.
קצוות עורפי של mDNS ב-adb
ADB יכול להשתמש בפרוטוקול ה-DNS של ה-multicast כדי לחבר באופן אוטומטי את השרת ואת המכשירים. שרת ה-ADB מגיע עם שני קצוות עורפיים, Bonjour (mdnsResponder של Apple) ו-Openscreen.
כדי להפעיל את הקצה העורפי של Bonjour, צריך להפעיל דימון במכונה המארחת.
ב-macOS, הדימון המובנה של Apple תמיד פועל, אבל ב-Windows וב-Linux, המשתמש צריך לוודא שהדימון mdnsd
פועל.
אם הפקודה adb mdns check
מחזירה שגיאה, סביר להניח ש-ADB משתמש בקצה העורפי של Bonjour אבל אין דימון Bonjour שפועל.
לקצה העורפי של Openscreen לא נדרש דימון (daemon) שפועל במכונה. התמיכה בקצה העורפי של Openscreen ב-macOS מתחילה ב-ADB מגרסה 35. יש תמיכה ב-Windows וב-Linux החל מגרסה 34 של ADB.
כברירת מחדל, ADB משתמש בקצה העורפי של Bonjour. אפשר לשנות את ההתנהגות הזו באמצעות משתנה הסביבה ADB_MDNS_OPENSCREEN
(מוגדרת ל-1
או ל-0
). פרטים נוספים זמינים בדף המדריך של ADB.
adb Burst Mode (החל מ-ADB 36.0.0)
מצב התפרצות (Burst Mode) הוא תכונה ניסיונית שמאפשרת ל-ADB להמשיך לשלוח חבילות למכשיר גם לפני שהמכשיר הגיב לחבילה הקודמת. כך אפשר להגדיל משמעותית את התפוקה של ADB כשמעבירים קבצים גדולים, וגם לצמצם את זמן האחזור בזמן ניפוי הבאגים.
מצב התמונות הרציפה מושבת כברירת מחדל. כדי להפעיל את התכונה, מבצעים אחת מהפעולות הבאות:
- מגדירים את משתנה הסביבה
ADB_DELAYED_ACK
לערך1
. - ב-Android Studio, עוברים להגדרות של מנתח הבאגים בקטע File (או Android Studio ב-macOS) > Settings > Build, Execution, Deployment > Debugger ומגדירים את ADB Server Burst Mode ל-Enabled.