Quan sát hành vi rất lạ này với ứng dụng Android. Kịch bản gần đúng:
- Phiên bản A được cài đặt trên thiết bị
- Ứng dụng hoạt động ổn
- Phiên bản B được cài đặt trên thiết bị (B> A)
- Ứng dụng hoạt động ổn
- Thiết bị tắt do hết pin
- Thiết bị đã bật
- Phiên bản A của ứng dụng chạy lại trên thiết bị
Thông tin bổ sung:
- Ứng dụng không được phân phối qua Google Play, nhưng được cài đặt tại chỗ thông qua kết nối USB (LƯU Ý: ứng dụng chạy trong sản xuất; nó không được cài đặt qua AndroidStudio).
- Ki-ốt
- Android 5.1 (API 22)
Tôi đoán tôi đã có hai câu hỏi:
- Tại sao thiết bị lưu trữ phiên bản cũ hơn của APK (và nó đã lưu bộ đệm ở đâu)?
- Trong trường hợp nào các ứng dụng có thể quay trở lại các phiên bản trước như vậy?
Chỉnh sửa (thêm thông tin):
- Có vẻ như sau khi APK được khôi phục, ứng dụng sẽ mất một số quyền (thậm chí có thể là tất cả). Chức năng hoạt động trước khi khôi phục ngừng hoạt động do SecurityException bị ném khỏi API của Android. Điều này xảy ra ngay cả khi phiên bản Android này chưa có quyền chạy!
- Sau khi duyệt hệ thống tập tin máy tính bảng của, tôi thực sự thấy gói ứng dụng nhiều ứng dụng của cư dưới đường dẫn tương tự:
/data/app/com.myapp-2/base.apk,/data/app/com.myapp-3/base.apkvv
Giả thuyết hiện tại của tôi là việc hết pin khiến máy tính bảng "thiết lập lại" trạng thái của nó (ví dụ, đồng hồ cũng được đặt lại) và khi được cấp lại, nó nhầm lẫn giữa các APK của ứng dụng và tải sai.
Tuy nhiên, tôi không biết tại sao nó sẽ làm điều đó, hoặc làm thế nào để ngăn chặn hành vi này.