SdkSandboxManager
 public final class SdkSandboxManager
 extends Object
  
  
  
| java.lang.object | |
| ↳ | android.app.sdksandbox.SdkSandboxManager | 
 APIهایی را برای بارگیری SDKs در فرآیند جعبه SDK و سپس تعامل با آنها فراهم می کند.
SDK sandbox یک فرآیند جاوا است که در یک محدوده uid جداگانه اجرا می شود. هر برنامه ممکن است فرآیند SDK sandbox خود را داشته باشد.
 برنامه ابتدا باید با استفاده از تگ <uses-sdk-library> ، SDK هایی را که به آن وابسته است در مانیفست خود اعلام کند. برنامهها فقط میتوانند SDKهایی را که به آنها وابسته هستند در جعبه SDK بارگیری کنند.
همچنین ببینید:
خلاصه
| کلاس های تو در تو | |
|---|---|
| interface | SdkSandboxManager.SdkSandboxProcessDeathCallbackپاسخ به تماس برای ردیابی رویدادها مرگ جعبه SDK. | 
| روش های عمومی | |
|---|---|
| void | addSdkSandboxProcessDeathCallback ( Executor callbackExecutor, SdkSandboxManager.SdkSandboxProcessDeathCallback callback)یک تماس برگشتی اضافه می کند که برای رویدادهای چرخه حیات SDK sandbox، مانند مرگ SDK sandbox ثبت می شود. | 
| void | addSyncedSharedPreferencesKeys ( Set < String > keys) کلیدهایی را به مجموعه کلیدهایی که از  | 
| List < AppOwnedSdkSandboxInterface > | getAppOwnedSdkSandboxInterfaces () فهرستی از  | 
| List < SandboxedSdk > | getSandboxedSdks ()اطلاعات مربوط به SDKهایی را که در sandbox بارگیری شده اند واکشی می کند. | 
| static int | getSdkSandboxState ()وضعیت فعلی در دسترس بودن ویژگی جعبه SDK را برمیگرداند. | 
| Set < String > | getSyncedSharedPreferencesKeys () کلیدهای تنظیمی را که از  | 
| void | loadSdk ( String sdkName, Bundle params, Executor executor, OutcomeReceiver < SandboxedSdk , LoadSdkException > receiver)SDK را در فرآیند جاوا SDK sandbox بارگیری می کند. | 
| void | registerAppOwnedSdkSandboxInterface ( AppOwnedSdkSandboxInterface appOwnedSdkSandboxInterface)  | 
| void | removeSdkSandboxProcessDeathCallback ( SdkSandboxManager.SdkSandboxProcessDeathCallback callback) یک  | 
| void | removeSyncedSharedPreferencesKeys ( Set < String > keys) کلیدها را از مجموعه کلیدهایی که با استفاده از  اگر کلیدهای حذف شده قبلاً همگامسازی شده باشند، از جعبه ایمنی SDK پاک میشوند. | 
| void | requestSurfacePackage ( String sdkName, Bundle params, Executor callbackExecutor, OutcomeReceiver < Bundle , RequestSurfacePackageException > receiver)درخواستی برای بسته سطحی به SDK ارسال می کند. | 
| void | startSdkSandboxActivity ( Activity fromActivity, IBinder sdkActivityToken) یک  | 
| void | unloadSdk ( String sdkName)یک SDK را که قبلاً توسط تماس گیرنده بارگیری شده است، بارگیری می کند. | 
| void | unregisterAppOwnedSdkSandboxInterface ( String name)  | 
| روش های ارثی | |
|---|---|
ثابت ها
EXTRA_DISPLAY_ID
public static final String EXTRA_DISPLAY_ID
 نام کلید مورد استفاده در فیلدهای Bundle requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) ، مقدار آن باید شناسه عدد صحیح را مشخص کند. صفحه نمایش منطقی برای نمایش SurfacePackage .
مقدار ثابت: "android.app.sdksandbox.extra.DISPLAY_ID"
EXTRA_HEIGHT_IN_PIXELS
public static final String EXTRA_HEIGHT_IN_PIXELS
 نام کلید مورد استفاده در فیلدهای Bundle requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) ، مقدار آن باید ارتفاع عدد صحیح را تعیین کند. SurfacePackage بر حسب پیکسل.
