Che cosa ha fatto iOS prima del multitasking?

7

C'era un commutatore di app o hai dovuto interrompere un'applicazione e avviarne una nuova?

    
posta Ian Warburton 31.08.2016 - 16:45
fonte

4 risposte

14

Lo switcher dell'app è venuto con multitasking limitato. Prima di ciò, hai premuto il tasto Home e il programma frontale si è fermato.

    
risposta data 31.08.2016 - 16:57
fonte
23

FWIW, Apple ha sempre consentito ad alcune delle proprie app o servizi di persistere in background, ovvero il telefono, la posta, le notifiche push, Trova il mio iPhone e così via, in base alle necessità e alle funzionalità.

Una cosa da considerare è che il multitasking oggi su iOS è ancora limitato, soprattutto se confrontato con i sistemi operativi desktop (e forse con alcuni ambienti Android).

A partire da iOS 4, Apple ti dà l'illusione che tutte le tue app siano in esecuzione creando l'app switcher. Mentre alcune app potrebbero essere ancora in esecuzione, la maggior parte di esse si trova in modalità di ibernazione, a seconda delle attività in background registrate per l'esecuzione e della RAM disponibile.

Il ciclo di vita dell'app si è generalmente comportato in questo modo sin dal primo giorno:

  • L'utente tocca l'icona dell'app
  • Viene visualizzata la schermata di avvio
  • La prima schermata (vista) è caricata
  • L'utente fa cose con l'app
  • L'utente preme il pulsante home (o, con versioni successive, lo schermo toccato di un'altra app)
  • L'app aperta in precedenza segnala che non è più in primo piano
  • L'app riceve un segnale che sta per essere sospeso
  • L'app è sospesa (stato salvato nella RAM)
  • Lo stato dell'app viene spostato da RAM a disco (flash) quando la RAM si riempie
  • L'utente ritorna all'app
  • Se lo stato è abbastanza recente, lo stato viene ricaricato dalla RAM o dal disco
  • Se lo stato è obsoleto, l'app si riavvia fresca

Le sfumature nel modo in cui lo stato viene gestito sono cambiate nel corso degli anni, e agli sviluppatori è stato dato sempre più controllo su ciò che possono fare tra gli stati.

Quando le persone passano e "chiudono forzatamente" tutte le loro app, in sostanza eliminano qualsiasi stato salvato dall'app e uccidono eventuali attività in background avviate dall'app. Molti pensano che stiano contribuendo a ridurre il consumo della batteria e mantenere pulita la RAM, ma Craig Federighi ha sottolineato che così facendo possono effettivamente causare un maggiore consumo di batteria, dal momento che la CPU sta facendo di più per riaprire quelle app ogni volta invece di limitarsi a portarle fuori stasi.

Anche da iOS 4, agli sviluppatori è ora consentito creare attività che possono persistere anche se un'app è stata sospesa, come la riproduzione audio, il monitoraggio del traffico di rete (VoIP), l'aggiornamento dei dati in background e gli aggiornamenti di posizione. Questo è efficace perché solo una parte dell'app è in esecuzione e utilizza risorse.

Man mano che i dispositivi diventano più potenti (più CPU, più RAM, più spazio di archiviazione, batteria più grande) e man mano che il codice diventa più efficiente, queste attività aggiuntive si dimostrano meno drastiche sulle risorse. Cose più recenti come i widget e le prossime estensioni Siri, iMessage e CallKit possono far sembrare che le app popolari stiano facendo sempre qualcosa in background.

    
risposta data 31.08.2016 - 18:18
fonte
7

Inizialmente, iOS non aveva il multitasking. Il loro primo tentativo è stato nel 2010 (sacra schifezza!). L'iPhone non aveva abbastanza RAM e non era ottimizzato per questo. Nel 2010, Apple ha abilitato le app di base al multitasking, ma non a terze parti. Ricordo che il jailbreak del mio dispositivo è stato bypassato per consentire a tutte le app di eseguire il multitasking, ma era un bug. iOS ha fatto molta strada alla gente, con elaborazione a 64 bit e una migliore gestione della memoria.

Per ulteriori informazioni, consulta l'articolo Wikipedia .

    
risposta data 31.08.2016 - 17:34
fonte
1

Innanzitutto --- iOS essendo un gusto Unix, molto simile al Mac OS, è SEMPRE stato "multitasking" nel senso più profondo. Molti processi vengono eseguiti contemporaneamente sul dispositivo iOS.

Ciò che era limitato è l'INTERAZIONE UTENTE con i programmi. L'utente non può interagire con più di un programma in un dato momento.

Inoltre, anche nei vecchi tempi, dove era necessario premere "home" per passare da un'applicazione all'altra, la vecchia app NON era stata uccisa. È stato spostato "sullo sfondo", il che significa che non ha accesso allo schermo, alla tastiera, alla fotocamera e così via e può mantenere solo pochissime risorse di sistema mentre è in background.

Per chiudere completamente un'app per iOS è necessario toccare due volte il pulsante Home e quando tutte le app in esecuzione hanno iniziato a tremare, è possibile premere la piccola "x" per eliminarle una alla volta. Solo allora le app sono state davvero uccise.

Il motivo di questa decisione relativa all'interfaccia utente era che solo in questo modo Apple poteva ottenere una buona reattività dell'interfaccia utente e la durata della batteria, con le risorse di sistema molto limitate dei dispositivi iOS meno recenti.

Da allora la situazione non è molto cambiata - solo in scenari specifici, le applicazioni in background ricevono poche risorse in più per andare avanti (networking in sottofondo, riproduzione audio in BG, picture-in-picture e così via ).

Il sistema è multitasking come sempre, ma l'interfaccia utente consente di visualizzare più complicati scenari di app più di uno contemporaneamente all'utente.

    
risposta data 07.09.2016 - 08:57
fonte

Leggi altre domande sui tag