AndroidDebugBridge
public
class
AndroidDebugBridge
extends Object
| java.lang.Object | |
| ↳ | com.android.tradefed.device.server.AndroidDebugBridge |
חיבור לממשק הגישור של Android (adb) בצד המארח
זהו המקום המרכזי לתקשורת עם מכשירים, אמולטורים או אפליקציות שפועלות בהם.
צריך לקרוא ל-init() לפני שמבצעים פעולה כלשהי.
סיכום
כיתות מוטמעות | |
|---|---|
interface |
AndroidDebugBridge.IDebugBridgeChangeListener
בכיתות שבהן מיושם הממשק הזה יש method שמתמודד עם שינויים ב- |
interface |
AndroidDebugBridge.IDeviceChangeListener
בכיתות שמטמיעות את הממשק הזה יש שיטות שמתייחסות ל |
ערכים קבועים | |
|---|---|
int |
DEFAULT_START_ADB_TIMEOUT_MILLIS
זמן קצוב לתפוגה שמוגדר כברירת מחדל כשמפעילים את שרת ה-ADB |
שדות | |
|---|---|
public
static
final
AdbVersion |
MIN_ADB_VERSION
הגרסה המינימלית והמקסימלית של adb שנתמכת. |
methods ציבוריים | |
|---|---|
static
void
|
addDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)
הפונקציה מוסיפה את המאזין לאוסף המאזינים שיקבלו התראה כשמתחבר |
static
void
|
addDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)
הפונקציה מוסיפה את המאזין לאוסף המאזינים שיקבלו הודעה כש- |
static
AndroidDebugBridge
|
createBridge(String osLocation, boolean forceNewBridge, long timeout, TimeUnit unit)
יוצר גשר חדש לניפוי באגים מהמיקום של כלי שורת הפקודה. |
static
AndroidDebugBridge
|
createBridge(long timeout, TimeUnit unit)
יוצר |
static
AndroidDebugBridge
|
createBridge(String osLocation, boolean forceNewBridge)
השיטה הזו הוצאה משימוש.
אם ADB לא מגיב, יכול להיות שהשיטה הזו תיתקע. במקומה, צריך להשתמש ב-method |
static
AndroidDebugBridge
|
createBridge()
השיטה הזו הוצאה משימוש.
אם ADB לא מגיב, יכול להיות שהשיטה הזו תיתקע. במקומה, צריך להשתמש ב-method |
static
void
|
deviceChanged(IDevice device, int changeMask)
הודעה למאזין על שינוי ב- |
static
void
|
deviceConnected(IDevice device)
התראה למאזין על |
static
void
|
deviceDisconnected(IDevice device)
הודעה למאזין על ניתוק |
static
void
|
disableFakeAdbServerMode()
|
static
void
|
disconnectBridge()
השיטה הזו הוצאה משימוש.
אם ADB לא מגיב, יכול להיות שהשיטה הזו תיתקע. במקומה, צריך להשתמש ב-method |
static
boolean
|
disconnectBridge(long timeout, TimeUnit unit)
מנתק את גשר הניפוי הנוכחי ומשמיד את האובייקט. |
static
void
|
enableFakeAdbServerMode(int port)
|
static
ListenableFuture<AdbVersion>
|
getAdbVersion(File adb)
|
static
AndroidDebugBridge
|
getBridge()
הפונקציה מחזירה את גשר הניפוי באגים הנוכחי. |
int
|
getConnectionAttemptCount()
הפונקציה מחזירה את מספר הפעמים שאובייקט |
static
int
|
getDebugBridgeChangeListenerCount()
|
static
int
|
getDeviceChangeListenerCount()
|
IDevice[]
|
getDevices()
החזרת המכשירים. |
ListenableFuture<List<AdbDevice>>
|
getRawDeviceList()
הפונקציה מחזירה את קבוצת המכשירים שדווחו על ידי שורת הפקודה adb. |
int
|
getRestartAttemptCount()
הפונקציה מחזירה את מספר הפעמים שאובייקט |
static
InetSocketAddress
|
getSocketAddress()
השיטה הזו הוצאה משימוש.
השיטה הזו מחזירה כתובת שרת של לולאה חוזרת, שיכול להיות שהיא לא תואמת לכתובת שבה משתמש שרת ה-ADB. כלומר, יכול להיות שה-JVM יהיה במצב IPv4, בזמן ששרת ה-ADB מתארח בכתובת לולאה חוזרת של IPv6. עדיף להשתמש ב- |
static
ListenableFuture<String>
|
getVirtualDeviceId(ListeningExecutorService service, File adb, IDevice device)
|
boolean
|
hasInitialDeviceList()
הפונקציה מחזירה ערך בוליאני שמציין אם הגשר קיבל את הרשימה הראשונית מ-adb אחרי שהוא נוצר. |
static
void
|
init(AdbInitOptions options)
בדומה ל- |
static
void
|
init(boolean useLibusb, Map<String, String> env)
בדומה ל- |
static
void
|
init()
מאתחלת את הספרייה |
static
void
|
initIfNeeded()
הספרייה מאותחלת רק אם יש צורך בכך. השימוש בה הוצא משימוש במקרים שאינם בדיקות. |
boolean
|
isConnected()
הפונקציה מחזירה אם האובייקט |
static
boolean
|
isUserManagedAdbMode()
|
static
SocketChannel
|
openConnection()
המערכת מנסה להתחבר לשרת המקומי של Android Debug Bridge. |
static
void
|
removeDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)
מסירה את המאזין מהאוסף של המאזינים שיקבלו הודעה כשמתחיל |
static
void
|
removeDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)
הפעולה מסירה את המאזין מהאוסף של המאזינים שיקבלו הודעה כש- |
boolean
|
restart(long timeout, TimeUnit unit)
מפעיל מחדש את adb, אבל לא את השירותים שסביבו. |
boolean
|
restart()
השיטה הזו הוצאה משימוש.
אם ADB לא מגיב, יכול להיות שהשיטה הזו תיתקע. במקומה, צריך להשתמש ב-method |
boolean
|
startAdb(long timeout, TimeUnit unit)
מפעיל את השרת בצד המארח של adb. |
static
void
|
terminate()
הפונקציה מסיימת את השימוש בספריית ddm. |
ערכים קבועים
DEFAULT_START_ADB_TIMEOUT_MILLIS
public static final int DEFAULT_START_ADB_TIMEOUT_MILLIS
זמן קצוב לתפוגה שמוגדר כברירת מחדל כשמפעילים את שרת ה-ADB
ערך קבוע: 20000 (0x00004e20)
שדות
MIN_ADB_VERSION
public static final AdbVersion MIN_ADB_VERSION
הגרסה המינימלית והמקסימלית של adb שנתמכת. הערך הזה תואם ל-ADB_SERVER_VERSION שנמצא ב- //device/tools/adb/adb.h
methods ציבוריים
addDebugBridgeChangeListener
public static void addDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)
הפונקציה מוסיפה את המאזין לאוסף המאזינים שיקבלו התראה כשמתחבר AndroidDebugBridge חדש, על ידי שליחת אחת מההודעות שמוגדרות בממשק IDebugBridgeChangeListener.
| פרמטרים | |
|---|---|
listener |
AndroidDebugBridge.IDebugBridgeChangeListener: המאזין שאליו צריך לשלוח את ההתראה. |
addDeviceChangeListener
public static void addDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)
הפונקציה מוסיפה את המאזין לאוסף המאזינים שיקבלו הודעה כש-IDevice
מחובר, מנותק או כשהמאפיינים שלו או רשימת ERROR(/ClientImpl) שלו משתנים, על ידי שליחת אחת מההודעות שמוגדרות בממשק IDeviceChangeListener.
| פרמטרים | |
|---|---|
listener |
AndroidDebugBridge.IDeviceChangeListener: המאזין שאליו צריך לשלוח את ההתראה. |
createBridge
public static AndroidDebugBridge createBridge (String osLocation, boolean forceNewBridge, long timeout, TimeUnit unit)
יוצר גשר חדש לניפוי באגים מהמיקום של כלי שורת הפקודה.
כל שרת קיים ינותק, אלא אם המיקום זהה והערך של
forceNewBridge הוא false.
| פרמטרים | |
|---|---|
osLocation |
String: המיקום של כלי שורת הפקודה adb |
forceNewBridge |
boolean: יצירת גשר חדש גם אם כבר קיים גשר עם אותו מיקום. |
timeout |
long: הזמן המקסימלי להמתנה |
unit |
TimeUnit: יחידת הזמן של הארגומנט timeout |
| החזרות | |
|---|---|
AndroidDebugBridge |
גשר מחובר, או null אם היו שגיאות במהלך היצירה או החיבור לגשר |
createBridge
public static AndroidDebugBridge createBridge (long timeout, TimeUnit unit)
יוצר AndroidDebugBridge שלא מקושר לקובץ הפעלה מסוים.
הגשר הזה יצפה ש-adb יפעל. לא תהיה לו אפשרות להפעיל, להפסיק או להפעיל מחדש את adb.
אם כבר התחילה שיחה מגשר, היא מוחזרת ישירות ללא שינויים (בדומה לקריאה ל-getBridge()).
| פרמטרים | |
|---|---|
timeout |
long |
unit |
TimeUnit |
| החזרות | |
|---|---|
AndroidDebugBridge |
גשר מחובר, או null אם היו שגיאות במהלך היצירה או החיבור לגשר |
createBridge
public static AndroidDebugBridge createBridge (String osLocation, boolean forceNewBridge)
השיטה הזו הוצאה משימוש.
יכול להיות שהשיטה הזו תיתקע אם ADB לא מגיב. במקום זאת, אתם צריכים להשתמש ב-createBridge(String,boolean,long,TimeUnit).
יוצר גשר חדש לניפוי באגים מהמיקום של כלי שורת הפקודה.
כל שרת קיים ינותק, אלא אם המיקום זהה והערך של
forceNewBridge הוא false.
| פרמטרים | |
|---|---|
osLocation |
String: המיקום של כלי שורת הפקודה adb |
forceNewBridge |
boolean: יצירה כפויה של גשר חדש, גם אם כבר קיים גשר עם אותו מיקום. |
| החזרות | |
|---|---|
AndroidDebugBridge |
גשר מחובר, או null אם היו שגיאות במהלך היצירה או החיבור לגשר |
createBridge
public static AndroidDebugBridge createBridge ()
השיטה הזו הוצאה משימוש.
יכול להיות שהשיטה הזו תיתקע אם ADB לא מגיב. במקום זאת, אתם צריכים להשתמש ב-createBridge(long,TimeUnit).
יוצר AndroidDebugBridge שלא מקושר לקובץ הפעלה מסוים.
הגשר הזה יצפה ש-adb יפעל. לא תהיה לו אפשרות להפעיל, להפסיק או להפעיל מחדש את adb.
אם כבר התחילה שיחה מגשר, היא מוחזרת ישירות ללא שינויים (בדומה לקריאה ל-getBridge()).
| החזרות | |
|---|---|
AndroidDebugBridge |
גשר מחובר, או null אם היו שגיאות במהלך היצירה או החיבור לגשר |
deviceChanged
public static void deviceChanged (IDevice device, int changeMask)
הודעה למאזין על שינוי ב-IDevice.
ההודעה על המאזינים מתבצעת בבלוק מסונכרן. חשוב להבין שהמאזינים עשויים לגשת לשיטות שונות של IDevice וגם ל-getDevices() שמשתמשת בנעילות פנימיות.
| פרמטרים | |
|---|---|
device |
IDevice: IDevice ששונה. |
changeMask |
int |
deviceConnected
public static void deviceConnected (IDevice device)
התראה למאזין על IDevice חדש.
ההודעה על המאזינים מתבצעת בבלוק מסונכרן. חשוב להבין שהמאזינים עשויים לגשת לשיטות שונות של IDevice וגם ל-getDevices() שמשתמשת בנעילות פנימיות.
| פרמטרים | |
|---|---|
device |
IDevice: ה-IDevice החדש. |
deviceDisconnected
public static void deviceDisconnected (IDevice device)
הודעה למאזין על ניתוק IDevice.
ההודעה על המאזינים מתבצעת בבלוק מסונכרן. חשוב להבין שהמאזינים עשויים לגשת לשיטות שונות של IDevice וגם ל-getDevices() שמשתמשת בנעילות פנימיות.
| פרמטרים | |
|---|---|
device |
IDevice: IDevice המנותק. |
disableFakeAdbServerMode
public static void disableFakeAdbServerMode ()
disconnectBridge
public static void disconnectBridge ()
השיטה הזו הוצאה משימוש.
יכול להיות שהשיטה הזו תיתקע אם ADB לא מגיב. במקום זאת, אתם צריכים להשתמש ב-disconnectBridge(long,TimeUnit).
מנתק את גשר הניפוי הנוכחי ומשמיד את האובייקט. יהיה צורך ליצור אובייקט חדש באמצעות createBridge(String,boolean).
הפעולה הזו תפסיק גם את שרת המארח הנוכחי של adb.
disconnectBridge
public static boolean disconnectBridge (long timeout,
TimeUnit unit)מנתק את גשר הניפוי הנוכחי ומשמיד את האובייקט. יהיה צורך ליצור אובייקט חדש באמצעות createBridge(String,boolean).
הפעולה הזו תפסיק גם את שרת המארח הנוכחי של adb.
| פרמטרים | |
|---|---|
timeout |
long |
unit |
TimeUnit |
| החזרות | |
|---|---|
boolean |
true אם השיטה מצליחה לפני שהטיימאוט מסתיים. |
enableFakeAdbServerMode
public static void enableFakeAdbServerMode (int port)
| פרמטרים | |
|---|---|
port |
int |
getAdbVersion
public static ListenableFuture<AdbVersion> getAdbVersion (File adb)
| פרמטרים | |
|---|---|
adb |
File |
| החזרות | |
|---|---|
ListenableFuture<AdbVersion> |
|
getBridge
public static AndroidDebugBridge getBridge ()
הפונקציה מחזירה את גשר הניפוי באגים הנוכחי. יכול להיות null אם לא נוצרו אף אחד.
| החזרות | |
|---|---|
AndroidDebugBridge |
|
getConnectionAttemptCount
public int getConnectionAttemptCount ()
הפונקציה מחזירה את מספר הפעמים שאובייקט AndroidDebugBridge ניסה להתחבר לשירות adb.
| החזרות | |
|---|---|
int |
|
getDebugBridgeChangeListenerCount
public static int getDebugBridgeChangeListenerCount ()
| החזרות | |
|---|---|
int |
|
getDeviceChangeListenerCount
public static int getDeviceChangeListenerCount ()
| החזרות | |
|---|---|
int |
|
getRawDeviceList
public ListenableFuture<List<AdbDevice>> getRawDeviceList ()
הפונקציה מחזירה את קבוצת המכשירים שדווחו על ידי שורת הפקודה adb. הכלי הזה מיועד בעיקר ל-Connection Assistant או לכלים אחרים לאבחון שצריכים לאמת את המצב של רשימת getDevices() דרך ערוץ אחר. קוד שצריך רק לגשת לרשימת המכשירים צריך לקרוא ל-getDevices() במקום זאת.
| החזרות | |
|---|---|
ListenableFuture<List<AdbDevice>> |
|
getRestartAttemptCount
public int getRestartAttemptCount ()
הפונקציה מחזירה את מספר הפעמים שאובייקט AndroidDebugBridge ניסה להפעיל מחדש את שד ה-adb.
| החזרות | |
|---|---|
int |
|
getSocketAddress
public static InetSocketAddress getSocketAddress ()
השיטה הזו הוצאה משימוש.
השיטה הזו מחזירה כתובת שרת של לולאה חוזרת שאולי לא תואמת לכתובת שבה נעשה שימוש
בשרת ADB. כלומר, יכול להיות ש-JVM יהיה במצב IPv4, בזמן ששרת ADB מתארח בכתובת
לולאה חוזרת של IPv6. עדיף להשתמש ב-openConnection() כשפותחים חיבור לשרת ADB.
מחזירה את כתובת הסוקט של שרת ה-ADB במארח.
השיטה הזו תנסה להחזיר כתובת socket שידוע שהיא פועלת, על ידי פתיחת ערוץ socket לשרת ADB. המערכת תנסה להשתמש בכתובת לולאה חוזרת של IPv4 וגם של IPv6. במקרה שבו אף אחד מהם לא הצליח להתחבר, השיטה הזו תחזור לכתובת הלולאה החוזרת המועדפת על ידי JVM. הלוגיקה הזו של חזרה למצב הקודם נדרשת כדי למנוע שבירה של ה-API.
אם מופעל מצב שרת ADB מזויף, השיטה הזו תעבור אוטומטית לגיבוי להטמעה מדור קודם בלי לנסות להתחבר ל-ADB.
| החזרות | |
|---|---|
InetSocketAddress |
|
getVirtualDeviceId
public static ListenableFuture<String> getVirtualDeviceId (ListeningExecutorService service,
File adb,
IDevice device)| פרמטרים | |
|---|---|
service |
ListeningExecutorService |
adb |
File |
device |
IDevice |
| החזרות | |
|---|---|
ListenableFuture<String> |
|
hasInitialDeviceList
public boolean hasInitialDeviceList ()
הפונקציה מחזירה ערך בוליאני שמציין אם הגשר קיבל את הרשימה הראשונית מ-adb אחרי שהוא נוצר.
בדרך כלל, קריאה ל-getDevices() מיד אחרי createBridge(String,boolean) תניב רשימה ריקה. הסיבה לכך היא מנגנון התקשורת האסינכרוני הפנימי עם adb, שלא מבטיח שהרשימה IDevice נוצרה לפני הקריאה אל getDevices().
הדרך המומלצת לקבל את רשימת האובייקטים IDevice היא ליצור אובייקט IDeviceChangeListener.
| החזרות | |
|---|---|
boolean |
|
init
public static void init (AdbInitOptions options)
בדומה ל-init(), עם אפשרות להעביר קבוצה מותאמת אישית של משתני סביבה.
| פרמטרים | |
|---|---|
options |
AdbInitOptions |
init
public static void init (boolean useLibusb,
Map<String, String> env)בדומה ל-init(), עם אפשרות להפעיל את libusb ולהעביר קבוצה מותאמת אישית של env.
משתנים.
| פרמטרים | |
|---|---|
useLibusb |
boolean |
env |
Map |
init
public static void init ()
מאתחלת את הספרייה ddm.
צריך להפעיל את הפונקציה הזו פעם אחת לפני כל קריאה ל-createBridge(String,boolean).
צריך גם לאתחל את ההעדפות של ddmlib עם ערכי ברירת המחדל ששונו.
כשיוצאים מהאפליקציה, צריך להפעיל את הפונקציה terminate().
initIfNeeded
public static void initIfNeeded ()
הספרייה מאותחלת רק אם יש צורך בכך. השימוש בה הוצא משימוש במקרים שאינם בדיקות.
מידע נוסף:
isConnected
public boolean isConnected ()
הפונקציה מחזירה את הערך true אם האובייקט AndroidDebugBridge עדיין מחובר לדמון adb, ואת הערך false אם לא.
| החזרות | |
|---|---|
boolean |
|
isUserManagedAdbMode
public static boolean isUserManagedAdbMode ()
| החזרות | |
|---|---|
boolean |
אם פועלים במצב ADB מנוהל על ידי המשתמש, שבו ddmlib לא ינהל את שרת ה-ADB ולא אמור לנהל אותו. |
openConnection
public static SocketChannel openConnection ()
המערכת מנסה להתחבר לשרת המקומי של Android Debug Bridge.
| החזרות | |
|---|---|
SocketChannel |
שקע מחובר אם הפעולה הצליחה |
| הקפצת הודעות שגיאה (throw) | |
|---|---|
IOException |
אם מתרחשות שגיאות כשפותחים את החיבור |
removeDebugBridgeChangeListener
public static void removeDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)
מסירה את המאזין מהאוסף של המאזינים שיקבלו הודעה כשמתחיל AndroidDebugBridge חדש.
| פרמטרים | |
|---|---|
listener |
AndroidDebugBridge.IDebugBridgeChangeListener: המאזין שלא אמור לקבל יותר התראות. |
removeDeviceChangeListener
public static void removeDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)
הפעולה מסירה את המאזין מהאוסף של המאזינים שיקבלו הודעה כש-IDevice מחובר, מנותק או כשהמאפיינים שלו או רשימת ERROR(/ClientImpl) שלו משתנים.
| פרמטרים | |
|---|---|
listener |
AndroidDebugBridge.IDeviceChangeListener: המאזין שלא אמור לקבל יותר התראות. |
הפעלה מחדש
public boolean restart (long timeout,
TimeUnit unit)מפעיל מחדש את adb, אבל לא את השירותים שסביבו.
| פרמטרים | |
|---|---|
timeout |
long |
unit |
TimeUnit |
| החזרות | |
|---|---|
boolean |
true אם הפעולה הצליחה. |
הפעלה מחדש
public boolean restart ()
השיטה הזו הוצאה משימוש.
יכול להיות שהשיטה הזו תיתקע אם ADB לא מגיב. במקום זאת, אתם צריכים להשתמש ב-restart(long,TimeUnit).
מפעיל מחדש את adb, אבל לא את השירותים שסביבו.
| החזרות | |
|---|---|
boolean |
true אם הפעולה הצליחה. |
startAdb
public boolean startAdb (long timeout,
TimeUnit unit)מפעיל את השרת בצד המארח של adb. אין להשתמש בשיטה הזו כשמשתמשים בשרת ADB בניהול משתמשים, כי מחזור החיים של השרת צריך להיות בניהול המשתמש ולא בניהול ddmlib.
| פרמטרים | |
|---|---|
timeout |
long |
unit |
TimeUnit |
| החזרות | |
|---|---|
boolean |
true אם הפעולה הצליחה |
סגירת חשבון
public static void terminate ()
הפונקציה מסיימת את השימוש בספריית ddm. צריך להפעיל את הפונקציה הזו כשמפסיקים את האפליקציה.