مقدار ثابت: "android.app.sdksandbox.extra.HEIGHT_IN_PIXELS"
EXTRA_HOST_TOKEN
public static final String EXTRA_HOST_TOKEN
 نام کلید مورد استفاده در فیلدهای Bundle requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) ، مقدار آن باید نشانه بازگشتی توسط SurfaceView.getHostToken() را نشان دهد. هنگامی که SurfaceView به سلسله مراتب view اضافه شد، SurfaceView.getHostToken() . فقط یک مقدار غیر تهی برای فعال کردن گزارش ANR پذیرفته می شود.
مقدار ثابت: "android.app.sdksandbox.extra.HOST_TOKEN"
EXTRA_SURFACE_PACKAGE
public static final String EXTRA_SURFACE_PACKAGE
 نام کلید در Bundle که به تابع onResult OutcomeReceiver که فیلد requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) ارسال می شود، مقدار آن SurfacePackage درخواستی را نشان می دهد.
مقدار ثابت: "android.app.sdksandbox.extra.SURFACE_PACKAGE"
EXTRA_WIDTH_IN_PIXELS
public static final String EXTRA_WIDTH_IN_PIXELS
 نام کلید مورد استفاده در فیلدهای Bundle requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) ، مقدار آن باید عرض عدد صحیح را مشخص کند. SurfacePackage بر حسب پیکسل.
مقدار ثابت: "android.app.sdksandbox.extra.WIDTH_IN_PIXELS"
LOAD_SDK_ALREADY_LOADED
public static final int LOAD_SDK_ALREADY_LOADED
SDK قبلاً بارگیری شده است.
 این نشان میدهد که برنامه کلاینت پس از بارگیری موفقیتآمیز با فراخوانی loadSdk(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) سعی کرده است همان SDK را دوباره بارگیری کند.
مقدار ثابت: 101 (0x00000065)
LOAD_SDK_INTERNAL_ERROR
public static final int LOAD_SDK_INTERNAL_ERROR
خطای داخلی هنگام بارگیری SDK.
این نشان می دهد که یک خطای داخلی عمومی هنگام اعمال تماس از برنامه مشتری رخ داده است.
مقدار ثابت: 500 (0x000001f4)
LOAD_SDK_NOT_FOUND
public static final int LOAD_SDK_NOT_FOUND
SDK یافت نشد.
 این نشان میدهد که برنامه کلاینت با فراخوانی loadSdk(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) سعی کرده است یک SDK موجود را بارگیری کند.
مقدار ثابت: 100 (0x00000064)
LOAD_SDK_SDK_DEFINED_ERROR
public static final int LOAD_SDK_SDK_DEFINED_ERROR
خطای SDK پس از بارگیری.
 این نشان می دهد که SDK در حین مقداردهی اولیه پس از بارگذاری با خطا مواجه شده است. جزئیات این مورد را می توان از بسته بازگردانده شده در LoadSdkException از طریق OutcomeReceiver که به SdkSandboxManager#loadSdk ارسال شده است، بدست آورد.
مقدار ثابت: 102 (0x00000066)
LOAD_SDK_SDK_SANDBOX_DISABLED
public static final int LOAD_SDK_SDK_SANDBOX_DISABLED
جعبه ایمنی SDK غیرفعال است.
این نشان می دهد که جعبه SDK غیرفعال است. هر گونه تلاش بعدی برای بارگیری SDK در این بوت نیز با شکست مواجه خواهد شد.
مقدار ثابت: 103 (0x00000067)
REQUEST_SURFACE_PACKAGE_INTERNAL_ERROR
public static final int REQUEST_SURFACE_PACKAGE_INTERNAL_ERROR
خطای داخلی هنگام درخواست SurfacePackage .
 این نشان می دهد که یک خطای داخلی عمومی هنگام درخواست SurfacePackage رخ داده است.
