격리된 서비스

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의 인스턴스를 반환합니다.

상속된 메서드

공개 생성자

격리된 서비스

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일 수 없습니다.

사용자 데이터 가져오기

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일 수 있습니다.

생성

public void onCreate ()

IsolatedService의 바인더를 만듭니다.

요청 시

public abstract IsolatedWorker onRequest (RequestToken requestToken)

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

매개변수
requestToken RequestToken: 요청별 상태에 따라 달라지는 서비스 메서드에 전달해야 하는 서비스의 현재 요청을 식별하는 불투명 토큰입니다. 이 값은 null일 수 없습니다.

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