ფონური პროცესების გაყინვა 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 ორობითი თქვენი კონკრეტული OS-სთვის (ფანჯრები, მაკი, Linux). ეს ბმულები ყოველთვის მიუთითებს ბინარის უახლეს ვერსიაზე.
  3. ამოიღეთ ZIP ფაილის შინაარსი თქვენს კომპიუტერზე ადვილად მისაწვდომ საქაღალდეში.
  4. გადადით თქვენი ტელეფონის პარამეტრების აპში და შეეხეთ ოფციას ტელეფონის შესახებ.
  5. იპოვეთ Build Number და შეეხეთ მას 7-ჯერ დეველოპერის რეჟიმის გასააქტიურებლად.
  6. დაბრუნდით პარამეტრების მთავარ მენიუში და შეიყვანეთ დეველოპერის ოფციები, რათა ჩართოთ USB გამართვის რეჟიმი.
  7. შეაერთეთ თქვენი ტელეფონი კომპიუტერში და შეცვალეთ ის „მხოლოდ დატენვის“ რეჟიმიდან „ფაილის გადაცემის (MTP)“ რეჟიმში. ეს არ არის აუცილებელი ყველა მოწყობილობაზე, მაგრამ ბევრი მოწყობილობა მოითხოვს ამას, როგორც უსაფრთხოების ზომას, სანამ ADB-ს მუშაობის უფლებას მისცემს.
  8. დაბრუნდით კომპიუტერში და დაათვალიერეთ დირექტორია, სადაც ამოიღეთ ADB ორობითი.
  9. გაუშვით Command Prompt ან Terminal თქვენს ADB დირექტორიაში. Windows-ის მომხმარებლებისთვის, ეს შეიძლება გაკეთდეს Shift-ის დაჭერით და მარჯვენა ღილაკით და შემდეგ არჩევით "გახსენით ბრძანების სტრიქონი აქ". (Windows 10-ის ზოგიერთმა მომხმარებელმა შეიძლება დაინახოს "ბრძანების სტრიქონი" ჩანაცვლებული "PowerShell"-ით.)
  10. როდესაც თქვენ მოხვდებით Command Prompt ან Terminal გარემოში, შეიყვანეთ შემდეგი ბრძანება: adb devices
  11. ეს დაიწყებს ADB დემონს, თუ ის უკვე არ არის გაშვებული, უბრალოდ დაელოდეთ მის დასრულებას. თუ პირველად აწარმოებთ ADB-ს, ასევე იხილავთ მოთხოვნას თქვენს ტელეფონზე, რომელიც მოგთხოვთ კომპიუტერთან კავშირის ავტორიზაციას. დაუშვით USB გამართვის წვდომა აქ.
  12. ახლა, თუ ხელახლა გაუშვით adb მოწყობილობების ბრძანება მე-10 საფეხურიდან, ბრძანების ხაზი/ტერმინალი დაბეჭდავს თქვენი მოწყობილობის სერიულ ნომერს. თუ ასეა, მაშინ მზად ხართ გადაადგილებისთვის. თუ არა, მაშინ USB დრაივერი სავარაუდოდ არ არის სწორად დაინსტალირებული.
  13. შემდეგ თქვენ უნდა იპოვოთ პაკეტის სახელი იმ აპლიკაციისთვის, რომლითაც გსურთ ფონური პროცესების გაყინვა. ამის გაკეთება შეგიძლიათ ინსტალაციის გზით აპლიკაციის ინსპექტორი აპლიკაცია თქვენს ტელეფონზე.
  14. დაბრუნდით ბრძანების სტრიქონში და შეიყვანეთ შემდეგი ბრძანება: adb shell
  15. ახლა შეასრულეთ შემდეგი ბრძანება აპლიკაციის ფონური პროცესების გასათავისუფლებლად: cmd appops set RUN_IN_BACKGROUND ignore
  16. თუ ოდესმე გსურთ დააბრუნოთ თქვენს მიერ ახლახან განხორციელებული ცვლილება და კვლავ დაუშვათ აპის ფონური პროცესები, შეიყვანეთ ეს ბრძანება: cmd appops set RUN_IN_BACKGROUND allow
  17. თქვენ გეცოდინებათ, რომ ის მუშაობს, თუ ის დაგიბრუნებთ სხვა ADB shell მოთხოვნაზე და არ მოგცემთ შეცდომის შეტყობინებას.