مقدار ثابت: 700 (0x000002bc)
REQUEST_SURFACE_PACKAGE_SDK_NOT_LOADED
public static final int REQUEST_SURFACE_PACKAGE_SDK_NOT_LOADED
هنگام درخواست SurfacePackage ، SDK بارگیری نمی شود.
 این نشان میدهد که SDK که SurfacePackage برای آن درخواست میشود، بارگیری نمیشود، یا به این دلیل که sandbox از بین رفته یا به دلیل اینکه از ابتدا بارگیری نشده است.
مقدار ثابت: 701 (0x000002bd)
SDK_SANDBOX_PROCESS_NOT_AVAILABLE
public static final int SDK_SANDBOX_PROCESS_NOT_AVAILABLE
فرآیند جعبه ایمنی SDK در دسترس نیست.
این نشان میدهد که فرآیند sandbox SDK در دسترس نیست، یا به این دلیل که در وهله اول از بین رفته، قطع شده یا ایجاد نشده است.
مقدار ثابت: 503 (0x000001f7)
SDK_SANDBOX_SERVICE
public static final String SDK_SANDBOX_SERVICE
از Context#getSystemService(String) برای بازیابی SdkSandboxManager برای تعامل با SDK های متعلق به این برنامه مشتری استفاده کنید.
مقدار ثابت: "sdk_sandbox"
SDK_SANDBOX_STATE_DISABLED
public static final int SDK_SANDBOX_STATE_DISABLED
جعبه ایمنی SDK غیرفعال است.
 APIهای SdkSandboxManager پنهان هستند. تلاش برای فراخوانی آنها منجر به UnsupportedOperationException می شود.
مقدار ثابت: 0 (0x00000000)
SDK_SANDBOX_STATE_ENABLED_PROCESS_ISOLATION
public static final int SDK_SANDBOX_STATE_ENABLED_PROCESS_ISOLATION
جعبه SDK فعال است.
 برنامه میتواند از APIهای SdkSandboxManager برای بارگیری SDKs استفاده کند که بستگی به فرآیند جعبه SDK مربوطه دارد.
مقدار ثابت: 2 (0x00000002)
روش های عمومی
addSdkSandboxProcessDeathCallback
public void addSdkSandboxProcessDeathCallback (Executor callbackExecutor, SdkSandboxManager.SdkSandboxProcessDeathCallback callback)
یک تماس برگشتی اضافه می کند که برای رویدادهای چرخه حیات SDK sandbox، مانند مرگ SDK sandbox ثبت می شود. اگر در هنگام فراخوانی جعبه شنی هنوز ایجاد نشده باشد، درخواست تا زمانی که یک جعبه شنی ایجاد شود ذخیره میشود و در این مرحله برای آن جعبه ماسهبازی فعال میشود. برای تشخیص مرگ میتوان چند تماس برگشتی اضافه کرد و با از بین رفتن جعبه شنی حذف نمیشوند.
| پارامترها | |
|---|---|
| callbackExecutor | Executor:Executorکه در آن فراخوانی برگشتی فراخوانی می شود این مقدار نمی تواندnullباشد . رویدادهای پاسخ به تماس و شنونده از طریق اینExecutorارسال میشوند و راهی آسان برای کنترل رشته مورد استفاده ارائه میدهند. برای ارسال رویدادها از طریق رشته اصلی برنامه خود، می توانید ازContext.getMainExecutor()استفاده کنید. در غیر این صورت، یکExecutorارائه دهید که به یک موضوع مناسب ارسال می کند. | 
| callback | SdkSandboxManager.SdkSandboxProcessDeathCallback:SdkSandboxProcessDeathCallbackکه رویدادهای چرخه حیات SDK sandbox را دریافت خواهد کرد. این مقدار نمی تواندnullباشد. | 
addSyncedSharedPreferencesKeys
public void addSyncedSharedPreferencesKeys (Set<String> keys)
کلیدهایی را به مجموعه کلیدهایی که از SharedPreferences پیشفرض برنامه به جعبه SDK همگامسازی میشوند، اضافه میکند.
 دادههای همگامسازی شده برای خواندن SDK با استفاده از API SdkSandboxController.getClientSharedPreferences() در دسترس خواهد بود.
 برای توقف همگامسازی هر کلیدی که با استفاده از این API اضافه شده است، از removeSyncedSharedPreferencesKeys(java.util.Set) استفاده کنید.
