AdbHelper
public
final
class
AdbHelper
extends Object
| java.lang.Object
|
| ↳ |
com.android.tradefed.device.server.AdbHelper
|
فئة مساعدة للتعامل مع الطلبات وعمليات الربط ببرنامج adb.
AndroidDebugBridge هي واجهة برمجة التطبيقات العامة للاتصال ببرنامج adb، بينما تتولى AdbHelper تنفيذ المهام المنخفضة المستوى.
يستخدم هذا الإعداد حاليًا عمليات إدخال وإخراج غير حظر باستخدام انتظار الدوران. ستكون أداة الاختيار أكثر فعالية، ولكن يبدو أنّها
مبالغ فيها بالنسبة إلى ما نفعله هنا.
ملخّص
الإجراءات العامة |
static
void
|
createForward(InetSocketAddress adbSockAddr, IDevice device, String localPortSpec, String remotePortSpec)
لإنشاء عملية إعادة توجيه منفذ بين منفذ محلي ومنفذ بعيد
|
static
AdbCommandRejectedException
|
createHiddenException(String message, boolean errorDuringDeviceSelection)
|
static
AdbCommandRejectedException
|
createHiddenException(String message)
|
static
byte[]
|
createJdwpForwardRequest(int pid)
ينشئ طلب إعادة توجيه منفذ إلى عملية jdwp.
|
static
SocketChannel
|
createPassThroughConnection(InetSocketAddress adbSockAddr, String deviceSerialNumber, int pid)
تنشئ هذه السمة وتصل مقبسًا جديدًا للاتصال المباشر من المضيف إلى منفذ على الجهاز.
|
static
void
|
createReverse(InetSocketAddress adbSockAddr, IDevice device, String remotePortSpec, String localPortSpec)
تُنشئ هذه السمة عملية عكس للمنفذ بين منفذ بعيد ومنفذ محلي.
|
static
void
|
executeRemoteCommand(InetSocketAddress adbSockAddr, AdbHelper.AdbService adbService, String command, IDevice device, IShellOutputReceiver rcvr, long maxTimeout, long maxTimeToOutputResponse, TimeUnit maxTimeUnits, InputStream is)
ينفّذ أمرًا عن بُعد على الجهاز ويستردّ الناتج.
|
static
void
|
executeRemoteCommand(InetSocketAddress adbSockAddr, String command, IDevice device, IShellOutputReceiver rcvr, long maxTimeout, long maxTimeToOutputResponse, TimeUnit maxTimeUnits)
ينفّذ أمر shell على الجهاز ويستردّ الناتج.
|
static
void
|
executeRemoteCommand(InetSocketAddress adbSockAddr, String command, IDevice device, IShellOutputReceiver rcvr, long maxTimeToOutputResponse, TimeUnit maxTimeUnits)
ينفّذ أمر shell على الجهاز ويستردّ الناتج.
|
static
byte[]
|
formAdbRequest(String payloadString)
أنشئ سلسلة ASCII مسبوقة بأربعة أرقام ست عشرية.
|
static
String
|
getFeatures(IDevice device)
يطلب مجموعة من الميزات المتوافقة من الجهاز.
|
static
RawImage
|
getFrameBuffer(InetSocketAddress adbSockAddr, IDevice device, long timeout, TimeUnit unit)
استرداد مخزن مؤقت للإطارات من الجهاز مع المهلة المحدّدة
|
static
String
|
getHostFeatures()
يطلب مجموعة من الميزات المتوافقة من مضيف ADB.
|
static
SocketChannel
|
open(InetSocketAddress adbSockAddr, IDevice device, int devicePort)
أنشئ مقبسًا جديدًا للاتصال المباشر واربطه من المضيف بمنفذ على الجهاز.
|
static
SocketChannel
|
rawAdbService(InetSocketAddress socketAddress, IDevice device, String command, AdbHelper.AdbService service)
استدعاء الخدمة على جهاز بعيد
|
static
SocketChannel
|
rawExec(InetSocketAddress socketAddress, IDevice device, String executable, String[] parameters)
استدعاء خدمة host:exec على جهاز بعيد
|
static
AdbHelper.AdbResponse
|
readAdbResponse(SocketChannel chan, boolean readDiagString)
تقرأ هذه السمة الردّ من ADB بعد تنفيذ أمر.
|
static
void
|
reboot(String into, InetSocketAddress adbSockAddr, IDevice device)
أعد تشغيل الجهاز.
|
static
void
|
removeForward(InetSocketAddress adbSockAddr, IDevice device, String localPortSpec)
إزالة عملية إعادة توجيه المنفذ بين منفذ محلي ومنفذ بعيد
|
static
void
|
removeReverse(InetSocketAddress adbSockAddr, IDevice device, String remotePortSpec)
إزالة عملية عكس المنفذ بين منفذ بعيد ومنفذ محلي
|
static
void
|
root(InetSocketAddress adbSockAddr, IDevice device)
اطلب من برنامج adb الخفي أن يصبح الجذر على الجهاز.
|
static
void
|
setDevice(SocketChannel adbChan, String deviceSerialNumber)
يطلب من adb التواصل مع جهاز معيّن
|
static
void
|
setDevice(SocketChannel adbChan, IDevice device)
عند توفّر IDevice، احصل على الرقم التسلسلي وأخبِر adb بالتواصل مع هذا الجهاز.
|
static
void
|
write(SocketChannel chan, byte[] data, int length, int timeout)
الكتابة إلى أن تتم كتابة جميع البيانات في "البيانات"، أو يتم الوصول إلى الطول الاختياري، أو تنتهي مهلة
الانتظار، أو يتعذّر الاتصال.
|
static
void
|
write(SocketChannel chan, byte[] data)
الكتابة إلى أن تتم كتابة جميع البيانات في "البيانات" أو يتعذّر الاتصال أو تنتهي المهلة
|
الثوابت
HOST_TRANSPORT
public static final String HOST_TRANSPORT
Constant Value:
"host:transport:"
الحقول
DEFAULT_CHARSET
public static final Charset DEFAULT_CHARSET
الإجراءات العامة
createForward
public static void createForward (InetSocketAddress adbSockAddr,
IDevice device,
String localPortSpec,
String remotePortSpec)
لإنشاء عملية إعادة توجيه منفذ بين منفذ محلي ومنفذ بعيد
| المعلَمات |
adbSockAddr |
InetSocketAddress: عنوان المقبس المطلوب الاتصال به في adb |
device |
IDevice: الجهاز الذي سيتم عليه إعادة توجيه المنفذ |
localPortSpec |
String: تحديد المنفذ المحلي الذي سيتم إعادة توجيهه، ويجب أن يكون بالتنسيق
tcp: |
remotePortSpec |
String: تحديد المنفذ البعيد الذي سيتم إعادة توجيهه إليه، ويجب أن يكون أحد الخيارات التالية: tcp:
localabstract: localreserved:
localfilesystem: dev: jdwp:
(عن بُعد فقط) |
createHiddenException
public static AdbCommandRejectedException createHiddenException (String message,
boolean errorDuringDeviceSelection)
| المعلَمات |
message |
String |
errorDuringDeviceSelection |
boolean |
createJdwpForwardRequest
public static byte[] createJdwpForwardRequest (int pid)
ينشئ طلب إعادة توجيه منفذ إلى عملية jdwp. تعرض هذه السمة صفيفًا يحتوي على "####jwdp:{pid}".
| المعلَمات |
pid |
int: معرّف عملية jdwp على الجهاز |
createPassThroughConnection
public static SocketChannel createPassThroughConnection (InetSocketAddress adbSockAddr,
String deviceSerialNumber,
int pid)
تنشئ هذه السمة وتصل مقبسًا جديدًا للاتصال المباشر من المضيف إلى منفذ على الجهاز.
| المعلَمات |
deviceSerialNumber |
String: الرقم التسلسلي للجهاز الذي سيتم الاتصال به يمكن أن تكون القيمة فارغة أو null، وفي هذه الحالة سيتم الاتصال بأول جهاز متاح. |
pid |
int: معرّف العملية المطلوب الاتصال بها. |
createReverse
public static void createReverse (InetSocketAddress adbSockAddr,
IDevice device,
String remotePortSpec,
String localPortSpec)
تُنشئ هذه السمة عملية عكس للمنفذ بين منفذ بعيد ومنفذ محلي.
| المعلَمات |
adbSockAddr |
InetSocketAddress: عنوان المقبس المطلوب الاتصال به في adb |
device |
IDevice: الجهاز الذي سيتم عليه عكس المنفذ |
remotePortSpec |
String: تحديد المنفذ البعيد الذي سيتم عكسه، ويجب أن يكون إحدى القيم التالية: tcp:
localabstract: localreserved:
localfilesystem: dev: jdwp:
(عن بُعد فقط) |
localPortSpec |
String: مواصفات المنفذ المحلي، ويجب أن يكون بالتنسيق tcp: |
public static void executeRemoteCommand (InetSocketAddress adbSockAddr,
AdbHelper.AdbService adbService,
String command,
IDevice device,
IShellOutputReceiver rcvr,
long maxTimeout,
long maxTimeToOutputResponse,
TimeUnit maxTimeUnits,
InputStream is)
ينفّذ أمرًا عن بُعد على الجهاز ويستردّ الناتج. يتم تسليم الناتج إلى
rcvr فور صدوره. يتم تنفيذ الأمر من خلال الخدمة البعيدة المحدّدة بواسطة المَعلمة adbService.
| المعلَمات |
adbSockAddr |
استبدِل InetSocketAddress بـ InetSocketAddress في adb. |
adbService |
AdbHelper.AdbService: AdbHelper.AdbService المطلوب استخدامه لتنفيذ الأمر |
command |
String: أمر shell المطلوب تنفيذه |
device |
IDevice: IDevice الذي سيتم تنفيذ الأمر عليه |
rcvr |
IShellOutputReceiver: IShellOutputReceiver الذي سيتلقّى نتيجة أمر shell |
maxTimeout |
long: الحد الأقصى لمهلة تنفيذ الأمر الكامل. تشير القيمة 0 إلى عدم وجود مهلة. |
maxTimeToOutputResponse |
long: الحد الأقصى للوقت بين مخرجات الأوامر إذا مرّ وقت أطول بين
إخراج الأمر، سيؤدي ذلك إلى ظهور الخطأ ShellCommandUnresponsiveException. تعني القيمة 0 أنّ الطريقة ستنتظر إلى الأبد للحصول على ناتج الأمر ولن تطرح أي استثناء. |
maxTimeUnits |
TimeUnit: وحدات القيم غير الصفرية maxTimeout وmaxTimeToOutputResponse |
is |
InputStream: InputStream اختياري سيتم بثه بعد استدعاء الأمر وقبل استرداد الرد. |
يُرجى الاطّلاع أيضًا على:
executeRemoteCommand
public static void executeRemoteCommand (InetSocketAddress adbSockAddr,
String command,
IDevice device,
IShellOutputReceiver rcvr,
long maxTimeout,
long maxTimeToOutputResponse,
TimeUnit maxTimeUnits)
ينفّذ أمر shell على الجهاز ويستردّ الناتج. يتم تسليم الناتج إلى
rcvr فور صدوره.
| المعلَمات |
adbSockAddr |
استبدِل InetSocketAddress بـ InetSocketAddress في adb. |
command |
String: أمر shell المطلوب تنفيذه |
device |
IDevice: IDevice الذي سيتم تنفيذ الأمر عليه |
rcvr |
IShellOutputReceiver: IShellOutputReceiver الذي سيتلقّى نتيجة أمر shell |
maxTimeout |
long: الحد الأقصى للوقت الذي يستغرقه تنفيذ الأمر. تعني القيمة 0 أنّه لن يتم تطبيق أي حد أقصى للمهلة. |
maxTimeToOutputResponse |
long: الحد الأقصى للوقت بين مخرجات الأوامر إذا مرّ وقت أطول بين
إخراج الأمر، سيؤدي ذلك إلى ظهور الخطأ ShellCommandUnresponsiveException. تعني القيمة 0 أنّ الطريقة ستنتظر إلى الأبد للحصول على ناتج الأمر ولن تطرح أي استثناء. |
maxTimeUnits |
TimeUnit: وحدات القيم غير الصفرية maxTimeout وmaxTimeToOutputResponse |
يُرجى الاطّلاع أيضًا على:
executeRemoteCommand
public static void executeRemoteCommand (InetSocketAddress adbSockAddr,
String command,
IDevice device,
IShellOutputReceiver rcvr,
long maxTimeToOutputResponse,
TimeUnit maxTimeUnits)
ينفّذ أمر shell على الجهاز ويستردّ الناتج. يتم تسليم الناتج إلى
rcvr فور صدوره.
| المعلَمات |
adbSockAddr |
استبدِل InetSocketAddress بـ InetSocketAddress في adb. |
command |
String: أمر shell المطلوب تنفيذه |
device |
IDevice: IDevice الذي سيتم تنفيذ الأمر عليه |
rcvr |
IShellOutputReceiver: IShellOutputReceiver الذي سيتلقّى نتيجة أمر shell |
maxTimeToOutputResponse |
long: الحد الأقصى للوقت بين مخرجات الأوامر إذا مرّ وقت أطول بين
إخراج الأمر، سيؤدي ذلك إلى ظهور الخطأ ShellCommandUnresponsiveException. تعني القيمة 0 أنّ الطريقة ستنتظر إلى الأبد للحصول على ناتج الأمر ولن تطرح أي استثناء. |
maxTimeUnits |
TimeUnit: وحدات قيم maxTimeToOutputResponse غير الصفرية. |
يُرجى الاطّلاع أيضًا على:
public static byte[] formAdbRequest (String payloadString)
أنشئ سلسلة ASCII مسبوقة بأربعة أرقام ست عشرية. يمثّل الجزء الأول "####" طول بقية السلسلة، وهو مرمّز بتنسيق ASCII السداسي العشري (لا يهمّ ما إذا كانت الأحرف كبيرة أو صغيرة).
| المعلَمات |
payloadString |
String |
getFeatures
public static String getFeatures (IDevice device)
يطلب هذا الإجراء مجموعة من الميزات المتوافقة من الجهاز.
| المعلَمات |
device |
IDevice: الجهاز الذي سيتم عليه إعادة توجيه المنفذ |
getFrameBuffer
public static RawImage getFrameBuffer (InetSocketAddress adbSockAddr,
IDevice device,
long timeout,
TimeUnit unit)
استرداد مخزن مؤقت للإطارات من الجهاز مع المهلة المحدّدة يشير المهلة 0 إلى أنّه سيتم الانتظار إلى الأبد.
| المعلَمات |
adbSockAddr |
InetSocketAddress |
device |
IDevice |
timeout |
long |
unit |
TimeUnit |
getHostFeatures
public static String getHostFeatures ()
يطلب مجموعة من الميزات المتوافقة من مضيف ADB.
فتح
public static SocketChannel open (InetSocketAddress adbSockAddr,
IDevice device,
int devicePort)
أنشئ مقبسًا جديدًا للاتصال المباشر واربطه من المضيف بمنفذ على الجهاز.
| المعلَمات |
device |
IDevice: الجهاز الذي تريد الاتصال به يمكن أن تكون القيمة فارغة، وفي هذه الحالة سيتم الاتصال بأول جهاز متاح. |
devicePort |
int: المنفذ الذي سيتم فتحه |
rawAdbService
public static SocketChannel rawAdbService (InetSocketAddress socketAddress,
IDevice device,
String command,
AdbHelper.AdbService service)
استدعاء الخدمة على جهاز بعيد لعرض قناة مقبس مرتبطة بالعملية الجارية.
تتخلى ddlmib عن ملكية SocketChannel الذي تم إرجاعه ويجب إغلاقه بشكل صريح
بعد الاستخدام.
| المعلَمات |
device |
IDevice: الجهاز الذي تريد الاتصال به يمكن أن تكون القيمة فارغة، وفي هذه الحالة سيتم الاتصال بأول جهاز متاح. |
command |
String: الأمر المطلوب تنفيذه |
service |
AdbHelper.AdbService: AdbHelper.AdbService المطلوب استخدامه لتنفيذ الأمر |
rawExec
public static SocketChannel rawExec (InetSocketAddress socketAddress,
IDevice device,
String executable,
String[] parameters)
استدعاء خدمة host:exec على جهاز بعيد تعرض هذه السمة قناة مقبس مرتبطة بالعملية الجاري تنفيذها. يُرجى العِلم أنّ خدمة exec لا تفرّق بين stdout وstderr، لذا يمكن أن تأتي أي بيانات تتم قراءتها من المقبس من أي من المخرجات ويتم دمجها.
تتخلى ddlmib عن ملكية SocketChannel الذي تم إرجاعه ويجب إغلاقه بشكل صريح
بعد الاستخدام.
| المعلَمات |
device |
IDevice: الجهاز الذي تريد الاتصال به يمكن أن تكون القيمة فارغة، وفي هذه الحالة سيتم الاتصال بأول جهاز متاح. |
executable |
String: المسار المطلق للملف التنفيذي الذي سيتم تشغيله |
parameters |
String: المَعلمات التي سيتم الحصول عليها عند تنفيذ الملف القابل للتنفيذ |
readAdbResponse
public static AdbHelper.AdbResponse readAdbResponse (SocketChannel chan,
boolean readDiagString)
تقرأ هذه الدالة الردّ من ADB بعد تنفيذ أمر.
| المعلَمات |
chan |
SocketChannel: قناة المقبس المرتبطة بـ adb. |
readDiagString |
boolean: إذا كانت القيمة صحيحة، نتوقّع تلقّي رد OKAY متبوعًا بسلسلة بيانات تشخيصية. بخلاف ذلك، نتوقّع أن تتضمّن سلسلة بيانات التشخيص كلمة FAIL فقط. |
| عمليات الطرح |
TimeoutException |
في حال انتهاء مهلة الاتصال |
IOException |
في حال حدوث خطأ في الإدخال/الإخراج عند الاتصال |
إعادة التشغيل
public static void reboot (String into,
InetSocketAddress adbSockAddr,
IDevice device)
أعد تشغيل الجهاز.
| المعلَمات |
into |
String: تحديد وضع إعادة التشغيل (وضع الاسترداد أو برنامج تحميل التشغيل) أو null لإعادة التشغيل فقط. |
adbSockAddr |
InetSocketAddress |
device |
IDevice |
removeForward
public static void removeForward (InetSocketAddress adbSockAddr,
IDevice device,
String localPortSpec)
إزالة عملية إعادة توجيه المنفذ بين منفذ محلي ومنفذ بعيد
| المعلَمات |
adbSockAddr |
InetSocketAddress: عنوان المقبس المطلوب الاتصال به في adb |
device |
استبدِل IDevice بالجهاز الذي تريد إزالة إعادة توجيه المنفذ منه. |
localPortSpec |
String: مواصفات المنفذ المحلي الذي تمّت إعادة توجيهه، ويجب أن يكون بالتنسيق
tcp: |
removeReverse
public static void removeReverse (InetSocketAddress adbSockAddr,
IDevice device,
String remotePortSpec)
إزالة عملية عكس المنفذ بين منفذ بعيد ومنفذ محلي
| المعلَمات |
adbSockAddr |
InetSocketAddress: عنوان المقبس المطلوب الاتصال به في adb |
device |
IDevice: الجهاز الذي ستتم إزالة عكس المنفذ منه |
remotePortSpec |
String: تحديد المنفذ البعيد الذي تم عكسه إلى أحد الخيارات التالية: tcp:
localabstract: localreserved:
localfilesystem: dev: jdwp:
(بعيد فقط) |
جذر
public static void root (InetSocketAddress adbSockAddr,
IDevice device)
اطلب من برنامج adb الخفي أن يصبح الجذر على الجهاز. قد يتعذّر تنفيذ هذا الإجراء بدون إشعار، ولا يمكن تنفيذه بنجاح إلا في إصدارات المطوّرين. اطّلِع على "adb root" لمزيد من المعلومات. إذا أردت معرفة ما إذا نجحت العملية، يمكنك التحقّق من نتيجة executeRemoteCommand بشأن الأمر echo \$USER_ID. إذا كانت النتيجة 0، يعني ذلك أنّ adbd يعمل كجذر.
| المعلَمات |
adbSockAddr |
InetSocketAddress |
device |
IDevice |
setDevice
public static void setDevice (SocketChannel adbChan,
String deviceSerialNumber)
يطلب من adb التواصل مع جهاز معيّن
| المعلَمات |
adbChan |
SocketChannel: اتصال المقبس بـ adb |
deviceSerialNumber |
String: الرقم التسلسلي للجهاز الذي تريد التحدث معه، إذا كانت القيمة فارغة، يكون الجهاز التلقائي
المحدّد هو الجهاز الذي اختاره adb. |
setDevice
public static void setDevice (SocketChannel adbChan,
IDevice device)
عند توفّر IDevice، احصل على الرقم التسلسلي وأخبِر adb بالتواصل مع هذا الجهاز.
| المعلَمات |
adbChan |
SocketChannel: اتصال المقبس بـ adb |
device |
IDevice: الجهاز الذي تريد التحدث إليه |
write
public static void write (SocketChannel chan,
byte[] data,
int length,
int timeout)
اكتب إلى أن يتم كتابة جميع البيانات في "البيانات"، أو يتم الوصول إلى الطول الاختياري، أو تنتهي مهلة
، أو يتعذّر الاتصال. تعرض هذه الدالة القيمة "صحيح" إذا تمت كتابة جميع البيانات.
| المعلَمات |
chan |
SocketChannel: المقبس المفتوح للكتابة إليه |
data |
byte: المخزن المؤقت الذي سيتم إرساله |
length |
int: الطول المطلوب كتابته أو -1 لإرسال المخزن المؤقت بالكامل |
timeout |
int: قيمة المهلة يعني انتهاء المهلة عند الصفر "الانتظار إلى الأبد". |
| عمليات الطرح |
TimeoutException |
في حال انتهاء مهلة الاتصال |
IOException |
في حال حدوث خطأ في الإدخال/الإخراج عند الاتصال |
write
public static void write (SocketChannel chan,
byte[] data)
الكتابة إلى أن تتم كتابة جميع البيانات في "البيانات" أو يتعذّر الاتصال أو تنتهي المهلة
يتم استخدام قيمة المهلة التلقائية.
| المعلَمات |
chan |
SocketChannel: المقبس المفتوح للكتابة إليه |
data |
byte: المخزن المؤقت الذي سيتم إرساله |
| عمليات الطرح |
TimeoutException |
في حال انتهاء مهلة الاتصال |
IOException |
في حال حدوث خطأ في الإدخال/الإخراج عند الاتصال |