ახსნა

ზუსტად როგორ მუშაობს ეს ბრძანება არის ის, რომ ის საშუალებას გაძლევთ შეზღუდოთ ფარული ნებართვა, რომელიც ჩვეულებრივ მიუწვდომელია მომხმარებლისთვის პარამეტრების აპში. ამ ნებართვას ეწოდება RUN_IN_BACKGROUND ნებართვა და მისი შეცვლის ერთადერთი გზა არის "cmd"-ის გამოყენება appops", რომელიც არის ბრძანების ხაზის ინტერფეისი "App Ops"-ისთვის - Google-ის მომხმარებლის ნებართვების მართვის სისტემა.

Google-მა დაამატა ეს ფარული ADB ბრძანება, რომელიც საშუალებას გაძლევთ შეზღუდოთ ნებისმიერი აპლიკაცია იმპლიციტური სამაუწყებლო მიზნების მიღებისგან (მაგ. აპი იღვიძებს ფონზე) და ასევე ხელს უშლის ამ აპლიკაციებს ფონური სერვისების დაგეგმვა JobScheduler-ის გამოყენების გარეშე (მაგ. აპი იღვიძებს არასასურველ დროს, დახარჯავს თქვენს ბატარეას). ეს ბრძანება რეალურად განკუთვნილია მხოლოდ დეველოპერებისთვის გამოსაყენებლად, რომლებიც ცდილობენ სიმულაციას, თუ როგორ იმუშავებს მათი აპი დაბალი მეხსიერების პირობებში, მაგრამ საბედნიეროდ, ჩვენ შეგვიძლია მისი გამოყენება ჩვენთვის.

აპლიკაციის ფონურ სერვისებზე და მანიფესტის რეგისტრირებულ იმპლიციურ სამაუწყებლო მიმღებებზე დამოკიდებულების მოხსნით, დეველოპერებს შეუძლიათ თავიანთი აპლიკაციის ოპტიმიზაცია, რათა უკეთ იმუშაონ დაბალი მეხსიერების მოწყობილობებზე. Google ამბობს, რომ აპლიკაციებს, რომლებიც ოპტიმიზებულია ამ ტიპის მოწყობილობებისთვის, ან დაბალი მეხსიერების პირობებში, შეუძლიათ გააუმჯობესონ როგორც შესრულება, ასევე მომხმარებლის გამოცდილება. Google I/O წელს კომპანიამ გამოაცხადა Android-ის შეცვლილი ვერსია, სახელწოდებით Android Go, რომელიც გამოყენებული იქნება ძალიან დაბალი მეხსიერების სმარტფონებისთვის, ასე რომ, ჩვენ ვივარაუდებთ, რომ ეს ბრძანება სასარგებლო იქნება იმ დეველოპერებისთვის, რომლებიც მიზნად ისახავს ამ პლატფორმას.

ნებისმიერ შემთხვევაში, ეს ბრძანება შეიძლება საკმაოდ სასარგებლო იყოს საშუალო მომხმარებლისთვის, მაგრამ ფრთხილად იყავით, რას ზღუდავთ აქ. აპლიკაციები, როგორიცაა Hangouts ან Facebook, მთლიანად შეწყვეტს სინქრონიზაციას ფონზე, სანამ არ გახსნით მათ, რასაც თუ მიზნად ისახავთ, დარწმუნებული ვარ, წინააღმდეგი არ იქნებით. მაგრამ არ გაგიკვირდეთ, როდესაც თქვენი ელ.წერილი ან შეტყობინებები დაგვიანდება, თუ ამ ბრძანებას აწარმოებთ აპზე, რომელიც დამოკიდებულია ფონურ მიმღებებზე.