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, String command, IDevice device, IShellOutputReceiver rcvr, long maxTimeToOutputResponse, TimeUnit maxTimeUnits)
تنفيذ أمر shell على الجهاز واسترداد الناتج
|
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
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, IDevice device)
عند توفّر IDevice، احصل على الرقم التسلسلي وأخبِر أداة adb بالتواصل مع هذا الجهاز.
|
static
void
|
setDevice(SocketChannel adbChan, String deviceSerialNumber)
يطلب من 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: معرّف العملية (PID) الخاص بعملية 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: |
executeRemoteCommand
public static void executeRemoteCommand (InetSocketAddress adbSockAddr,
String command,
IDevice device,
IShellOutputReceiver rcvr,
long maxTimeToOutputResponse,
TimeUnit maxTimeUnits)
تنفيذ أمر shell على الجهاز واسترداد الناتج يتم تسليم الناتج إلى
rcvr فور صدوره.
| المعلمات |
adbSockAddr |
InetSocketAddress: ERROR(/InetSocketAddress) إلى adb |
command |
String: أمر shell المطلوب تنفيذه |
device |
IDevice: IDevice الذي سيتم تنفيذ الأمر عليه |
rcvr |
IShellOutputReceiver: IShellOutputReceiver الذي سيتلقّى نتيجة أمر shell |
maxTimeToOutputResponse |
long: الحد الأقصى للوقت بين مخرجات الأوامر إذا مرّ وقت أطول بين مخرجات الأمر، سيؤدي ذلك إلى ظهور الخطأ ShellCommandUnresponsiveException. تعني القيمة 0 أنّ الطريقة ستنتظر إلى الأبد للحصول على ناتج الأمر ولن تطرح أي استثناء. |
maxTimeUnits |
TimeUnit: وحدات قيم maxTimeToOutputResponse غير الصفرية. |
يُرجى الاطّلاع أيضًا على:
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: ERROR(/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: ERROR(/InputStream) اختياري سيتم بثه بعد استدعاء الأمر وقبل استرداد الرد. |
يُرجى الاطّلاع أيضًا على:
executeRemoteCommand
public static void executeRemoteCommand (InetSocketAddress adbSockAddr,
String command,
IDevice device,
IShellOutputReceiver rcvr,
long maxTimeout,
long maxTimeToOutputResponse,
TimeUnit maxTimeUnits)
تنفيذ أمر shell على الجهاز واسترداد الناتج يتم تسليم الناتج إلى
rcvr فور صدوره.
| المعلمات |
adbSockAddr |
InetSocketAddress: ERROR(/InetSocketAddress) إلى adb |
command |
String: أمر shell المطلوب تنفيذه |
device |
IDevice: IDevice الذي سيتم تنفيذ الأمر عليه |
rcvr |
IShellOutputReceiver: IShellOutputReceiver الذي سيتلقّى نتيجة أمر shell |
maxTimeout |
long: الحد الأقصى للوقت الذي يستغرقه تنفيذ الأمر. تعني القيمة 0 أنّه لن يتم تطبيق أي حد أقصى للمهلة. |
maxTimeToOutputResponse |
long: الحد الأقصى للوقت بين مخرجات الأوامر إذا مرّ وقت أطول بين مخرجات الأمر، ستعرض الطريقة ShellCommandUnresponsiveException. تعني القيمة 0 أنّ الطريقة ستنتظر إلى الأبد للحصول على ناتج الأمر ولن تطرح أي استثناء. |
maxTimeUnits |
TimeUnit: وحدات القيم غير الصفرية maxTimeout و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 |
في حال انتهاء مهلة الاتصال |
|
في حال حدوث خطأ في الإدخال/الإخراج عند الاتصال |
إعادة تشغيل
public static void reboot (String into,
InetSocketAddress adbSockAddr,
IDevice device)
أعد تشغيل الجهاز.
| المعلمات |
into |
String: لتحديد ما سيتم إعادة التشغيل إليه (وضع الاسترداد أو برنامج الإقلاع) أو قيمة فارغة لإعادة التشغيل فقط. |
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,
IDevice device)
عند توفّر IDevice، احصل على الرقم التسلسلي وأخبِر أداة adb بالتواصل مع هذا الجهاز.
| المعلمات |
adbChan |
SocketChannel: اتصال المقبس بـ adb |
device |
IDevice: الجهاز الذي تريد التحدث إليه |
setDevice
public static void setDevice (SocketChannel adbChan,
String deviceSerialNumber)
يطلب من adb التواصل مع جهاز معيّن
| المعلمات |
adbChan |
SocketChannel: اتصال المقبس بـ adb |
deviceSerialNumber |
String: الرقم التسلسلي للجهاز الذي تريد التحدث معه، إذا كانت القيمة فارغة، يكون الجهاز التلقائي
المحدّد هو الجهاز الذي اختاره adb. |
في الكتابة
public static void write (SocketChannel chan,
byte[] data,
int length,
int timeout)
الكتابة إلى أن يتمّ كتابة جميع البيانات في "البيانات"، أو يتمّ الوصول إلى الطول الاختياري، أو تنتهي مهلة
الانتظار، أو يتعذّر الاتصال. تعرض هذه الدالة القيمة "صحيح" إذا تمت كتابة جميع البيانات.
| المعلمات |
chan |
SocketChannel: المقبس المفتوح للكتابة إليه |
data |
byte: المخزن المؤقت الذي سيتم إرساله |
length |
int: الطول المطلوب كتابته أو -1 لإرسال المخزن المؤقت بالكامل |
timeout |
int: قيمة المهلة يعني انتهاء المهلة عند الصفر "الانتظار إلى الأبد". |
| الرميات |
TimeoutException |
في حال انتهاء مهلة الاتصال |
|
في حال حدوث خطأ في الإدخال/الإخراج عند الاتصال |
في الكتابة
public static void write (SocketChannel chan,
byte[] data)
الكتابة إلى أن تتم كتابة جميع البيانات في "البيانات" أو يتعذّر الاتصال أو تنتهي المهلة
يستخدم هذا الخيار قيمة المهلة التلقائية.
| المعلمات |
chan |
SocketChannel: المقبس المفتوح للكتابة إليه |
data |
byte: المخزن المؤقت الذي سيتم إرساله |
| الرميات |
TimeoutException |
في حال انتهاء مهلة الاتصال |
|
في حال حدوث خطأ في الإدخال/الإخراج عند الاتصال |