Πάγωμα διεργασιών φόντου χωρίς Root (Android 7.0+)

Αυτό το σεμινάριο σάς δείχνει πώς να παγώσετε τις διαδικασίες παρασκηνίου οποιασδήποτε εφαρμογής στο Android 7.0 και 7.1 Nougat χωρίς root χρησιμοποιώντας μια κρυφή εντολή ADB.

Το Android θεωρούνταν πάντα η πιο «ισχυρή» πλατφόρμα για κινητά σε σύγκριση με το iOS, λόγω της ελευθερίας που έχουν οι εφαρμογές τρίτων κατασκευαστών του. Αυτό δίνει τη δυνατότητα πολλών αυτοματισμών να πραγματοποιούνται απλώς και μόνο επειδή οι εφαρμογές Android μπορούν να κάνουν περισσότερες εργασίες ενώ εκτελούνται στο παρασκήνιο. Ωστόσο, αυτό έχει ένα μειονέκτημα, καθώς ανοίγει την πόρτα για πιθανώς περισσότερη αποστράγγιση της μπαταρίας χάρη στις διαδικασίες παρασκηνίου που εκτελούνται στη συσκευή.

Είναι ένα πράγμα να γνωρίζετε ότι φορτώνετε το τηλέφωνό σας με εφαρμογές που εκτελούνται στο παρασκήνιο, καθώς είστε πρόθυμοι να θυσιάσετε μέρος της διάρκειας ζωής της μπαταρίας σας για τα οφέλη που προσφέρουν. Είναι μια διαφορετική ιστορία αν κάνετε λήψη απλώς παραδοσιακών εφαρμογών που δεν είναι βελτιστοποιημένες και που εκτελούν εργασίες στο παρασκήνιο όταν δεν τις θέλετε ή ακόμα και τις χρειάζεστε. Η Google εργάζεται για να το διορθώσει, θέτοντας όλο και περισσότερους περιορισμούς στο τι μπορούν να κάνουν οι εφαρμογές το παρασκήνιο και η κυκλοφορία του Android O φέρνει τους περισσότερους περιορισμούς διαδικασίας παρασκηνίου/δέκτη από μακριά.

Ωστόσο, η συντριπτική πλειονότητα των χρηστών δεν θα βλέπουν το Android O στις συσκευές τους για πολλούς μήνες από τώρα (αν δεν το κάνουν καθόλου). Αν όμως τρέχεις Android 7.0 ή Android 7.1, υπάρχει ένα απλό κόλπο που μπορείτε να κάνετε χειροκίνητα αποτρέψτε την εκτέλεση μιας εφαρμογής στο παρασκήνιο - και αυτό δεν απαιτεί root ή μια εφαρμογή τρίτου μέρους. Αυτό είναι πιο ισχυρό από αυτό που προσφέρουν το Greenify ή εφαρμογές όπως το Brevent, καθώς χωρίς πρόσβαση root αυτές οι εφαρμογές είναι αρκετά περιορισμένες στο τι μπορούν να κάνουν. Αλλά με αυτό το κόλπο, τώρα μπορείτε αποκλείστε εφαρμογές όπως το Facebook ή το Hangouts από το να τρέχουν ποτέ στο παρασκήνιο - θα λειτουργούν μόνο όταν χρησιμοποιούνται ενεργά!


Οδηγός περιορισμού διεργασιών παρασκηνίου

