IsolatedService

public abstract class IsolatedService
extends Service

java.lang.Object
   ↳ android.content.Context
     ↳ android.content.ContextWrapper
       ↳ android.app.Service를 사용합니다.
         ↳ android.adservices.ondevicepersonalization.IsolatedService


OnDevicePersonalizationManager#execute(ComponentName, PersistableBundle, java.util.concurrent.Executor, OutcomeReceiver) 호출 시 ODP에서 시작되고 격리된 프로세스에서 실행되는 서비스의 기본 클래스입니다. 이 서비스는 호출 앱의 SurfaceView에 표시할 콘텐츠를 생성하고 온디바이스 저장소에 영구 결과를 쓸 수 있습니다. 이 결과는 제휴 분석에서 교차 기기 통계 분석을 위해 사용하거나 제휴 학습에서 모델 학습을 위해 사용할 수 있습니다. 클라이언트 앱은 OnDevicePersonalizationManager를 사용하여 IsolatedService와 상호작용합니다.

요약

상속된 상수

공개 생성자

IsolatedService()

공개 메서드

final EventUrlProvider getEventUrlProvider(RequestToken requestToken)

현재 요청의 EventUrlProvider를 반환합니다.

final FederatedComputeScheduler getFederatedComputeScheduler(RequestToken requestToken)

현재 요청의 FederatedComputeScheduler를 반환합니다.

final MutableKeyValueStore getLocalData(RequestToken requestToken)

LOCAL_DATA 테이블의 데이터 액세스 객체를 반환합니다.

final LogReader getLogReader(RequestToken requestToken)

IsolatedService에서 읽을 수 있는 행에 대한 액세스를 제공하는 REQUESTS 및 EVENTS 테이블의 DAO를 반환합니다.

final KeyValueStore getRemoteData(RequestToken requestToken)

REMOTE_DATA 테이블의 데이터 액세스 객체를 반환합니다.

final UserData getUserData(RequestToken requestToken)

현재 요청에 대해 플랫폼에서 제공하는 UserData를 반환합니다.

IBinder onBind(Intent intent)

IsolatedService에 대한 바인딩을 처리합니다.

void onCreate()

IsolatedService의 바인더를 만듭니다.

abstract IsolatedWorker onRequest(RequestToken requestToken)

클라이언트 요청을 처리하는 IsolatedWorker 인스턴스를 반환합니다.

상속된 메서드

공개 생성자

IsolatedService

public IsolatedService ()

공개 메서드

getEventUrlProvider

public final EventUrlProvider getEventUrlProvider (RequestToken requestToken)

현재 요청의 EventUrlProvider를 반환합니다. EventUrlProvider는 HTML에 삽입할 수 있는 URL을 제공합니다. HTML이 WebView에서 렌더링되면 플랫폼은 이러한 URL에 대한 요청을 가로채고 IsolatedWorker#onEvent(EventInput, Consumer)를 호출합니다.

매개변수
requestToken RequestToken: 서비스에 대한 현재 요청을 식별하는 불투명 토큰입니다. 이 값은 null일 수 없습니다.

반환 값
EventUrlProvider 이벤트 추적 URL을 반환하는 EventUrlProvider입니다. 이 값은 null일 수 없습니다.

getFederatedComputeScheduler

public final FederatedComputeScheduler getFederatedComputeScheduler (RequestToken requestToken)

현재 요청의 FederatedComputeScheduler를 반환합니다. FederatedComputeScheduler는 제휴 계산 작업을 예약하고 취소하는 데 사용할 수 있습니다. 제휴 계산에는 제휴 학습 및 제휴 분석 작업이 포함됩니다.

매개변수
requestToken RequestToken: 서비스에 대한 현재 요청을 식별하는 불투명 토큰입니다. 이 값은 null일 수 없습니다.

반환 값
FederatedComputeScheduler 제휴 계산 작업 스케줄러를 반환하는 FederatedComputeScheduler입니다. 이 값은 null일 수 없습니다.

getLocalData

public final MutableKeyValueStore getLocalData (RequestToken requestToken)

LOCAL_DATA 테이블의 데이터 액세스 객체를 반환합니다. LOCAL_DATA 테이블은 서비스에서 데이터를 저장하는 데 사용할 수 있는 영구 키-값 저장소입니다. 이 테이블의 콘텐츠는 격리된 프로세스에서 실행되는 서비스에만 표시되며 기기 외부로 전송할 수 없습니다.

