AndroidDebugBridge

public class AndroidDebugBridge
extends Object

java.lang.Object
   ↳ com.android.tradefed.device.server.AndroidDebugBridge


اتصال بأداة Android Debug Bridge (adb) على جهاز المضيف

وهي النقطة المركزية للتواصل مع أي أجهزة أو محاكيات أو تطبيقات تعمل عليها.

يجب استدعاء init() قبل تنفيذ أي إجراء.

ملخّص

الصفوف المتداخلة

interface AndroidDebugBridge.IDebugBridgeChangeListener

توفّر الفئات التي تنفّذ هذه الواجهة طريقة للتعامل مع تغييرات AndroidDebugBridge (بما في ذلك عمليات إعادة التشغيل). 

interface AndroidDebugBridge.IDeviceChangeListener

توفّر الفئات التي تنفّذ هذه الواجهة طرقًا للتعامل مع IDevice الإضافة والحذف والتغييرات. 

الثوابت

int DEFAULT_START_ADB_TIMEOUT_MILLIS

مهلة الإيقاف التلقائي المستخدَمة عند بدء تشغيل خادم ADB

الحقول

public static final AdbVersion MIN_ADB_VERSION

الحد الأدنى والأقصى لإصدار adb المتوافق

الإجراءات العامة

static void addDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)

تضيف هذه الطريقة المستمع إلى مجموعة المستمعين الذين سيتم إعلامهم عند ربط AndroidDebugBridge جديد، وذلك عن طريق إرسال إحدى الرسائل المحدّدة في واجهة IDebugBridgeChangeListener.

static void addDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)

تضيف هذه الطريقة المستمع إلى مجموعة المستمعين الذين سيتم إشعارهم عند ربط IDevice أو فصله أو عند تغيير خصائصه أو قائمة ERROR(/ClientImpl) الخاصة به، وذلك عن طريق إرسال إحدى الرسائل المحدّدة في واجهة IDeviceChangeListener إليه.

static AndroidDebugBridge createBridge(String osLocation, boolean forceNewBridge, long timeout, TimeUnit unit)

تنشئ هذه السمة جسر تصحيح أخطاء جديدًا من موقع أداة سطر الأوامر.

static AndroidDebugBridge createBridge(long timeout, TimeUnit unit)

تنشئ هذه السمة AndroidDebugBridge غير مرتبطة بأي ملف تنفيذي معيّن.

static AndroidDebugBridge createBridge(String osLocation, boolean forceNewBridge)

تم إيقاف هذه الطريقة نهائيًا. قد تتوقف هذه الطريقة إذا لم يستجب ADB. يمكن استخدام createBridge(String,boolean,long,TimeUnit) كبديل.

static AndroidDebugBridge createBridge()

تم إيقاف هذه الطريقة نهائيًا. قد تتوقف هذه الطريقة إذا لم يستجب ADB. يمكن استخدام createBridge(long,TimeUnit) كبديل.

static void deviceChanged(IDevice device, int changeMask)

إشعار المستمع بشأن IDevice معدَّل

static void deviceConnected(IDevice device)

إشعار المستمع بشأن IDevice جديد

static void deviceDisconnected(IDevice device)

إشعار المستمع بحدوث انقطاع في IDevice

static void disableFakeAdbServerMode()
static void disconnectBridge()

تم إيقاف هذه الطريقة نهائيًا. قد تتوقف هذه الطريقة إذا لم يستجب ADB. يمكن استخدام disconnectBridge(long,TimeUnit) كبديل.

static boolean disconnectBridge(long timeout, TimeUnit unit)

يفصل هذا الأمر جسر تصحيح الأخطاء الحالي ويزيل العنصر.

static void enableFakeAdbServerMode(int port)
static ListenableFuture<AdbVersion> getAdbVersion(File adb)
static AndroidDebugBridge getBridge()

تعرض هذه السمة جسر تصحيح الأخطاء الحالي.

int getConnectionAttemptCount()

تعرِض هذه السمة عدد المرات التي حاول فيها عنصر AndroidDebugBridge الاتصال ببرنامج adb الخفي.

static int getDebugBridgeChangeListenerCount()
static int getDeviceChangeListenerCount()
IDevice[] getDevices()

تعرض هذه الطريقة الأجهزة.

ListenableFuture<List<AdbDevice>> getRawDeviceList()

تعرض هذه الطريقة مجموعة الأجهزة التي تم الإبلاغ عنها من خلال سطر الأوامر adb.

int getRestartAttemptCount()

تعرِض هذه السمة عدد المرات التي حاول فيها العنصر AndroidDebugBridge إعادة تشغيل برنامج adb الخفي.

static InetSocketAddress getSocketAddress()

