Android Pie გამოდის დღეს და ერთ-ერთი მაგარი დამალული ფუნქციაა RAM-ით მძიმე თამაშების დაღუპვის შესაძლებლობა, თუ შემთხვევით გამოხვალთ.
დღეს ადრე Google ოფიციალურად გამოცხადდა Android Pie Google Pixel-ისთვის და Google Pixel 2-ისთვის. ამის შემდეგ დაუყოვნებლივ, არსებითი გამოვიდა Android 9 განახლება Essential ტელეფონისთვის. სხვა მოწყობილობები, რომლებიც მონაწილეობდნენ Android P-ის ბეტა პროგრამაში მალე უნდა მიიღონ განახლება, ასე რომ მომხმარებლებს, რომლებმაც გამოტოვეს დეველოპერის გადახედვები, ახლა ბევრი რამ აქვთ გასაკეთებელი. როგორც ჩვენ ვიკვლევთ უახლეს გამოცემას, მათ შორის წყაროს კოდის დაცემა AOSP-ზე და უახლესი თავსებადობის განსაზღვრის დოკუმენტი (CDD), ჩვენ პერიოდულად გაცნობებთ თქვენს მიერ აღმოჩენილ ახალ ინფორმაციას. რაღაც საინტერესო, რაც CDD-ში აღმოვაჩინეთ, არის განყოფილება "მძიმე წონის" (RAM-მძიმე) აპებისა და თამაშებისთვის. სადაც Android Pie პრიორიტეტს მიანიჭებს ამ აპების RAM-ში შენახვას, თუ მომხმარებელი შემთხვევით გამოვა მათ.
„მძიმე“ აპები და თამაშები Android Pie-ში
ახალი განყოფილება დაემატა CDD რომელიც ასახავს ამ თვისებას. აი რა წერია:
3.17. მძიმე წონის აპლიკაციები
თუ მოწყობილობის დანერგვა აცხადებს ფუნქციას FEATURE_CANT_SAVE_STATE, მაშინ ისინი:
- [C-1-1] უნდა ჰქონდეს მხოლოდ ერთი დაინსტალირებული აპლიკაცია, რომელიც განსაზღვრავს cantSaveState გაშვებას სისტემაში ერთდროულად. თუ მომხმარებელი ტოვებს ასეთ აპს მისგან აშკარად გასვლის გარეშე (მაგალითად, დაჭერით სახლში აქტიური აქტივობის დატოვებისას, იმის ნაცვლად, რომ დააჭიროთ უკან დარჩენის გარეშე აქტიური აქტივობები სისტემაში), შემდეგ მოწყობილობის დანერგვამ უნდა მიენიჭოს პრიორიტეტი ამ აპს RAM-ში, როგორც ამას აკეთებენ სხვა ფუნქციებისთვის, რომლებიც სავარაუდოდ დარჩება გაშვებული, როგორიცაა წინა პლანზე მომსახურება. სანამ ასეთი აპლიკაცია ფონზეა, სისტემას შეუძლია კვლავ გამოიყენოს მასზე ენერგიის მართვის ფუნქციები, როგორიცაა CPU და ქსელში წვდომის შეზღუდვა.
- [C-1-2] უნდა უზრუნველყოს ინტერფეისის შესაძლებლობა, რომ აირჩიოს აპლიკაცია, რომელიც არ მიიღებს მონაწილეობას ნორმალური მდგომარეობის შენახვის/აღდგენის მექანიზმში, როგორც კი მომხმარებელი გამოუშვებს მეორე აპს, რომელიც გამოცხადებულია withcantSaveState ატრიბუტით.
- [C-1-3] არ უნდა გამოიყენოს პოლიტიკაში სხვა ცვლილებები აპებზე, რომლებიც აკონკრეტებენ cantSaveState, როგორიცაა CPU-ის მუშაობის შეცვლა ან დაგეგმვის პრიორიტეტების შეცვლა.
თუ მოწყობილობის განხორციელებები არ აცხადებენ ფუნქციას FEATURE_CANT_SAVE_STATE , მაშინ ისინი:
- [C-1-1] უნდა უგულებელყოს აპების მიერ დაყენებული cantSaveState ატრიბუტი და არ უნდა შეცვალოს აპის ქცევა ამ ატრიბუტის საფუძველზე.
ძირითადად, ეს ნიშნავს, რომ თუ მოწყობილობა მხარს უჭერს FEATURE_CANT_SAVE_STATE ფუნქცია, მაშინ მათ პრიორიტეტი უნდა მიანიჭონ RAM-ში გაშვებული აპლიკაციის შენარჩუნებას, რომელიც განსაზღვრავს cantSaveState ატრიბუტი. RAM-ის ეს პრიორიტეტიზაცია იწყება, თუ მომხმარებელი ტოვებს აპს ან თამაშს სახლის ღილაკზე დაჭერით, ან ტოვებს აპს ან თამაშს მისგან აშკარად გასვლის გარეშე (მაგალითად, უკანა ღილაკის დაჭერით ან გამორთვის ღილაკი.) გარდა ამისა, სისტემას შეუძლია ენერგიის დაზოგვა ამ აპებზე CPU და ქსელში წვდომის შეზღუდვით, მაგრამ ისინი უბრალოდ ვერ ათავისუფლებენ RAM-ს მათი მოკვლით, თუ ეს არ არის საჭირო. და ბოლოს, გაითვალისწინეთ, რომ ნებადართულია მხოლოდ ერთი აპლიკაციის გაშვება cantSaveState ატრიბუტით. თუ ცდილობთ სხვა აპლიკაციის გაშვებას ამ ატრიბუტით განსაზღვრული, სანამ სხვა მუშაობს, Android Pie მოგთხოვთ აირჩიოთ რომელი თამაშის გაგრძელება გსურთ.
შეგიძლიათ შეამოწმოთ, აქვს თუ არა თქვენი მოწყობილობა მხარს FEATURE_CANT_SAVE_STATE-ს ADB-ის მეშვეობით შემდეგი ორი ბრძანების გაშვებით:
adb shell
dumpsys package | grep "cant_save_state"
იმის შესამოწმებლად, განსაზღვრავს თუ არა აპი cantSaveState ატრიბუტს, დაგჭირდებათ აპლიკაციის დეკომპილირება და მისი მანიფესტის ნახვა ან გამოყენება dumpsys package package.name.here
ბრძანება ADB ჭურვიში. გაითვალისწინეთ, რომ ეს ატრიბუტი მხოლოდ ახლახან დაემატა API 28 დონეზე (Android 9 Pie), ამიტომ ნაკლებად სავარაუდოა, რომ ბევრი აპი ან თამაში ისარგებლებს ამით.
ეს ფუნქცია წარმოუდგენლად სასარგებლო იქნება მოწყობილობებისთვის, რომლებსაც აქვთ მცირე რაოდენობით ოპერატიული მეხსიერება და/ან აპები, რომლებიც ჭამს ტონა RAM-ს. მაგალითად, Fortnite Mobile Android-ზე მოითხოვს მინიმუმ 3 GB ოპერატიული მეხსიერება იმის გამო, თუ რამდენ RAM-ს ჭამს (თამაშის გაშვების გარეშეც კი, Fortnite Mobile იტოვებდა 1,6 GB RAM-ს ჩემს Google Pixel 2 XL-ზე.) თუ Fortnite მიზნად ისახავდა SDK-ს. დონე 28 და გამოიყენეთ ეს ფუნქცია, მაშინ ეს ნიშნავს, რომ თამაშიდან შემთხვევით გასვლა ხელს შეუშლის მის დაუყოვნებლივ მოკვლას, თუ თქვენი მოწყობილობა იწურება უფასო ოპერატიული მეხსიერება. სამწუხაროდ, Fortnite მიზნად ისახავს მხოლოდ SDK დონეს 21 ამ დროისთვის (Android 5.0 Lollipop) ასე რომ, სამწუხაროდ, ის არ სარგებლობს უახლესი API-ებით, რომლებსაც Google გთავაზობთ Android Pie-ში, რომ აღარაფერი ვთქვათ Android Oreo, Android Nougat ან Android Marshmallow. იმედია, სხვა თამაშები განახლდება, რომ ისარგებლოს ამ ფუნქციით. მომავალი წლისთვის Google დასჭირდება მათ განაახლოს, თუ მათ სურთ, განაგრძონ განახლებების გაგზავნა Google Play Store-ზე.