در صورت راه اندازی مجدد برنامه، همگام سازی قطع می شود و کاربر باید دوباره با این API تماس بگیرد تا مجموعه کلیدهای همگام سازی را بازسازی کند.
توجه: این کلاس از استفاده در چندین فرآیند پشتیبانی نمی کند.
| پارامترها | |
|---|---|
| keys | Set: مجموعه ای از کلیدهایی که با Sandbox همگام می شوند. این مقدار نمی تواندnullباشد. | 
رابط های getAppOwnedSdkSandbox
public List<AppOwnedSdkSandboxInterface> getAppOwnedSdkSandboxInterfaces ()
فهرستی از AppOwnedSdkSandboxInterface ثبت شده برای یک برنامه را واکشی می کند
| برمی گرداند | |
|---|---|
| List < AppOwnedSdkSandboxInterface > | لیست خالی اگر callingInfo در نقشه یافت نشد، در غیر این صورت لیستی از AppOwnedSdkSandboxInterfaceاین مقدار نمی تواندnullباشد. | 
getSandboxedSdks
public List<SandboxedSdk> getSandboxedSdks ()
اطلاعات مربوط به SDKهایی را که در sandbox بارگیری شده اند واکشی می کند.
| برمی گرداند | |
|---|---|
| List < SandboxedSdk > | فهرست SandboxedSdkحاوی همه SDK های بارگیری شده در حال حاضر. این مقدار نمی تواندnullباشد. | 
getSdkSandboxState
public static int getSdkSandboxState ()
وضعیت فعلی در دسترس بودن ویژگی جعبه SDK را برمیگرداند.
| برمی گرداند | |
|---|---|
| int | مقدار SDK_SANDBOX_STATE_DISABLEDیاSDK_SANDBOX_STATE_ENABLED_PROCESS_ISOLATIONاست | 
getSyncedSharedPreferencesKeys
public Set<String> getSyncedSharedPreferencesKeys ()
کلیدهای تنظیمی را که از SharedPreferences پیشفرض برنامه در حال همگامسازی هستند به جعبه ایمنی SDK برمیگرداند.
| برمی گرداند | |
|---|---|
| Set < String > | این مقدار نمی تواند nullباشد. | 
loadSdk
public void loadSdk (String sdkName, Bundle params, Executor executor, OutcomeReceiver<SandboxedSdk, LoadSdkException> receiver)
SDK را در فرآیند جاوا SDK sandbox بارگیری می کند.
 کتابخانه SDK را با sdkName به صورت ناهمزمان در فرآیند جعبه SDK بارگیری می کند. تماس گیرنده از طریق receiver مطلع خواهد شد.
 تماسگیرنده قبلاً باید SDKs که به آن وابسته است در مانیفست خود با استفاده از تگ <uses-sdk-library> اعلام کند. تماسگیرنده فقط میتواند SDKs که به آنها بستگی دارد در جعبه ایمنی SDK بارگیری کند.
هنگامی که برنامه سرویس گیرنده اولین SDK را بارگیری می کند، یک فرآیند Sandbox SDK جدید ایجاد می شود. اگر قبلاً یک جعبه ایمنی برای برنامه سرویس گیرنده ایجاد شده باشد، SDK های اضافی در همان جعبه ایمنی بارگیری می شوند.
 این API ممکن است فقط زمانی فراخوانی شود که تماس گیرنده در پیش زمینه در حال اجرا است. تماسهای پسزمینه منجر به بازگشت LoadSdkException در receiver میشود.
