Aplikasi Instan adalah fitur utama Android 10, sehingga sangat penting agar aplikasi tersebut berfungsi dengan benar. Aplikasi Instan diinstal secara implisit, sehingga memiliki kumpulan kemampuan terbatas dan berjalan di sandbox keamanan yang lebih ketat. Karena sifatnya yang tersebar luas dari batasan ini, setiap bagian sistem berisiko tidak berfungsi dengan baik dengan Aplikasi Instan. Subkumpulan pengujian CTS dibuat untuk memastikan bahwa perilaku yang diizinkan oleh Aplikasi Instan berfungsi. Ide utamanya adalah meminimalkan pertumbuhan ukuran CTS dengan mengisolasi kumpulan pengujian minimum untuk di-port. CTS yang berjalan dalam mode Aplikasi Instan berarti menginstal APK pengujian sebagai Aplikasi Instan dan menjalankan pengujian.
Pembatasan Aplikasi Instan
Aplikasi Instan tidak diinstal oleh pengguna, sehingga aplikasi tersebut berjalan di sandbox terbatas dengan batasan berikut:
- Hanya dapat menyimpan izin tertentu.
- Tidak dapat melihat aplikasi lain kecuali jika aplikasi tersebut ditandai sebagai terlihat oleh Aplikasi Instan.
- Hanya dapat mengakses setelan sistem tertentu.
- Hanya dapat mengakses properti sistem tertentu.
- Tidak dapat mengekspos layanan/penyedia.
- Dapat menerima dan mengirim dengan aturan khusus seputar siaran.
Selain itu, Aplikasi Instan harus memilih untuk mengizinkan sandbox keamanan baru menambahkan lebih banyak batasan. Berbagai perilaku khusus di sekitar Aplikasi Instan ini memotong seluruh platform, sehingga perlu ada cara untuk memvalidasi bahwa Aplikasi Instan berfungsi seperti yang diharapkan untuk semua perangkat dalam ekosistem.
Pengujian yang berjalan dalam mode Aplikasi Instan
Tidak semua modul CTS memiliki pengujian yang berlaku untuk Aplikasi Instan. Jika fungsi yang diuji oleh modul memiliki interaksi dengan server sistem, pengujian ini harus dijalankan dalam mode Aplikasi Instan. Misalnya, pengujian OpenGL tidak berinteraksi dengan server sistem sehingga tidak perlu menjalankannya dalam mode Aplikasi Instan, sedangkan pengujian aksesibilitas berinteraksi dengan server sistem, tetapi perlu menjalankannya dalam mode Aplikasi Instan.
Selain mengidentifikasi modul yang berlaku, pengguna perlu menentukan pengujian mana dalam modul ini yang relevan. Misalnya, menguji perilaku khusus layanan untuk arsitektur plug-in (misalnya, AccessibilityService) tidak berlaku untuk mode Instant App karena Instant App tidak dapat mengekspos layanan ke aplikasi lain (termasuk platform) saat pengujian yang memvalidasi perilaku sisi aplikasi berlaku untuk mode Instant App. Contoh lainnya adalah pengujian yang memvalidasi perilaku di balik izin yang tidak dapat disimpan oleh Aplikasi Instan tidak relevan dalam mode Aplikasi Instan. Ada serangkaian pengujian yang hanya berlaku untuk Aplikasi Instan yang memvalidasi aturan tentang perilakunya, misalnya, tidak mengekspos layanan, atau tidak melihat aplikasi lain. Biasanya, file ini sudah ditulis dan tidak memerlukan porting.
Kegagalan pengujian dalam mode Aplikasi Instan
Jika pengujian gagal karena memvalidasi fungsi yang tidak dapat diakses oleh Aplikasi Instan, pengujian tersebut
tidak berlaku dalam mode Aplikasi Instan. Tandai pengujian agar hanya berjalan dalam mode Aplikasi Lengkap dengan menganotasinya
dengan @AppModeFull
. Anda dapat menerapkan anotasi ini ke level class untuk mengecualikan semua
pengujian di dalamnya.
Jika pengujian gagal karena beberapa fungsi yang dapat diakses oleh Aplikasi Instan rusak, laporkan bug.
Pemecahan masalah
Jika pengujian Anda gagal dengan pesan Gagal menginstal MyCtsModule.apk di PERALATAN. Alasan: '-116', cari pesan PackageManager di logcat. Misalnya, jika muncul pesan Can't replace Full App with Instant App: your_app, adb akan meng-uninstal aplikasi Anda terlebih dahulu.