تم إيقاف هذه الطريقة نهائيًا. تعرض هذه الطريقة عنوان خادم إعادة التوجيه الحلقي الذي قد لا يتطابق مع العنوان الذي يستخدمه خادم ADB، أي أنّ JVM قد يكون في وضع IPv4 بينما يتم استضافة خادم ADB على عنوان إعادة التوجيه الحلقي IPv6. يُفضَّل استخدام openConnection() عند فتح اتصال بخدمة تصحيح أخطاء Android.

static ListenableFuture<String> getVirtualDeviceId(ListeningExecutorService service, File adb, IDevice device)
boolean hasInitialDeviceList()

تعرض هذه السمة ما إذا كانت مجموعة الإعدادات قد حصلت على القائمة الأولية من adb بعد إنشائها.

static void init(AdbInitOptions options)

مشابه لـ init()، مع إمكانية تمرير مجموعة مخصّصة من متغيرات البيئة

static void init(boolean useLibusb, Map<String, String> env)

مشابهة لـ init()، مع إمكانية تفعيل libusb وتمرير مجموعة مخصّصة من env.

static void init()

تهيئة مكتبة ddm

static void initIfNeeded()

تمت تهيئة المكتبة فقط عند الحاجة إليها، وتم إيقافها نهائيًا للاستخدامات غير الاختبارية.

boolean isConnected()

تعرض هذه السمة ما إذا كان العنصر AndroidDebugBridge لا يزال مرتبطًا بخادم adb.

static boolean isUserManagedAdbMode()
static SocketChannel openConnection()

محاولات الاتصال بخادم "جسر تصحيح أخطاء Android" المحلي

static void removeDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)

تزيل هذه الطريقة المستمع من مجموعة المستمعين الذين سيتم إعلامهم عند بدء AndroidDebugBridge جديد.

static void removeDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)

يزيل المستمع من مجموعة المستمعين الذين سيتم إشعارهم عند توصيل IDevice أو فصله أو عند تغيير خصائصه أو قائمة ERROR(/ClientImpl) الخاصة به.

boolean restart(long timeout, TimeUnit unit)

يعيد تشغيل adb، ولكن ليس الخدمات المرتبطة به.

boolean restart()

تم إيقاف هذه الطريقة نهائيًا. قد تتوقف هذه الطريقة إذا لم يستجب ADB. يمكن استخدام restart(long,TimeUnit) كبديل.

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

الإجراءات العامة

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 على "خطأ".

المعلَمات
osLocation String: الموقع الجغرافي لأداة سطر الأوامر adb

forceNewBridge boolean: لفرض إنشاء جسر جديد حتى إذا كان هناك جسر آخر بالموقع الجغرافي نفسه.

timeout long: الحدّ الأقصى لمدة الانتظار

unit TimeUnit: وحدة الوقت للوسيطة timeout

المرتجعات
AndroidDebugBridge جهاز ربط متصل، أو قيمة فارغة إذا حدثت أخطاء أثناء إنشاء جهاز الربط أو الاتصال به

createBridge

public static AndroidDebugBridge createBridge (long timeout, 
                TimeUnit unit)

تنشئ هذه السمة AndroidDebugBridge غير مرتبطة بأي ملف تنفيذي معيّن.

سيتوقّع هذا الجسر أن يكون adb قيد التشغيل. لن يتمكّن من بدء/إيقاف/إعادة تشغيل adb.

إذا سبق أن تم بدء عملية الربط، سيتم عرضها مباشرةً بدون أي تغييرات (كما هو الحال عند استدعاء getBridge()).

المعلَمات
timeout long

unit TimeUnit

المرتجعات
AndroidDebugBridge جهاز ربط متصل، أو قيمة فارغة إذا حدثت أخطاء أثناء إنشاء جهاز الربط أو الاتصال به

createBridge

public static AndroidDebugBridge createBridge (String osLocation, 
                boolean forceNewBridge)

تم إيقاف هذا الإجراء نهائيًا.
قد يتوقف هذا الإجراء إذا لم يستجب ADB. يمكنك استخدام createBridge(String,boolean,long,TimeUnit) كبديل.

تنشئ هذه السمة جسر تصحيح أخطاء جديدًا من موقع أداة سطر الأوامر.

سيتم قطع اتصال أي خادم حالي، ما لم يكن الموقع الجغرافي هو نفسه وتم ضبط forceNewBridge على "خطأ".

المعلَمات
osLocation String: الموقع الجغرافي لأداة سطر الأوامر adb

forceNewBridge boolean: لفرض إنشاء جسر جديد حتى إذا كان هناك جسر آخر بالموقع الجغرافي نفسه.

المرتجعات
AndroidDebugBridge جهاز ربط متصل، أو قيمة فارغة إذا حدثت أخطاء أثناء إنشاء جهاز الربط أو الاتصال به

createBridge

public static AndroidDebugBridge createBridge ()

