IsolatedService

public abstract class IsolatedService
extends Service

java.lang.Object
   ↳ android.content.Context
     ↳ android.content.ContextWrapper
       ↳ android.app.Service
         ↳ android.adservices.ondevicepersonalization.IsolatedService


Class dasar untuk layanan yang dimulai oleh ODP pada panggilan ke OnDevicePersonalizationManager#execute(ComponentName, PersistableBundle, java.util.concurrent.Executor, OutcomeReceiver) dan berjalan dalam proses terisolasi. Layanan ini dapat menghasilkan konten yang akan ditampilkan di SurfaceView di aplikasi panggilan dan menulis hasil persisten ke penyimpanan di perangkat, yang dapat digunakan oleh Federated Analytics untuk analisis statistik lintas perangkat atau oleh Federated Learning untuk pelatihan model. Aplikasi klien menggunakan OnDevicePersonalizationManager untuk berinteraksi dengan IsolatedService.

Ringkasan

Konstanta turunan

Konstruktor publik

IsolatedService()

Metode publik

final EventUrlProvider getEventUrlProvider(RequestToken requestToken)

Menampilkan EventUrlProvider untuk permintaan saat ini.

final FederatedComputeScheduler getFederatedComputeScheduler(RequestToken requestToken)

Menampilkan FederatedComputeScheduler untuk permintaan saat ini.

final MutableKeyValueStore getLocalData(RequestToken requestToken)

Menampilkan Objek Akses Data untuk tabel LOCAL_DATA.

final LogReader getLogReader(RequestToken requestToken)

Menampilkan DAO untuk tabel REQUESTS dan EVENTS yang menyediakan akses ke baris yang dapat dibaca oleh IsolatedService.

final KeyValueStore getRemoteData(RequestToken requestToken)

Menampilkan Objek Akses Data untuk tabel REMOTE_DATA.

final UserData getUserData(RequestToken requestToken)

Menampilkan UserData yang disediakan platform untuk permintaan saat ini.

IBinder onBind(Intent intent)

Menangani binding ke IsolatedService.

void onCreate()

Membuat binder untuk IsolatedService.

abstract IsolatedWorker onRequest(RequestToken requestToken)

Menampilkan instance IsolatedWorker yang menangani permintaan klien.

Metode turunan

Konstruktor publik

IsolatedService

public IsolatedService ()

Metode publik

getEventUrlProvider

public final EventUrlProvider getEventUrlProvider (RequestToken requestToken)

Menampilkan EventUrlProvider untuk permintaan saat ini. EventUrlProvider menyediakan URL yang dapat disematkan dalam HTML. Saat HTML dirender dalam WebView, platform akan mencegat permintaan ke URL ini dan memanggil IsolatedWorker#onEvent(EventInput, Consumer).

Parameter
requestToken RequestToken: token buram yang mengidentifikasi permintaan saat ini ke layanan. Nilai ini tidak boleh null.

Hasil
EventUrlProvider EventUrlProvider yang menampilkan URL pelacakan peristiwa. Nilai ini tidak boleh null.

getFederatedComputeScheduler

public final FederatedComputeScheduler getFederatedComputeScheduler (RequestToken requestToken)

Menampilkan FederatedComputeScheduler untuk permintaan saat ini. FederatedComputeScheduler dapat digunakan untuk menjadwalkan dan membatalkan tugas komputasi gabungan. Komputasi gabungan mencakup federated learning dan tugas analisis gabungan.

Parameter
requestToken RequestToken: token buram yang mengidentifikasi permintaan saat ini ke layanan. Nilai ini tidak boleh null.

Hasil
FederatedComputeScheduler FederatedComputeScheduler yang menampilkan penjadwal tugas komputasi gabungan. Nilai ini tidak boleh null.

getLocalData

public final MutableKeyValueStore getLocalData (RequestToken requestToken)

Menampilkan Objek Akses Data untuk tabel LOCAL_DATA. Tabel LOCAL_DATA adalah penyimpanan nilai kunci persisten yang dapat digunakan layanan untuk menyimpan data apa pun. Konten tabel ini hanya dapat dilihat oleh layanan yang berjalan dalam proses terisolasi dan tidak dapat dikirim ke luar perangkat.

Parameter
requestToken RequestToken: token buram yang mengidentifikasi permintaan saat ini ke layanan. Nilai ini tidak boleh null.

Hasil
MutableKeyValueStore Objek MutableKeyValueStore yang memberikan akses ke tabel LOCAL_DATA. Metode dalam MutableKeyValueStore yang ditampilkan adalah operasi pemblokiran dan harus dipanggil dari thread pekerja, bukan thread utama atau thread binder. Nilai ini tidak boleh null.

getLogReader

public final LogReader getLogReader (RequestToken requestToken)

Menampilkan DAO untuk tabel REQUESTS dan EVENTS yang menyediakan akses ke baris yang dapat dibaca oleh IsolatedService.

Parameter
requestToken RequestToken: token buram yang mengidentifikasi permintaan saat ini ke layanan. Nilai ini tidak boleh null.

Hasil
LogReader Objek LogReader yang memberikan akses ke tabel REQUESTS dan EVENTS. Metode dalam LogReader yang ditampilkan adalah operasi pemblokiran dan harus dipanggil dari thread pekerja, bukan dari thread utama atau thread binder. Nilai ini tidak boleh null.

getRemoteData

public final KeyValueStore getRemoteData (RequestToken requestToken)

Menampilkan Objek Akses Data untuk tabel REMOTE_DATA. Tabel REMOTE_DATA adalah penyimpanan nilai kunci hanya baca yang berisi data yang didownload secara berkala dari endpoint yang dideklarasikan dalam tag di manifes ODP layanan, seperti yang ditunjukkan dalam contoh berikut.

<!-- 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>
 

Parameter
requestToken RequestToken: token buram yang mengidentifikasi permintaan saat ini ke layanan. Nilai ini tidak boleh null.

Hasil
KeyValueStore Objek KeyValueStore yang memberikan akses ke tabel REMOTE_DATA. Metode dalam KeyValueStore yang ditampilkan adalah operasi pemblokiran dan harus dipanggil dari thread pekerja, bukan thread utama atau thread binder. Nilai ini tidak boleh null.

getUserData

public final UserData getUserData (RequestToken requestToken)

Menampilkan UserData yang disediakan platform untuk permintaan saat ini.

Parameter
requestToken RequestToken: token buram yang mengidentifikasi permintaan saat ini ke layanan. Nilai ini tidak boleh null.

Hasil
UserData Objek UserData. Nilai ini dapat berupa null.

onBind

public IBinder onBind (Intent intent)

Menangani binding ke IsolatedService.

Parameter
intent Intent: Intent yang digunakan untuk mengikat ke layanan ini, seperti yang diberikan ke Context.bindService. Perhatikan bahwa tambahan apa pun yang disertakan dengan Intent pada saat itu tidak akan terlihat di sini. Nilai ini tidak boleh null.

Hasil
IBinder Nilai ini dapat berupa null.

onCreate

public void onCreate ()

Membuat binder untuk IsolatedService.

onRequest

public abstract IsolatedWorker onRequest (RequestToken requestToken)

Menampilkan instance IsolatedWorker yang menangani permintaan klien.

Parameter
requestToken RequestToken: token buram yang mengidentifikasi permintaan saat ini ke layanan yang harus diteruskan ke metode layanan yang bergantung pada status per permintaan. Nilai ini tidak boleh null.

Hasil
IsolatedWorker Nilai ini tidak boleh null.