CTS untuk Aplikasi Instan

Aplikasi Instan adalah fitur utama dari 10, jadi penting agar aplikasi tersebut berfungsi dengan baik. Aplikasi Instan diinstal secara implisit, sehingga memiliki serangkaian kemampuan terbatas dan dijalankan di sandbox keamanan yang lebih ketat. Karena sifat pembatasan ini yang meluas, setiap bagian sistem berisiko tidak berfungsi dengan baik dengan Aplikasi Instan. Subset pengujian CTS dibuat untuk memastikan bahwa perilaku yang diizinkan oleh Aplikasi Instan berfungsi. Ide utamanya adalah meminimalkan pertumbuhan ukuran CTS dengan mengisolasi serangkaian pengujian minimal ke 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 Instan dijalankan di sandbox terbatas dengan batasan berikut:

  • Hanya dapat menampung izin tertentu.
  • Tidak dapat melihat aplikasi lain kecuali aplikasi tersebut ditandai sebagai terlihat oleh Aplikasi Instan.
  • Hanya dapat mengakses pengaturan 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 ikut serta dalam mengizinkan sandbox keamanan baru untuk menambahkan lebih banyak batasan. Berbagai macam perilaku khusus seputar Aplikasi Instan terjadi di seluruh platform, sehingga perlu ada cara untuk memvalidasi bahwa Aplikasi Instan berfungsi seperti yang diharapkan untuk semua perangkat di ekosistem.

Pengujian berjalan dalam mode Aplikasi Instan

Tidak semua modul CTS memiliki pengujian yang berlaku untuk Aplikasi Instan. Jika fungsionalitas yang diuji oleh modul berinteraksi dengan server sistem, maka pengujian ini harus dijalankan dalam mode Aplikasi Instan. Misalnya, pengujian OpenGL tidak berinteraksi dengan server sistem sehingga tidak perlu menjalankannya dalam mode Aplikasi Instan sementara pengujian aksesibilitas berinteraksi dengan server sistem namun ada kebutuhan untuk menjalankannya dalam mode Aplikasi Instan.

Selain mengidentifikasi modul mana yang dapat diterapkan, pengguna juga perlu menentukan pengujian mana dalam modul ini yang relevan. Misalnya, pengujian perilaku khusus layanan untuk arsitektur pluggable (misalnya, AccessibilityService) tidak berlaku untuk mode Aplikasi Instan karena Aplikasi Instan tidak dapat mengekspos layanan ke aplikasi lain (termasuk platform) sementara pengujian yang memvalidasi perilaku sisi aplikasi tidak berlaku. berlaku untuk mode Aplikasi Instan. Contoh lainnya adalah pengujian yang memvalidasi perilaku di balik izin yang tidak dapat dimiliki oleh Aplikasi Instan, tidak relevan dalam mode Aplikasi Instan. Ada serangkaian pengujian yang hanya berlaku untuk Aplikasi Instan yang memvalidasi aturan seputar perilakunya, misalnya, tidak mengekspos layanan, atau tidak melihat aplikasi lain. Biasanya, ini sudah ditulis dan tidak memerlukan porting.

Kegagalan pengujian dalam mode Aplikasi Instan

Jika pengujian gagal karena memvalidasi fungsionalitas yang tidak dapat diakses oleh Aplikasi Instan, maka pengujian tersebut tidak berlaku dalam mode Aplikasi Instan. Tandai pengujian untuk dijalankan hanya dalam mode Aplikasi Lengkap dengan memberi anotasi dengan @AppModeFull . Anda dapat menerapkan anotasi ini ke tingkat kelas untuk mengecualikan semua tes di dalamnya.

Jika pengujian gagal karena beberapa fungsi yang dapat diakses oleh Aplikasi Instan rusak, laporkan bug .

Penyelesaian masalah

Jika pengujian Anda gagal dengan Gagal menginstal MyCtsModule.apk di PERANGKAT. Alasan: '-116' , cari pesan PackageManager di logcat. Misalnya, jika tertulis Can't replace Full App with Instant App: your_app , maka adb uninstall aplikasi Anda terlebih dahulu.