SandboxedSdkProvider

public abstract class SandboxedSdkProvider
extends Object

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


SDK 샌드박스가 로드된 SDK와 상호작용하는 데 사용할 수 있는 API를 캡슐화합니다.

SDK는 이 추상 클래스를 구현하여 SDK 샌드박스가 호출할 수 있는 진입점을 생성해야 합니다.

요약

공개 생성자

SandboxedSdkProvider()

공개 메서드

final void attachContext(Context context)

이후 getContext()를 사용하여 수신할 수 있는 SDK Context를 설정합니다.

void beforeUnloadSdk()

SDK가 로드 취소되기 전에 리소스를 확보하는 데 필요한 작업을 실행합니다.

final Context getContext()

이전에 SandboxedSdkProvider#attachContext를 통해 설정된 Context를 반환합니다.

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

뷰가 클라이언트 앱 프로세스에 원격으로 렌더링되도록 요청합니다.

abstract SandboxedSdk onLoadSdk(Bundle params)

SDK가 요청을 처리하는 데 필요한 작업을 실행합니다.

상속된 메서드

공개 생성자

SandboxedSdkProvider

public SandboxedSdkProvider ()

공개 메서드

attachContext

public final void attachContext (Context context)

이후 getContext()를 사용하여 수신할 수 있는 SDK Context를 설정합니다. 이는 onLoadSdk(Bundle)가 호출되기 전에 호출됩니다. 이 메서드가 호출될 때까지 SandboxedSdkProvider#getContext가 null을 반환하므로 그 전에 Context가 필요한 작업을 실행하면 안 됩니다.

기본 컨텍스트가 이미 설정된 경우 IllegalStateException이 발생합니다.

매개변수
context Context: 새 기본 컨텍스트입니다. 이 값은 null일 수 없습니다.

beforeUnloadSdk

public void beforeUnloadSdk ()

SDK가 로드 취소되기 전에 리소스를 확보하는 데 필요한 작업을 실행합니다.

이 함수는 SDK를 로드 취소하기 전에 SDK 샌드박스 관리자에 의해 호출됩니다. SDK는 이전에 SandboxedSdk.getInterface()를 통해 클라이언트에 반환된 바인더에서의 모든 호출에 실패해야 합니다.

SDK는 I/O, 네트워크 호출과 같은 장기 실행 작업을 실행하면 안 됩니다.

getContext

public final Context getContext ()

이전에 SandboxedSdkProvider#attachContext를 통해 설정된 Context를 반환합니다. 이전에 설정된 컨텍스트가 없는 경우 null을 반환합니다.

반환 값
Context

getView

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

뷰가 클라이언트 앱 프로세스에 원격으로 렌더링되도록 요청합니다.

반환 ViewSurfacePackage로 래핑됩니다. 결과 SurfacePackage는 클라이언트 애플리케이션으로 다시 전송됩니다.

SDK는 I/O, 네트워크 호출과 같은 장기 실행 작업을 실행하면 안 됩니다. 장기 실행 작업을 실행할 경우 SDK가 클라이언트의 요청을 수신하지 못할 수 있습니다.

매개변수
windowContext Context: 뷰를 표시하기 위한 디스플레이의 Context입니다. 이 값은 null일 수 없습니다.

params Bundle: 뷰를 요청하는 클라이언트 애플리케이션에서 전달된 매개변수 목록입니다. 이 값은 null일 수 없습니다.

width int: 반환된 뷰는 이 너비의 창에 있는 것처럼 픽셀 단위로 표시됩니다.

height int: 반환된 뷰는 이 높이의 창에 있는 것처럼 픽셀 단위로 표시됩니다.

반환 값
View 뷰를 요청하는 클라이언트 애플리케이션에 SDK 샌드박스가 전달하는 View입니다. 이 값은 null일 수 없습니다.

onLoadSdk

public abstract SandboxedSdk onLoadSdk (Bundle params)

SDK가 요청을 처리하는 데 필요한 작업을 실행합니다.

이 함수는 SDK를 로드한 후 SDK 샌드박스에서 호출합니다.

SDK는 예정된 요청을 처리할 수 있도록 작업을 실행해야 합니다. SDK는 I/O, 네트워크 호출과 같은 장기 실행 작업을 실행하면 안 됩니다. 장기 실행 작업을 실행할 경우 SDK가 클라이언트의 요청을 수신하지 못할 수 있습니다. 또한 SDK 샌드박스에 다른 SDK가 로드되어야 하는 초기화도 실행하면 안 됩니다.

이 메서드를 호출하기 전에 SDK는 Context 객체가 필요한 어떤 작업도 실행하면 안 됩니다.

매개변수
params Bundle: SDK를 로드할 때 클라이언트에서 전달된 매개변수 목록입니다. 비워 둘 수 있습니다. 이 값은 null일 수 없습니다.

반환 값
SandboxedSdk 클라이언트에 다시 전달되는 SandboxedSdk를 반환합니다. SandboxedSdk 객체를 만드는 데 사용되는 IBinder는 클라이언트가 SDK를 호출하는 데 사용됩니다. 이 값은 null일 수 없습니다.

생성 값
LoadSdkException