O Fraser Speirs σε ένα πολύ ενδιαφέρον δημοσίευμά του εξηγεί τι πραγματικά είναι το multitasking στο iOS και απομυθοποιεί ορισμένες συμβουλές για την αναγκαιότητα του κλεισίματος εφαρμογών από την multitasking bar.
Το αρχικό δημοσίευμα του Speirs μπορείτε να το διαβάσετε εδώ αλλά παρακάτω παραθέτω την (ελεύθερη) ελληνική μετάφραση που ελπίζω να σας φανεί ιδιαίτερα χρήσιμη στο να κατανοήσουμε όλοι τον τρόπο λειτουργίας του multitasking στο iOS.
Υπάρχει μια συμβουλή για το iOS που είναι πολύ διαδεδομένη αλλά είναι λάθος. Η συμβουλή αυτή είναι η εξής:
“Όλες οι εφαρμογές στην multitasking bar στο iOS είναι ενεργές και καθυστερούν την συσκευή, τρώνε μνήμη και μειώνουν την αυτονομία. Για να βελτιστοποιήσετε την απόδοση και επίδοση της συσκευής πρέπει να τις κλείσετε χειροκίνητα.”
Η παραπάνω πρόταση είναι πέρα για πέρα λανθασμένη για τους λόγους που θα δούμε παρακάτω. Να είμαστε ξεκάθαροι: Η multitasking bar περιέχει μια λίστα με όλες τις εφαρμογές που έχετε χρησιμοποιήσει πρόσφατα και όχι με τις εφαρμογές που είναι ενεργές. Ο χρήστης δεν χρειάζεται σχεδόν ποτέ να διαχειριστεί αυτές τις εφαρμογές. Από τη στιγμή που πατιέται το home button η εφαρμογή σχεδόν πάντα σταματά να τρέχει και συνεπώς δεν καταναλώνει CPU και μπαταρία και η RAM αποδεσμεύεται στη συνέχεια εάν χρειαστεί.
Το iOS διαθέτει πέντε καταστάσεις για τις εφαρμογές. Αυτές είναι:
Not running – η εφαρμογή έχει τερματιστεί ή δεν έχει ανοιχτεί καν.
Inactive – η εφαρμογή βρίσκεται στην οθόνη αλλά δεν εκτελεί τίποτα (για παράδειγμα όταν η εφαρμογή είναι ανοιχτή αλλά η συσκευή κλειδωμένη).
Active – η συνηθισμένη κατάσταση που χρησιμοποιούμε μια εφαρμογή.
Background – η εφαρμογή δεν βρίσκεται στην οθόνη αλλά εκτελεί ακόμα κώδικα.
Suspended – η εφαρμογή καταλαμβάνει μνήμη RAM αλλά δεν εκτελεί κώδικα.
Οι καταστάσεις Active και Inactive δεν θα μας απασχολήσουν και θα επικεντρωθούμε στο τι συμβαίνει όταν μια εφαρμογή πάει από το Active στο Background στο Suspended και στο Not Running.
Όταν πατάμε το home button η εφαρμογή από Active γίνεται Background. Όλες σχεδόν οι εφαρμογές μετατρέπονται μετά σε Suspended σε μερικά δευτερόλεπτα. Τεχνικά οι εφαρμογές αυτές παραμένουν στην μνήμη της συσκευής έτσι ώστε να ανοιχτούν πολύ γρηγορότερα κάποια στιγμή αργότερα. Δεν χρησιμοποιούν, όμως, επεξεργαστική ισχύ (CPU) και συνεπώς ούτε μπαταρία.
Δεν απαιτείται, επίσης, να κλείσετε εσείς την εφαρμογή για να εξοικονομήσετε μνήμη αφού το iOS αναλαμβάνει αυτή την δουλειά. Εάν χρειαστεί να ανοιχτεί μια εφαρμογή που χρειάζεται επιπλέον μνήμη, τότε το σύστημα αυτόματα θα αρχίσει να μετατρέπει παλαιότερες εφαρμογές από Suspended σε Not Running. Εάν, τότε, ανοίξετε ξανά μια από αυτές τις εφαρμογές θα ανοίξει από την αρχή σε καθαρή κατάσταση.
Προσέξτε τώρα: όλα τα παραπάνω δεν έχουν καμία σχέση με το τι βλέπετε στην multitasking bar. Η multitasking bar υπάρχει μόνο και μόνο για να μπορείτε να δείτε τις εφαρμογές που έχετε χρησιμοποιήσει πρόσφατα ανεξάρτητα από την κατάσταση (Background, Suspended, Not Running) στην οποία βρίσκονται. Για αυτό, άλλωστε, δεν μπορείτε να δείτε στην multitasking bar την εφαρμογή που έχετε ανοιχτή στην οθόνη σας αυτή την στιγμή.
Background Tasks
Όταν μια εφαρμογή στέλνεται στο Background, τότε μετατρέπεται σε Suspended σε λίγα δευτερόλεπτα όπως είπαμε. Ωστόσο, μερικές εφαρμογές μπορούν να ζητήσουν μια ‘επιμήκυνση’ αυτού του χρόνου για να πραγματοποιηθεί ένα background task.
Για παράδειγμα, μια τέτοια εφαρμογή είναι το Instacast, μια εφαρμογή διαχείρισης podcasts. Όταν το Instacast είναι Active ξεκινά να κατεβάζει νέα podcasts. Εάν πατηθεί το home button, τότε το Instacast έχει πέντε δευτερόλεπτα για να τρέξει στο Background και μετά να γίνει Suspended. Ωστόσο, το Instacast έχει τη δυνατότητα να δηλώσει ένα background task και να επιμηκύνει την περίοδο που μπορεί να μείνει στο Background για να συνεχίσει να κατεβάζει τα podcasts. Αυτή η περίοδος, βέβαια, δεν είναι απεριόριστη και περιορίζεται περίπου στα 10 λεπτά προτού αναγκαστεί να γίνει Suspended. Αυτό γίνεται αυτόματα από το iOS χωρίς να πρέπει να κάνετε κάτι.
Απεριόριστο Background
Όλες οι εφαρμογές έχουν μπορούν να μείνουν στο Background από 5 δευτερόλεπτα μέχρι 10 λεπτά, όπως είδαμε. Υπάρχουν, όμως, και μερικά είδη εφαρμογών που χρειάζεται να τρέχουν απεριόριστα στο background. Συγκεκριμένα, υπάρχουν πέντε είδη εφαρμογών: εφαρμογές που παίζουν μουσική, εφαρμογές που καταγράφουν την τοποθεσία, εφαρμογές που περιμένουν εισερχόμενες κλήσεις VOIP (πχ Skype), εφαρμογές του Newsstand για να κατεβάσουν νέο περιεχόμενο και εφαρμογές που συνεργάζονται με κάποιο εξωτερικό αξεσουάρ.
Οποιαδήποτε καλογραμμένη εφαρμογή που ανήκει σε μία από τις παραπάνω κατηγορίες γίνεται αυτόματα Suspended όταν δεν εκτελούν κάποια εργασία. Για παράδειγμα, όταν το Instacast τελειώσει την αναπαραγωγή ενός podcast γίνεται Suspended. Υπάρχουν και προ-εγκατεστημένες εφαρμογές στο iOS που τρέχουν στο παρασκήνιο συνεχώς, όπως το Mail.
Όσο οι εφαρμογές αυτές βρίσκονται στο Background, τότε θα συνεχίσουν να καταναλώνουν CPU και μπαταρία. Γενικότερα, γνωρίζετε πότε τρέχουν τέτοιες εφαρμογές αφού η κατάστασή τους είναι προφανής.
Τώρα, υπάρχει μια εξαίρεση στον κανόνα του ότι ο χρήστης δεν χρειάζεται ποτέ να διαχειρίζεται εφαρμογές στη multitasking bar και αυτή είναι όταν μια από τις εφαρμογές που τρέχουν απεριόριστα συμπεριφερθεί αλλόκοτα και δεν τερματιστεί σωστά. Αυτή η περίπτωση είναι γενικότερα σπάνια, βέβαια, και δεν αποτελεί μέρος της φυσιολογικής εμπειρίας ενός χρήστη iOS.
Περίληψη
Συνοπτικά, ας δούμε τι μάθαμε:
- Εάν κάποιος σας πει ότι όλες οι εφαρμογές στην multitasking bar τρέχουν ή χρησιμοποιούν μπαταρία κτλπ είναι λάθος.
- Όταν πατάτε το home button η εφαρμογή μετατρέπεται από Active σε Background και πολύ γρήγορα σε Suspended όπου δεν καταναλώνει μπαταρία.
- Μια εφαρμογή μπορεί να ζητήσει επιμήκυνση της κατάστασης Background για περίπου 10 λεπτά προτού γίνεται Suspended.
- Εάν υπάρξει πρόβλημα διαχείρισης μνήμης, τότε το iOS αυτόματα μετατρέπει τις Suspended εφαρμογές σε Not Running και επανακτά τη μνήμη τους.
- Πέντε είδη εφαρμογών -ήχου, GPS, VOIP, Newsstand και χρήσης αξεσουάρ- και μερικές προ-εγκατεστημένες μπορούν να τρέχουν απεριόριστα στο παρασκήνιο μέχρι να ολοκληρωθεί η εργασία τους.
Γενικότερα, δεν χρειάζεται να ανησυχείτε για τα background tasks στο iOS. Το λειτουργικό μπορεί να χειριστεί σχεδόν οποιαδήποτε περίπτωση εφαρμογών και όσον αφορά αυτά τα πέντε είδη εφόσον η εφαρμογή είναι σωστά γραμμένη δεν θα έχετε κάποιο πρόβλημα.
Σχολιασμός στο forum
More from iOS
iOS 13: Dark mode, Nέο Multitasking, Undo/Redo με gestures κ.α.
Το iOS 13 αναμένεται να παρουσιαστεί κατά την έναρξη του WWDC 2019, στις 3 Ιουνίου, ωστόσο δημοσίευμα του 9to5mac μας δίνει από τώρα μία πρώτη γεύση των όσων θα δούμε. iOS 13 - Dark mode Ένα βασικό χαρακτηριστικό της νέας έκδοσης λογισμικού …
iOS 12.2: Τα χαρακτηριστικά και οι βελτιώσεις της νέας έκδοσης λειτουργικού
Το iOS 12.2 είναι διαθέσιμο από εχτές το βράδυ και περιλαμβάνει τέσσερα νέα animoji, καθώς και επιδιορθώσεις σφαλμάτων και βελτιώσεις στο AirPlay, Apple Pay, Safari, Apple Music. Επιπλέον, με τη νέα αναβάθμιση λειτουργικού έρχεται και η υποστήριξη των νέων AirPod …
iOS 12.1.4: Διαθέσιμο το update που διορθώνει το critical bug του FaceTime
Το iOS 12.1.4 περιλαμβάνει σημαντικές ενημερώσεις ασφαλείας, μεταξύ των οποίων και η διόρθωση του critical bug του FaceTime το οποίο επέτρεπε στο χρήστη να ακούει τον παραλήπτη της κλήσης από το μικρόφωνο της συσκευής του προτού ο τελευταίος απαντήσει στην …
iOS 13: Οι πρώτες πληροφορίες για τα χαρακτηριστικά του
Το iOS 13, το επερχόμενο major update του λειτουργικού συστήματος για iPhone/iPad/iPod touch αναμένεται να έρθει με αρκετά νέα χαρακτηριστικά, όπως αναφέρει δημοσίευμα του Bloomberg το οποίο επικαλείται αξιόπιστες πηγές εντός της Apple. Σύμφωνα λοιπόν με τις πρώτες διαρροές, το iOS …
iOS 12.1.3: Τί φέρνει η νέα έκδοση
Το iOS 12.1.3 περιέχει επιδιορθώσεις σφαλμάτων για το iPhone και το iPad, συμπεριλαμβανομένων των εξής: Επιδιόρθωση ζητήματος στα Μηνύματα που μπορούσε να επηρεάσει την κύλιση σε φωτογραφίες στην προβολή «Λεπτομέρειες»Αντιμετώπιση ζητήματος λόγω του οποίου κάποιες φορές οι φωτογραφίες είχαν γραμμωτά τεχνουργήματα …
1 Comment
[…] Σημείωση: Σε περίπτωση που δεν έχετε διαβάσει το υπέρ-αναλυτικό πρώτο μέρος του δημοσιεύματος, ξεκινήστε από εδώ: Όλα όσα πρέπει να ξέρετε για το multitasking στο iOS […]