CTS untuk Aplikasi Instan

Instant App 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 uji sebagai Aplikasi Instan dan menjalankan pengujian.

Pembatasan Aplikasi Instan

Aplikasi Instan tidak diinstal oleh pengguna, sehingga 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 seputar Aplikasi Instan ini mencakup 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 Instant Apps

Tidak semua modul CTS memiliki pengujian yang berlaku untuk Aplikasi Instan. Jika fungsi yang diuji oleh modul berinteraksi 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 Instant Apps, sedangkan pengujian aksesibilitas berinteraksi dengan server sistem, tetapi perlu menjalankannya dalam mode Instant Apps.

Selain mengidentifikasi modul yang berlaku, pengguna perlu menentukan pengujian mana dalam modul ini yang relevan. Misalnya, menguji perilaku khusus layanan untuk arsitektur yang dapat dicocokkan (misalnya, AccessibilityService) tidak berlaku untuk mode Aplikasi Instan karena Aplikasi Instan tidak dapat menampilkan layanan ke aplikasi lain (termasuk platform), sedangkan pengujian yang memvalidasi perilaku sisi aplikasi berlaku untuk mode Aplikasi Instan. 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 terkait perilakunya, misalnya, tidak mengekspos layanan, atau tidak melihat aplikasi lain. Biasanya, file ini sudah ditulis dan tidak memerlukan porting.

Kegagalan uji coba 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 tertulis Can't replace Full App with Instant App: your_app, maka adb uninstal aplikasi Anda terlebih dahulu.