| پارامترها | |
|---|---|
| sdkName | String: نام SDK که باید بارگیری شود. این مقدار نمی تواندnullباشد. | 
| params | Bundle: پارامترهای اضافی که باید در قالب یکBundleبه SDK منتقل شوند که بین مشتری و SDK توافق شده است. این مقدار نمی تواندnullباشد. | 
| executor | Executor:Executorکه بر روی آن گیرنده فراخوانی می شود. این مقدار نمی تواندnullباشد. رویدادهای پاسخ به تماس و شنونده از طریق اینExecutorارسال میشوند و راهی آسان برای کنترل رشته مورد استفاده ارائه میدهند. برای ارسال رویدادها از طریق رشته اصلی برنامه خود، می توانید ازContext.getMainExecutor()استفاده کنید. در غیر این صورت، یکExecutorارائه دهید که به یک موضوع مناسب ارسال می کند. | 
| receiver | OutcomeReceiver: این یا یکSandboxedSdkدر اجرای موفقیت آمیز دریافت می کند، یاLoadSdkException. این مقدار نمی تواندnullباشد. | 
registerAppOwnedSdkSandboxInterface
public void registerAppOwnedSdkSandboxInterface (AppOwnedSdkSandboxInterface appOwnedSdkSandboxInterface)
AppOwnedSdkSandboxInterface را برای فرآیند برنامه ثبت می کند.
 ثبت یک AppOwnedSdkSandboxInterface که همان نام رابط ثبت شده قبلی را دارد، منجر به IllegalStateException می شود.
 AppOwnedSdkSandboxInterface#getName() به نام رابط اشاره دارد.
| پارامترها | |
|---|---|
| appOwnedSdkSandboxInterface | AppOwnedSdkSandboxInterface: AppOwnedSdkSandboxInterface که باید ثبت شود این مقدار نمی تواندnullباشد. | 
removeSdkSandboxProcessDeathCallback
public void removeSdkSandboxProcessDeathCallback (SdkSandboxManager.SdkSandboxProcessDeathCallback callback)
یک SdkSandboxProcessDeathCallback را که قبلاً با استفاده از addSdkSandboxProcessDeathCallback(java.util.concurrent.Executor, android.app.sdksandbox.SdkSandboxManager.SdkSandboxProcessDeathCallback)
| پارامترها | |
|---|---|
| callback | SdkSandboxManager.SdkSandboxProcessDeathCallback:SdkSandboxProcessDeathCallbackکه قبلاً با استفاده ازSdkSandboxManager#addSdkSandboxProcessDeathCallback(Executor, SdkSandboxProcessDeathCallback)این مقدار نمی تواندnullباشد. | 
removeSyncedSharedPreferencesKeys
public void removeSyncedSharedPreferencesKeys (Set<String> keys)
کلیدها را از مجموعه کلیدهایی که با استفاده از addSyncedSharedPreferencesKeys(java.util.Set) اضافه شده اند حذف می کند.
اگر کلیدهای حذف شده قبلاً همگامسازی شده باشند، از جعبه ایمنی SDK پاک میشوند.
| پارامترها | |
|---|---|
| keys | Set: مجموعه ای از نام های کلیدی که دیگر نباید با Sandbox همگام شوند. این مقدار نمی تواندnullباشد. | 
درخواست SurfacePackage
public void requestSurfacePackage (String sdkName, Bundle params, Executor callbackExecutor, OutcomeReceiver<Bundle, RequestSurfacePackageException> receiver)
درخواستی برای بسته سطحی به SDK ارسال می کند.
 پس از اینکه برنامه کلاینت سیگنالی در مورد بارگیری موفقیت آمیز SDK دریافت کرد و یک SurfaceView به سلسله مراتب view اضافه کرد، ممکن است به صورت ناهمزمان یک SurfacePackage برای ارائه یک نمای از SDK درخواست کند.
 هنگامی که SurfacePackage آماده شد، فراخوانی OutcomeReceiver#onResult receiver ارسال شده فراخوانی می شود. این فراخوانی حاوی یک شی Bundle است که حاوی کلید SdkSandboxManager#EXTRA_SURFACE_PACKAGE که مقدار مرتبط آن SurfacePackage درخواستی است.
 params ارسال شده باید حاوی کلیدهای زیر باشند: EXTRA_WIDTH_IN_PIXELS ، SdkSandboxManager#EXTRA_HEIGHT_IN_PIXELS ، SdkSandboxManager#EXTRA_DISPLAY_ID و SdkSandboxManager#EXTRA_HOST_TOKEN . اگر هر یک از این کلیدها مفقود یا نامعتبر باشد، یک IllegalArgumentException پرتاب می شود.
 این API ممکن است فقط زمانی فراخوانی شود که تماس گیرنده در پیش زمینه در حال اجرا است. تماسهای پسزمینه منجر به بازگشت RequestSurfacePackageException در receiver میشود.
