La maggior parte delle piattaforme mobili (come Android, iOS, Windows Phone 7 e credo che il nuovo WinRT) può uccidere i processi di applicazioni inattivi sotto pressione di memoria. Per evitare che ciò influisca sull'esperienza utente, le applicazioni dovrebbero salvare e ripristinare il loro stato man mano che il loro processo viene ucciso e riavviato.
Avere processi di applicazione uccisi in questo modo rende gli sviluppatori più difficili.
In varie occasioni ho visto un'app mobile che avrebbe:
- Torna alla schermata di benvenuto ogni volta che torno ad esso.
- Arresto anomalo del sistema quando torno ad esso (probabilmente accedendo ad uno stato che non esiste più dopo la morte del processo)
- Si comporta male quando torno indietro (a volte richiede un riavvio o task killer da risolvere)
- In caso contrario si comporterebbe diversamente in modo difficile da riprodurre (ad esempio, il servizio Android è stato ucciso e riavviato al momento errato )
Non capisco davvero perché questi sistemi operativi mobili siano progettati per uccidere le attività in questo modo, soprattutto perché rende lo sviluppo di applicazioni più difficile e soggetto a errori.
I sistemi operativi desktop non uccidono processi del genere. Scambiano le pagine di memoria inutilizzate nella memoria di massa. C'è una ragione per cui lo stesso approccio non viene utilizzato sui dispositivi mobili? L'hardware mobile è solo alcuni anni dietro l'hardware del PC in termini di prestazioni.
Sono sicuro che ci sono ottime ragioni per cui i sistemi operativi mobili sono progettati in questo modo. Se riesci a indicarmi un articolo o un post sul blog che spieghi questi motivi o possa darmi qualche idea, lo apprezzerei molto.