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가 요청을 처리하는 데 필요한 작업을 실행합니다.

상속된 메서드

Object clone()

이 개체의 사본을 만들어 반환합니다.

boolean equals(Object obj)

일부 다른 개체가 이 개체와 '같은'지 여부를 나타냅니다.

void finalize()

가비지 컬렉션이 더 이상 객체에 관한 참조가 없다고 판단하는 경우 객체의 가비지 컬렉터에서 호출합니다.

final Class<?> getClass()

Object의 런타임 클래스를 반환합니다.

int hashCode()

객체의 해시 코드 값을 반환합니다.

final void notify()

이 객체의 모니터에서 대기 중인 단일 스레드의 대기 모드를 해제합니다.

final void notifyAll()

이 개체의 모니터에서 대기 중인 모든 스레드의 대기 모드를 해제합니다.

String toString()

객체의 문자열 표현을 반환합니다.

final void wait(long timeoutMillis, int nanos)

일반적으로 알림을 받거나 중단되어 절전 모드에서 해제될 때까지 또는 일정 시간이 경과할 때까지 현재 스레드가 대기하도록 합니다.

final void wait(long timeoutMillis)

일반적으로 알림을 받거나 중단되어 절전 모드에서 해제될 때까지 또는 일정 시간이 경과할 때까지 현재 스레드가 대기하도록 합니다.

final void wait()

일반적으로 알림을 받거나 중단되어 절전 모드에서 해제될 때까지 현재 스레드가 대기하도록 합니다.

공개 생성자

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