| پارامترها | |
|---|---|
| sdkName | String: نام SDK بارگیری شده در جعبه SDK. این مقدار نمی تواندnullباشد. | 
| params | Bundle: پارامترهایی که برنامه کلاینت به SDK منتقل می کند. این مقدار نمی تواندnullباشد. | 
| callbackExecutor | Executor:Executorکه در آن فراخوانی برگشتی فراخوانی می شود این مقدار نمی تواندnullباشد . رویدادهای پاسخ به تماس و شنونده از طریق اینExecutorارسال میشوند و راهی آسان برای کنترل رشته مورد استفاده ارائه میدهند. برای ارسال رویدادها از طریق رشته اصلی برنامه خود، می توانید ازContext.getMainExecutor()استفاده کنید. در غیر این صورت، یکExecutorارائه دهید که به یک موضوع مناسب ارسال می کند. | 
| receiver | OutcomeReceiver: این یا یکBundleرا در صورت موفقیت برمی گرداند که حاوی کلیدSdkSandboxManager#EXTRA_SURFACE_PACKAGEبا مقدارSurfacePackageیاRequestSurfacePackageExceptionدر صورت شکست است. این مقدار نمی تواندnullباشد. | 
| پرتاب می کند | |
|---|---|
| IllegalArgumentException | اگر paramsشامل تمام کلیدهای مورد نیاز نباشد. | 
startSdkSandboxActivity
public void startSdkSandboxActivity (Activity fromActivity, IBinder sdkActivityToken)
یک Activity در جعبه ایمنی SDK شروع می کند.
 این تابع یک Activity جدید را در همان وظیفه از fromActivity ارسال شده شروع میکند و آن را به SDK که sdkActivityToken تصویب شده را به اشتراک گذاشته است، ارسال میکند که درخواستی از آن SDK برای بیان این Activity شناسایی میکند.
 Activity در موارد زیر شروع نمی شود:
- برنامه ای که این API را فراخوانی می کند در پس زمینه است.
-  sdkActivityTokenارسال شده به درخواست یکActivityاز SDK که آن را با برنامه تماس گیرنده به اشتراک گذاشته است، نگاشت نمی شود.
-  SDK که sdkActivityTokenتصویب شده را به اشتراک گذاشت، درخواست خود را برای اینActivityحذف کرد.
-  Activitysandbox قبلا ایجاد شده است.
| پارامترها | |
|---|---|
| fromActivity | Activity: ازActivityبرای شروعActivitysandbox جدید با فراخوانیActivity#startActivity(Intent)در مقابل آن استفاده میشود. این مقدار نمی تواندnullباشد. | 
| sdkActivityToken | IBinder: شناسه ای که توسط SDK کهActivityرا درخواست می کند به اشتراک گذاشته می شود. این مقدار نمی تواندnullباشد. | 
unloadSdk
public void unloadSdk (String sdkName)
یک SDK را که قبلاً توسط تماس گیرنده بارگیری شده است، بارگیری می کند.
 تضمینی وجود ندارد که حافظه اختصاص داده شده برای این SDK بلافاصله آزاد شود. همه تماسهای بعدی به requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) برای sdkName داده شده با شکست مواجه میشوند.
 این API ممکن است فقط زمانی فراخوانی شود که تماس گیرنده در پیش زمینه در حال اجرا است. تماسها از پسزمینه منجر به ایجاد یک SecurityException میشوند.
| پارامترها | |
|---|---|
| sdkName | String: نام SDK که باید بارگیری شود. این مقدار نمی تواندnullباشد. | 
unregisterAppOwnedSdkSandboxInterface
public void unregisterAppOwnedSdkSandboxInterface (String name)
ERROR(/AppOwnedSdkSandboxInterfaces) را برای فرآیند برنامه لغو ثبت می کند.
| پارامترها | |
|---|---|
| name | String: نامی که AppOwnedSdkSandboxInterface تحت آن ثبت شده است. این مقدار نمی تواندnullباشد. | 
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