Απαιτήσεις:

  • Συσκευή Android Nougat (7.0 ή 7.1).
  1. Εγκαταστήστε τα προγράμματα οδήγησης USB για τη συγκεκριμένη συσκευή σας OEM (η Google παρέχει μια λίστα με μερικά καθολικά προγράμματα οδήγησης USB εδώ).
  2. Κατεβάστε το Δυαδικό ADB για το συγκεκριμένο λειτουργικό σύστημα (Windows, Μακ, Linux). Αυτοί οι σύνδεσμοι θα οδηγούν πάντα στην πιο πρόσφατη έκδοση του δυαδικού αρχείου.
  3. Εξαγάγετε τα περιεχόμενα του αρχείου ZIP σε έναν εύκολα προσβάσιμο φάκελο στον υπολογιστή σας.
  4. Μεταβείτε στην εφαρμογή Ρυθμίσεις στο τηλέφωνό σας και πατήστε την επιλογή Σχετικά με το τηλέφωνο.
  5. Βρείτε τον Αριθμό κατασκευής και πατήστε τον 7 φορές για να ενεργοποιήσετε τη Λειτουργία προγραμματιστή.
  6. Επιστρέψτε στο κύριο μενού Ρυθμίσεις και εισαγάγετε τις Επιλογές προγραμματιστή για να ενεργοποιήσετε τη λειτουργία εντοπισμού σφαλμάτων USB.
  7. Συνδέστε το τηλέφωνό σας στον υπολογιστή και αλλάξτε το από τη λειτουργία «μόνο φόρτιση» σε λειτουργία «μεταφορά αρχείων (MTP)». Αυτό δεν είναι απαραίτητο σε κάθε συσκευή, αλλά πολλές συσκευές το απαιτούν ως μέτρο ασφαλείας πριν επιτρέψουν στο ADB να λειτουργήσει.
  8. Επιστρέψτε στον υπολογιστή και περιηγηθείτε στον κατάλογο από τον οποίο εξαγάξατε το δυαδικό ADB.
  9. Εκκινήστε μια γραμμή εντολών ή ένα τερματικό στον κατάλογό σας ADB. Για χρήστες Windows, αυτό μπορεί να γίνει κρατώντας πατημένο το Shift και κάνοντας δεξί κλικ και, στη συνέχεια, επιλέγοντας την επιλογή «άνοιγμα γραμμής εντολών εδώ». (Ορισμένοι χρήστες των Windows 10 μπορεί να δουν τη "γραμμή εντολών" να αντικατασταθεί από "PowerShell".)
  10. Μόλις βρεθείτε στη γραμμή εντολών ή στο περιβάλλον τερματικού, πληκτρολογήστε την ακόλουθη εντολή: adb devices
  11. Αυτό θα ξεκινήσει τον δαίμονα ADB εάν δεν έχει ήδη εκκινηθεί, απλώς περιμένετε να τελειώσει. Εάν αυτή είναι η πρώτη φορά που εκτελείτε το ADB, θα δείτε επίσης ένα μήνυμα στο τηλέφωνό σας που σας ζητά να εξουσιοδοτήσετε μια σύνδεση με τον υπολογιστή. Επιτρέψτε εδώ την πρόσβαση στον εντοπισμό σφαλμάτων USB.
  12. Τώρα, εάν εκτελέσετε ξανά την εντολή adb devices από το βήμα 10, η γραμμή εντολών/τερματικό θα εκτυπώσει τον σειριακό αριθμό της συσκευής σας. Αν ναι, τότε είστε έτοιμοι να προχωρήσετε. Εάν όχι, τότε τα προγράμματα οδήγησης USB είναι πιθανό να μην έχουν εγκατασταθεί σωστά.
  13. Στη συνέχεια, θα χρειαστεί να βρείτε το όνομα πακέτου για την εφαρμογή που θέλετε να παγώσετε τις διαδικασίες παρασκηνίου. Μπορείτε να το κάνετε αυτό εγκαθιστώντας το Επιθεωρητής εφαρμογών εφαρμογή στο τηλέφωνό σας.
  14. Επιστρέψτε στη γραμμή εντολών και πληκτρολογήστε την ακόλουθη εντολή: adb shell
  15. Τώρα εκτελέστε την ακόλουθη εντολή για να ελευθερώσετε τις διεργασίες παρασκηνίου μιας εφαρμογής: cmd appops set RUN_IN_BACKGROUND ignore
  16. Εάν θέλετε ποτέ να επαναφέρετε την αλλαγή που μόλις κάνατε και να επιτρέψετε ξανά τις διεργασίες παρασκηνίου μιας εφαρμογής, εισαγάγετε αυτήν την εντολή: cmd appops set RUN_IN_BACKGROUND allow
  17. Θα ξέρετε ότι λειτουργεί εάν σας μεταφέρει πίσω σε άλλη προτροπή κελύφους ADB και δεν σας δώσει μήνυμα σφάλματος.

