SandboxedSdkProvider

public abstract class SandboxedSdkProvider
extends Object

java.lang.Object
android.app.sdksandbox.SandboxedSdkProvider


يتضمّن هذا القسم واجهة برمجة التطبيقات التي يمكن لوضع حماية حزمة تطوير البرامج (SDK) استخدامها للتفاعل مع حِزم SDK التي يتم تحميلها إليها.

على حزمة تطوير البرامج (SDK) تنفيذ هذه الفئة المجرّدة لإنشاء نقطة دخول إلى وضع الحماية في حزمة SDK ليتمكّن من استخدامها.

ملخّص

شركة إنشاءات عامة

SandboxedSdkProvider()

الطرق العامة

final void attachContext(Context context)

تحدِّد هذه السياسة حزمة تطوير البرامج (SDK) Context التي يمكن استلامها بعد ذلك باستخدام getContext().

void beforeUnloadSdk()

هل العمل اللازم لحزمة SDK لتفريغ مواردها قبل تحميلها

final Context getContext()

عليك إرجاع Context التي تم ضبطها سابقًا من خلال SandboxedSdkProvider#attachContext.

abstract View getView(Context windowContext, Bundle params, int width, int height)

يطلب طريقة عرض ليتم عرضها عن بُعد في عملية تطبيق العميل.

abstract SandboxedSdk onLoadSdk(Bundle params)

هل العمل اللازم لحزمة SDK لبدء معالجة الطلبات؟

الطرق المكتسبة

شركة إنشاءات عامة

SandboxedSdkProvider

public SandboxedSdkProvider ()

الطرق العامة

إرفاق سياق

public final void attachContext (Context context)

تحدِّد هذه السياسة حزمة تطوير البرامج (SDK) Context التي يمكن استلامها بعد ذلك باستخدام getContext(). يتم استدعاء هذا قبل استدعاء onLoadSdk(Bundle). يجب ألا تكون العمليات التي تتطلب Context قبل ذلك، حيث إن SandboxedSdkProvider#getContext سيعرض القيمة "فارغ" حتى استدعيت هذه الطريقة.

تعرض هذه الدالة UnknownStateException إذا تم تعيين سياق أساسي من قبل.

المعلمات
context Context: السياق الأساسي الجديد لا يمكن أن تكون هذه القيمة null.

beforeUnloadSdk

public void beforeUnloadSdk ()

هل العمل اللازم لحزمة SDK لتفريغ مواردها قبل تحميلها

تطلب هذه الدالة من خلال مدير وضع الحماية لحزمة تطوير البرامج (SDK) قبل إلغاء تحميل حزمة SDK. حزمة SDK من المفترض أن يتعذّر اجتياز أي استدعاءات على Binder تم إرجاعها سابقًا إلى العميل من خلال SandboxedSdk.getInterface().

من المفترض ألا تنفّذ حزمة تطوير البرامج (SDK) أي مهام طويلة الأمد هنا، مثل وحدات الإدخال والإخراج وطلبات الشبكة.

الحصول على سياق

public final Context getContext ()

عليك إرجاع Context التي تم ضبطها سابقًا من خلال SandboxedSdkProvider#attachContext. سيؤدي هذا إلى عرض قيمة فارغة إذا لم يتم تعيين سياق مسبقًا.

المرتجعات
Context

الحصول على عرض

public abstract View getView (Context windowContext, 
                Bundle params, 
                int width, 
                int height)

يطلب طريقة عرض ليتم عرضها عن بُعد في عملية تطبيق العميل.

سيتم التفاف View في المرتجعات في SurfacePackage. سيتم إرسال SurfacePackage الناتج إلى تطبيق العميل.

من المفترض ألا تنفّذ حزمة SDK أي مهام طويلة المدى هنا، مثل وحدات الإدخال والإخراج وطلبات الشبكة. إجراء ذلك يمكن أن تمنع حزمة SDK من تلقّي طلبات من العميل.

المعلمات
windowContext Context: Context للشاشة التي تهدف إلى إظهار العرض لا يمكن أن تكون هذه القيمة null.

params Bundle: قائمة المَعلمات التي يتم تمريرها من تطبيق العميل الذي يطلب طريقة العرض لا يمكن أن تكون هذه القيمة null.

width int: سيتم وضع العرض المعروض كما لو كان في نافذة بهذا العرض، بالبكسل.

height int: سيتم وضع العرض المعروض كما لو كان في نافذة بهذا الارتفاع بالبكسل.

المرتجعات
View View الذي يمرّر وضع الحماية لحزمة تطوير البرامج (SDK) إلى تطبيق العميل الذي يطلب العرض لا يمكن أن تكون هذه القيمة null.

onLoadSdk

public abstract SandboxedSdk onLoadSdk (Bundle params)

هل العمل اللازم لحزمة SDK لبدء معالجة الطلبات؟

يتم استدعاء هذه الدالة بواسطة وضع الحماية لحزمة تطوير البرامج (SDK) بعد تحميل حزمة SDK.

يجب أن تبذل حزمة SDK أي عمل لتكون جاهزة للتعامل مع الطلبات القادمة. يجب ألا يفعل أي المهام الطويلة الأمد هنا، مثل وحدات الإدخال والإخراج (I/O) ومكالمات الشبكة. وقد يؤدي ذلك إلى منع حزمة SDK من تلقي طلبات من العميل. إضافةً إلى ذلك، ينبغي ألا تجري التهيئة يعتمد على حِزم تطوير البرامج (SDK) الأخرى التي يتم تحميلها في وضع الحماية لحزمة تطوير البرامج (SDK).

يجب ألّا تُجري حزمة تطوير البرامج (SDK) أي عمليات تتطلّب كائن Context قبل هذه الطريقة. عملية طلب البيانات.

المعلمات
params Bundle: قائمة المَعلمات التي يتم تمريرها من العميل عند تحميل حزمة تطوير البرامج (SDK) يمكن أن يكون هذا الحقل فارغًا. لا يمكن أن تكون هذه القيمة null.

المرتجعات
SandboxedSdk تعرض SandboxedSdk، تم إرجاعها إلى العميل. يتم استخدام IBinder لإنشاء سيستخدِم العميل الكائن SandboxedSdk للاتصال بحزمة تطوير البرامج (SDK). لا يمكن أن تكون هذه القيمة null.

الرميات
LoadSdkException