매개변수
requestToken RequestToken: 서비스에 대한 현재 요청을 식별하는 불투명 토큰입니다. 이 값은 null일 수 없습니다.

반환 값
MutableKeyValueStore LOCAL_DATA 테이블에 대한 액세스를 제공하는 MutableKeyValueStore 객체입니다. 반환된 MutableKeyValueStore의 메서드는 차단 작업이므로 기본 스레드나 바인더 스레드가 아닌 작업자 스레드에서 호출해야 합니다. 이 값은 null일 수 없습니다.

getLogReader

public final LogReader getLogReader (RequestToken requestToken)

IsolatedService에서 읽을 수 있는 행에 대한 액세스를 제공하는 REQUESTS 및 EVENTS 테이블의 DAO를 반환합니다.

매개변수
requestToken RequestToken: 서비스에 대한 현재 요청을 식별하는 불투명 토큰입니다. 이 값은 null일 수 없습니다.

반환 값
LogReader REQUESTS 및 EVENTS 테이블에 대한 액세스를 제공하는 LogReader 객체입니다. 반환된 LogReader의 메서드는 차단 작업이므로 기본 스레드나 바인더 스레드가 아닌 작업자 스레드에서 호출해야 합니다. 이 값은 null일 수 없습니다.

getRemoteData

public final KeyValueStore getRemoteData (RequestToken requestToken)

REMOTE_DATA 테이블의 데이터 액세스 객체를 반환합니다. REMOTE_DATA 테이블은 다음 예와 같이 서비스의 ODP 매니페스트에 있는 태그에 선언된 엔드포인트에서 주기적으로 다운로드되는 데이터가 포함된 읽기 전용 키-값 저장소입니다.

<!-- Contents of res/xml/OdpSettings.xml -->
 <on-device-personalization>
 <!-- Name of the service subclass -->
 <service "com.example.odpsample.SampleService">
   <!-- If this tag is present, ODP will periodically poll this URL and
    download content to populate REMOTE_DATA. Adopters that do not need to
    download content from their servers can skip this tag. -->
   <download-settings url="https://example.com/get" />
 </service>
 </on-device-personalization>
 

매개변수
requestToken RequestToken: 서비스에 대한 현재 요청을 식별하는 불투명 토큰입니다. 이 값은 null일 수 없습니다.

반환 값
KeyValueStore REMOTE_DATA 테이블에 대한 액세스를 제공하는 KeyValueStore 객체입니다. 반환된 KeyValueStore의 메서드는 차단 작업이므로 기본 스레드나 바인더 스레드가 아닌 작업자 스레드에서 호출해야 합니다. 이 값은 null일 수 없습니다.

getUserData

public final UserData getUserData (RequestToken requestToken)

현재 요청에 대해 플랫폼에서 제공하는 UserData를 반환합니다.

매개변수
requestToken RequestToken: 서비스에 대한 현재 요청을 식별하는 불투명 토큰입니다. 이 값은 null일 수 없습니다.

반환 값
UserData UserData 객체 이 값은 null일 수 있습니다.

onBind

public IBinder onBind (Intent intent)

IsolatedService와의 결합을 처리합니다.

매개변수
intent Intent: 이 서비스에 바인딩하는 데 사용된 인텐트로, Context.bindService에 제공됩니다. 이 시점에 인텐트에 포함된 추가 항목은 여기에 표시되지 않습니다. 이 값은 null일 수 없습니다.

반환 값
IBinder 이 값은 null일 수 있습니다.

onCreate

public void onCreate ()

IsolatedService의 바인더를 만듭니다.

onRequest

public abstract IsolatedWorker onRequest (RequestToken requestToken)

클라이언트 요청을 처리하는 IsolatedWorker 인스턴스를 반환합니다.

매개변수
requestToken RequestToken: 서비스에 대한 현재 요청을 식별하는 불투명 토큰으로, 요청별 상태에 종속되는 서비스 메서드에 전달되어야 합니다. 이 값은 null일 수 없습니다.

반환 값
IsolatedWorker 이 값은 null일 수 없습니다.