Εξήγηση

Πώς ακριβώς λειτουργεί αυτή η εντολή είναι ότι σας επιτρέπει να περιορίσετε μια κρυφή άδεια που συνήθως δεν είναι προσβάσιμη στον χρήστη στην εφαρμογή Ρυθμίσεις. Αυτή η άδεια ονομάζεται άδεια RUN_IN_BACKGROUND και ο μόνος τρόπος που μπορεί να τροποποιηθεί είναι να χρησιμοποιήσετε το "cmd appops" που είναι η διεπαφή γραμμής εντολών για το "App Ops" - το σύστημα διαχείρισης αδειών της Google που αντιμετωπίζει ο χρήστης.

Η Google πρόσθεσε αυτήν την κρυφή εντολή ADB που σας δίνει τη δυνατότητα να περιορίσετε οποιαδήποτε εφαρμογή να λαμβάνει σιωπηρές προθέσεις εκπομπής (δηλ. η εφαρμογή αφυπνίζεται στο παρασκήνιο) και επίσης να εμποδίζουν αυτές τις εφαρμογές να προγραμματίζουν υπηρεσίες παρασκηνίου χωρίς τη χρήση του JobScheduler (π.χ. η εφαρμογή ξυπνά σε ακατάλληλη στιγμή, εξαντλώντας την μπαταρία σας). Αυτή η εντολή προορίζεται στην πραγματικότητα για χρήση μόνο από προγραμματιστές που θέλουν να προσομοιώσουν την απόδοση της εφαρμογής τους σε συνθήκες χαμηλής μνήμης, αλλά ευτυχώς είμαστε σε θέση να τη χρησιμοποιήσουμε μόνοι μας.

Καταργώντας τις εξαρτήσεις από τις υπηρεσίες παρασκηνίου μιας εφαρμογής και τους δέκτες σιωπηρής μετάδοσης που έχουν καταχωριστεί σε δήλωση, οι προγραμματιστές μπορούν να βελτιστοποιήσουν την εφαρμογή τους ώστε να εκτελείται καλύτερα σε συσκευές χαμηλής μνήμης. Η Google λέει ότι οι εφαρμογές που έχουν βελτιστοποιηθεί για συσκευές αυτού του τύπου, ή αυτές που βρίσκονται σε συνθήκες χαμηλής μνήμης, μπορούν να βελτιώσουν τόσο την απόδοση όσο και την εμπειρία χρήστη. Στο Google I/O φέτος, η εταιρεία ανακοίνωσε μια τροποποιημένη έκδοση του Android που ονομάζεται Android Go, που θα χρησιμοποιηθεί για smartphone με πολύ χαμηλή μνήμη, επομένως υποθέτουμε ότι αυτή η εντολή θα ήταν χρήσιμη για προγραμματιστές που στοχεύουν σε αυτήν την πλατφόρμα.

Σε κάθε περίπτωση, αυτή η εντολή μπορεί να είναι αρκετά χρήσιμη για τον μέσο χρήστη, αλλά προσέξτε τι περιορίζετε εδώ. Εφαρμογές όπως το Hangouts ή το Facebook θα σταματήσουν εντελώς να συγχρονίζονται στο παρασκήνιο μέχρι να τις ανοίξετε, κάτι που αν αυτό στοχεύετε, σίγουρα δεν σας πειράζει. Αλλά μην εκπλαγείτε όταν τα email ή τα μηνύματά σας καθυστερούν εάν εκτελέσετε αυτήν την εντολή σε μια εφαρμογή που εξαρτάται από δέκτες παρασκηνίου.