تم إيقاف هذا الإجراء نهائيًا.
قد يتوقف هذا الإجراء إذا لم يستجب ADB. يمكنك استخدام createBridge(long,TimeUnit) كبديل.

تنشئ هذه السمة AndroidDebugBridge غير مرتبط بأي ملف تنفيذي معيّن.

سيتوقّع هذا الجسر أن يكون adb قيد التشغيل. لن يتمكّن من بدء/إيقاف/إعادة تشغيل adb.

إذا تم بدء عملية الربط، يتم عرضها مباشرةً بدون أي تغييرات (كما هو الحال عند استدعاء getBridge()).

المرتجعات
AndroidDebugBridge جهاز ربط متصل، أو قيمة فارغة إذا حدثت أخطاء أثناء إنشاء جهاز الربط أو الاتصال به

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

getDevices

public IDevice[] getDevices ()

تعرض هذه الطريقة الأجهزة.

المرتجعات
IDevice[]

يُرجى الاطّلاع أيضًا على:

getRawDeviceList

public ListenableFuture<List<AdbDevice>> getRawDeviceList ()

تعرض هذه الطريقة مجموعة الأجهزة التي تم الإبلاغ عنها من خلال سطر الأوامر adb. وهي مخصّصة بشكل أساسي لأداة "مساعد الربط" أو أدوات التشخيص الأخرى التي تحتاج إلى التحقّق من حالة قائمة getDevices() من خلال قناة أخرى. يجب أن يستدعي الرمز الذي يحتاج فقط إلى الوصول إلى قائمة الأجهزة الدالة getDevices() بدلاً من ذلك.

المرتجعات
ListenableFuture<List<AdbDevice>>

getRestartAttemptCount

public int getRestartAttemptCount ()

تعرِض هذه السمة عدد المرات التي حاول فيها العنصر AndroidDebugBridge إعادة تشغيل برنامج adb الخفي.

المرتجعات
int

getSocketAddress

public static InetSocketAddress getSocketAddress ()

تم إيقاف هذا الإجراء نهائيًا.
تعرض هذه الطريقة عنوان خادم إعادة توجيه قد لا يتطابق مع العنوان الذي يستخدمه خادم ADB، أي أنّ جهاز JVM قد يكون في وضع IPv4 بينما يتم استضافة خادم ADB على عنوان إعادة توجيه IPv6. يُفضَّل استخدام openConnection() عند فتح اتصال بخدمة تصحيح أخطاء Android.

تعرض هذه السمة عنوان مأخذ التوصيل لخادم ADB على المضيف.

ستحاول هذه الطريقة عرض عنوان مقبس معروف بأنّه يعمل من خلال فتح قناة مقبس إلى خادم ADB. ستتم محاولة استخدام عنوانَي IPv4 وIPv6 للعنوان الحلقي. في حال تعذّر الاتصال بأي منهما، ستعود هذه الطريقة إلى عرض عنوان loopback المفضّل لدى JVM. هذه المنطق الاحتياطي مطلوب لمنع حدوث مشاكل في واجهة برمجة التطبيقات.

في حال تفعيل وضع خادم 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 ()

تعرض هذه السمة ما إذا كان العنصر AndroidDebugBridge لا يزال مرتبطًا بخادم adb.

المرتجعات
boolean

isUserManagedAdbMode

public static boolean isUserManagedAdbMode ()

المرتجعات
boolean إذا كان التشغيل في وضع ADB الذي يديره المستخدم حيث لن تدير ddmlib خادم ADB ولن يكون عليها ذلك.

openConnection

public static SocketChannel openConnection ()

محاولات الاتصال بخادم "جسر تصحيح أخطاء Android" المحلي

المرتجعات
SocketChannel مقبس متصل في حال النجاح

عمليات الطرح
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 صحيح إذا كان ناجحًا.

إعادة التشغيل

public boolean restart ()

تم إيقاف هذا الإجراء نهائيًا.
قد يتوقف هذا الإجراء إذا لم يستجب ADB. يمكنك استخدام restart(long,TimeUnit) كبديل.

يعيد تشغيل adb، ولكن ليس الخدمات المرتبطة به.

المرتجعات
boolean صحيح إذا كان ناجحًا.

startAdb

public boolean startAdb (long timeout, 
                TimeUnit unit)

يبدأ خادم جهة المضيف adb. يجب عدم استخدام هذه الطريقة عند استخدام خادم ADB المُدار من قِبل المستخدم، لأنّ المستخدم هو من يدير مراحل نشاط الخادم، وليس ddmlib.

المعلَمات
timeout long

unit TimeUnit

المرتجعات
boolean صحيح إذا كان ناجحًا

إغلاق

public static void terminate ()

تنهي هذه الدالة مكتبة ddm. يجب استدعاء هذه الطريقة عند إيقاف التطبيق.