Mengamati perilaku yang sangat aneh ini dengan aplikasi Android. Skenario perkiraan:
- Versi A diinstal pada perangkat
- Aplikasi berfungsi dengan baik
- Versi B diinstal pada perangkat (B> A)
- Aplikasi berfungsi dengan baik
- Perangkat mati karena baterai habis
- Perangkat dihidupkan
- Versi A dari aplikasi berjalan pada perangkat lagi
Informasi tambahan:
- Aplikasi tidak didistribusikan melalui Google Play, tetapi diinstal di tempat melalui koneksi USB (CATATAN: aplikasi berjalan dalam produksi; itu tidak diinstal melalui AndroidStudio).
- Kios
- Android 5.1 (API 22)
Saya kira saya punya dua pertanyaan:
- Mengapa perangkat ini cache versi APK yang lebih lama (dan di mana ia menyimpannya)?
- Dalam keadaan apa aplikasi dapat memutar kembali ke versi sebelumnya seperti itu?
Edit (informasi lebih lanjut):
- Sepertinya setelah APK diputar kembali, aplikasi kehilangan beberapa izin (bahkan mungkin semua). Fungsi yang berfungsi sebelum roll-back berhenti bekerja karena SecurityException dilempar dari API Android. Ini terjadi meskipun versi Android ini belum memiliki izin runtime!
- Setelah browsing filesystem tablet, saya memang melihat APK beberapa aplikasi yang berada di bawah jalur yang sama:
/data/app/com.myapp-2/base.apk,/data/app/com.myapp-3/base.apk, dll
Hipotesis saya saat ini adalah bahwa pengurasan baterai menyebabkan tablet "mengatur ulang" keadaannya (misalnya, jam juga disetel ulang), dan ketika diaktifkan kembali, ini membingungkan antara APK aplikasi dan memuat yang salah.
Namun, saya tidak tahu mengapa itu melakukan itu, atau bagaimana mencegah perilaku ini.