एंड्रॉइड 12 की नई बैकग्राउंड ऐप सीमाएं पावर उपयोगकर्ताओं के लिए एक बड़ा सिरदर्द हो सकती हैं

एंड्रॉइड 12 की नई बैकग्राउंड ऐप सीमाएं पावर उपयोगकर्ताओं के लिए एक बड़ा सिरदर्द हो सकती हैं जो टर्मक्स और शायद टास्कर जैसे ऐप का उपयोग करते हैं।

एंड्रॉइड 12 ने बहुत सारे बदलाव पेश किए हैं, हालांकि उनमें से सभी वास्तव में उपयोगकर्ता-सामना वाले नहीं हैं। आपके द्वारा पुनः डिज़ाइन की गई विशाल सामग्री जैसी सुविधाएँ स्पष्ट रूप से आपके चेहरे पर अंकित हैं और इन्हें नज़रअंदाज़ करना कठिन है, लेकिन कुछ ऐसा ही है डिजिटल कार कुंजी समर्थन चूकना आसान हो सकता है। हालाँकि, एक बदलाव जो पूरी तरह से गैर-दस्तावेज भी हो सकता है, टर्मक्स जैसे ऐप्स पर कहर बरपाएगा, और वह है एक काफी आक्रामक बैकग्राउंड प्रोसेस किलर की शुरूआत।

संदर्भ के लिए, टर्मक्स एक लिनक्स टर्मिनल एमुलेटर है जिसे आप एंड्रॉइड और टर्मक्स के पैकेज प्रबंधन पर प्राप्त कर सकते हैं सिस्टम काफी हद तक डेबियन के एडवांस्ड पैकेज टूल (एपीटी) जैसा है जिसमें आप खोज, इंस्टॉल और अनइंस्टॉल कर सकते हैं आज्ञा अपार्ट. प्ले स्टोर पर एपीके आकार को कम करने के लिए, टर्मक्स बॉक्स से बाहर केवल कुछ बुनियादी पैकेज इंस्टॉल करता है, लेकिन आपको इसकी अनुमति देता है कोई अतिरिक्त पैकेज स्थापित करें

जो तुम चाहते हो. लोग अक्सर पुराने स्मार्टफ़ोन को मिनी सर्वर में बदलने के लिए टर्मक्स का उपयोग करते हैं, या अन्य प्रोग्राम चलाने के लिए इसका उपयोग करते हैं जो आमतौर पर स्मार्टफ़ोन के लिए लक्षित नहीं होते हैं। एक सामान्य उपयोग यहां तक ​​कि मूल रूप से यूट्यूब-डीएल सेट करना भी है, क्योंकि आप अपने स्मार्टफोन पर टर्मक्स का उपयोग करके पायथन स्क्रिप्ट निष्पादित कर सकते हैं।

हालाँकि, Android 12 में, यह खोज की थी ऐप्स द्वारा शुरू की गई फोर्क्ड चाइल्ड प्रक्रियाओं की निगरानी करने के लिए एक तंत्र और यदि ऐप पृष्ठभूमि में है तो वे बहुत अधिक सीपीयू का उपभोग करते हैं तो उन्हें मार देता है (के माध्यम से) मिशाल रहमान) पेश किया गया था। यह मूल प्रक्रियाओं द्वारा उत्पन्न होने वाली चाइल्ड प्रक्रियाओं की संख्या को 32 तक सीमित कर देता है, जो पृष्ठभूमि में एक ऐप द्वारा पूरे किए जा सकने वाले कार्यों की संख्या को बहुत सीमित कर देता है। यह 32 चाइल्ड प्रोसेस सीमा वास्तव में पूरे सिस्टम में है, न कि केवल प्रति ऐप के लिए, जिसका अर्थ है कि चाइल्ड प्रोसेस वाले अन्य ऐप्स भी उस सीमा में योगदान देंगे। मैंने Google Pixel 6 Pro पर परीक्षण किया, और मैं इसकी पुष्टि कर सकता हूं फैंटमप्रोसेसकिलर मौजूद है और संभावित रूप से टर्मक्स पर कहर बरपा सकता है।

एंड्रॉइड 12 का फैंटम प्रोसेस किलर बैकग्राउंड प्रोसेस को खत्म कर देता है

Android 12 ने पृष्ठभूमि प्रक्रियाओं पर कुछ प्रतिबंध लगाए; पहला यह है कि पृष्ठभूमि में बहुत अधिक सीपीयू का उपभोग करने वाले ऐप्स की चाइल्ड प्रक्रियाएं समाप्त हो जाएंगी यदि मूल प्रक्रिया भी पृष्ठभूमि में है। पेश किया गया दूसरा प्रतिबंध उन चाइल्ड प्रक्रियाओं की संख्या पर एक सीमा है जो किसी भी समय सक्रिय हो सकती हैं। से इतिहास प्रतिबद्धऐसा प्रतीत होता है कि Google दुष्ट पृष्ठभूमि प्रक्रियाओं पर नकेल कसने का प्रयास कर रहा था।

"ऐप्स चाइल्ड प्रोसेस और फ्रेमवर्क को विकसित करने के लिए Runtime.exec() का उपयोग कर सकते हैं, उन्हें इसके जीवनचक्र के बारे में कोई जानकारी नहीं होगी। अब जब भी हम उन प्रक्रियाओं को ढूंढते हैं तो उन्हें ट्रैक करें - वर्तमान में सीपीयू सांख्यिकी नमूने के दौरान उन्हें देखा जा सकता है। यदि यह बहुत अधिक सीपीयू की खपत कर रहा है जबकि इसकी मूल ऐप प्रक्रिया भी पृष्ठभूमि में है, तो इसे मार दें। डिफ़ॉल्ट रूप से हम ऐसी 32 प्रक्रियाओं की अनुमति देते हैं; यदि उनमें से बहुत सारे हैं तो उनके माता-पिता के सबसे खराब ओओएम एडजे स्कोर वाली प्रक्रिया को मार दिया जाएगा।"

बेशक, एंड्रॉइड स्मार्टफोन बैकग्राउंड ऐप को खत्म करने के लिए पहले से ही कुख्यात हैं। लगभग सभी प्रमुख ओईएम किसी न किसी रूप में इसमें संलग्न हैं और कंपनियां इसे पसंद करती हैं वनप्लस, सैमसंग और श्याओमी को सबसे खराब माना जाता है. जबकि AOSP में कुछ पृष्ठभूमि ऐप प्रतिबंध हैं, निर्माताओं के लिए AOSP के शीर्ष पर अपने स्वयं के प्रतिबंध बनाना आम बात है। हालाँकि, ये बिजली उपयोगकर्ताओं के लिए काफी सख्त सीमाएँ हैं और उन व्यवहारों को प्रोत्साहित करते हैं जिनके खिलाफ बिजली उपयोगकर्ता लंबे समय से मुखर रूप से विरोध करते रहे हैं। हो सकता है कि लंबे समय में यह बैटरी जीवन को बढ़ा दे, लेकिन इसे अक्षम करने का भी कोई तरीका नहीं है।

एंड्रॉइड 12 फैंटम प्रोसेस किलर को ट्रिगर करना

जैसा कि प्रतिबद्धता में कहा गया है, ऐसी 32 प्रक्रियाओं की अनुमति है, और मैंने इसे अपने Google Pixel 6 Pro पर निम्नलिखित कमांड के साथ सत्यापित किया है।

adb shell "/system/bin/dumpsys activity settings"

इस कमांड के आउटपुट में, 32 के मान के साथ "max_fantom_processes" नामक एक स्थिरांक है। इस संदर्भ में, एंड्रॉइड सिस्टम द्वारा एक "फैंटम प्रक्रिया" को पृष्ठभूमि में चलने वाली चाइल्ड प्रक्रिया के रूप में आंका जाता है। यदि आपके पास Android 12 डिवाइस है, तो आप 32 से अधिक चाइल्ड प्रक्रियाओं को उत्पन्न करने के लिए टर्मक्स का उपयोग कर सकते हैं अपने स्टोरेज पर कहीं एक बैश स्क्रिप्ट बनाएं जिसमें निम्नलिखित कोड हो और उसे निष्पादित करें (आभार से अज्ञेयवादी-अपोलो GitHub पर, टर्मक्स से जुड़ा एक डेवलपर):

for i in $(seq 40); do
sha256sum /dev/zero &
done

इसे निष्पादित करने के लिए, टर्मक्स में उस फ़ोल्डर में नेविगेट करें जिसमें आपने स्क्रिप्ट को सहेजा है और निम्नलिखित टाइप करें:

shfilename.sh

अगर आपका फोन धीमा लगने लगे तो इसका मतलब है कि वह काम कर रहा है। उपरोक्त कोड पृष्ठभूमि में 40 sha256sum संचालन उत्पन्न करता है (एम्परसेंड द्वारा चिह्नित) /dev/zero इनपुट के रूप में फ़ाइल करें। sha256sum इनपुट के रूप में दी गई किसी भी फ़ाइल का SHA-256 हैश देगा। द रीज़न /dev/zero इसका उपयोग यह है कि यह एक अनंत-लंबाई वाली फ़ाइल है जिसमें पढ़ने तक शून्य मान होते हैं, जिसका अर्थ है कि sha256sum ऑपरेशन कभी भी फ़ाइल के अंत तक नहीं पहुंचेगा, जो निरंतर पृष्ठभूमि सुनिश्चित करने के लिए एक अच्छे तनाव परीक्षण के रूप में कार्य करता है परिचालन.

कुछ सेकंड से एक मिनट के बाद, आपको निम्नलिखित दिखाई दे सकता है:

"सिग्नल 9" प्रक्रिया को भेजा गया एक सिग्नल है जो इसे बंद करने के लिए मजबूर करता है, और यह सिग्नल लिनक्स शेड्यूलर द्वारा भेजा जाता है। संदेश दिखाई देने का कारण यह है कि बैश टर्मिनल तकनीकी रूप से भी टर्मक्स की एक चाइल्ड प्रक्रिया है, और एंड्रॉइड 12 उपरोक्त प्रदर्शन में बैश टर्मिनल को समाप्त कर देता है। लॉगकैट आउटपुट में, आप निम्नलिखित देख सकते हैं:

11-02 13:01:52.507 1444 1762 I ActivityManager: Killing PhantomProcessRecord {623260a 7362:7284:nightwatch.txt/u0a227}: Trimming phantom processes
11-02 13:01:52.507 1444 1762 I ActivityManager: Killing PhantomProcessRecord {bf3d88c 24220:24040:nightwatch.txt/u0a237}: Trimming phantom processes
11-02 13:01:52.507 1444 1762 I ActivityManager: Killing PhantomProcessRecord {b160bd5 27316:27269:bash/u0a340}: Trimming phantom processes
11-02 13:01:52.507 1444 1762 I ActivityManager: Killing PhantomProcessRecord {bbc1fea 27371:27269:sha256sum/u0a340}: Trimming phantom processes
11-02 13:01:52.507 1444 1762 I ActivityManager: Killing PhantomProcessRecord {9cf12db 27372:27269:sha256sum/u0a340}: Trimming phantom processes
11-02 13:01:52.507 1444 1762 I ActivityManager: Killing PhantomProcessRecord {54bf178 27373:27269:sha256sum/u0a340}: Trimming phantom processes
11-02 13:01:52.507 1444 1762 I ActivityManager: Killing PhantomProcessRecord {fb89051 27374:27269:sha256sum/u0a340}: Trimming phantom processes
11-02 13:01:52.507 1444 1762 I ActivityManager: Killing PhantomProcessRecord {d3450b6 27375:27269:sha256sum/u0a340}: Trimming phantom processes
11-02 13:01:52.507 1444 1762 I ActivityManager: Killing PhantomProcessRecord {2a201b7 27376:27269:sha256sum/u0a340}: Trimming phantom processes
11-02 13:01:52.507 1444 1762 I ActivityManager: Killing PhantomProcessRecord {60aad24 27377:27269:sha256sum/u0a340}: Trimming phantom processes
11-02 13:01:52.507 1444 1762 I ActivityManager: Killing PhantomProcessRecord {124e08d 27378:27269:sha256sum/u0a340}: Trimming phantom processes
11-02 13:01:52.507 1444 1762 I ActivityManager: Killing PhantomProcessRecord {32cc242 27379:27269:sha256sum/u0a340}: Trimming phantom processes
11-02 13:01:52.511 1444 1764 I ActivityManager: Process PhantomProcessRecord {b160bd5 27316:27269:bash/u0a340} died
11-02 13:01:52.511 1444 1764 I ActivityManager: Process PhantomProcessRecord {9cf12db 27372:27269:sha256sum/u0a340} died
11-02 13:01:52.511 1444 1764 I ActivityManager: Process PhantomProcessRecord {414579a 27434:27269:top/u0a340} died
11-02 13:01:52.511 1444 1764 I ActivityManager: Process PhantomProcessRecord {32cc242 27379:27269:sha256sum/u0a340} died
11-02 13:01:52.511 1444 1764 I ActivityManager: Process PhantomProcessRecord {bbc1fea 27371:27269:sha256sum/u0a340} died
11-02 13:01:52.511 1444 1764 I ActivityManager: Process PhantomProcessRecord {bf3d88c 24220:24040:nightwatch.txt/u0a237} died
11-02 13:01:52.512 1444 1764 I ActivityManager: Process PhantomProcessRecord {60aad24 27377:27269:sha256sum/u0a340} died
11-02 13:01:52.516 1444 1764 I ActivityManager: Process PhantomProcessRecord {623260a 7362:7284:nightwatch.txt/u0a227} died
11-02 13:01:52.516 1444 1764 I ActivityManager: Process PhantomProcessRecord {124e08d 27378:27269:sha256sum/u0a340} died
11-02 13:01:52.517 1444 1764 I ActivityManager: Process PhantomProcessRecord {fb89051 27374:27269:sha256sum/u0a340} died
11-02 13:01:52.519 1444 1764 I ActivityManager: Process PhantomProcessRecord {54bf178 27373:27269:sha256sum/u0a340} died
11-02 13:01:52.532 1444 1764 I ActivityManager: Process PhantomProcessRecord {2a201b7 27376:27269:sha256sum/u0a340} died
11-02 13:01:52.545 1444 1764 I ActivityManager: Process PhantomProcessRecord {d3450b6 27375:27269:sha256sum/u0a340} died

महत्वपूर्ण पंक्ति वह है जिसमें उल्लेख किया गया है कि "बैश" प्रक्रिया को काट दिया गया और फिर समाप्त हो गया, और इसीलिए टर्मक्स ने काम करना बंद कर दिया। हालाँकि मैं निश्चित नहीं हूँ कि "nightwatch.txt" क्या है, एक सरसरी Google खोज से पता चलता है कि यह फेसबुक और फेसबुक मैसेंजर से संबंधित है, दो ऐप जो मैंने इंस्टॉल किए हैं। मैंने अनुकूली बैटरी बंद करके इसका परीक्षण किया और सुनिश्चित किया कि टर्मक्स पर कोई बैटरी अनुकूलन लागू नहीं किया जा रहा है।

आपके द्वारा परीक्षण समाप्त करने के बाद, यह संभव है कि sha256sum के कुछ संचालन जारी रहेंगे बैकग्राउंड अभी भी है (और एंटर दबाने पर टर्मक्स बंद हो जाएगा), इसलिए टर्मक्स को दोबारा खोलें और टाइप करें अगले:

killall sha256sum

हालाँकि इस तरह की सीमा कुछ ऐप्स के लिए समझ में आती है, लेकिन जिन ऐप्स का उपयोग करने के लिए पावर उपयोगकर्ता अधिक इच्छुक हो सकते हैं (जैसे कि टर्मक्स) उन्हें नुकसान होगा। इसका प्रभाव अन्य ऐप्स पर भी पड़ सकता है जिनका उपयोग पावर उपयोगकर्ता भी करते हैं, जैसे कि टास्कर। यह एक ऐसी सीमा है जिसे दूर करना अभी संभव नहीं लगता है और यह निर्माताओं द्वारा लगाए गए अन्य सभी स्वामित्व प्रतिबंधों के अलावा पृष्ठभूमि ऐप्स पर और भी अधिक सीमाएं पेश करता है। चल रहे GitHub मुद्दे थ्रेड में, agnostic-apollo द्वारा उस लॉगकैट के संबंध में निम्नलिखित का उल्लेख किया गया है जो उन्हें ईमेल किया गया था:

"सभी 32 ट्रैक किए गए लॉगकैट फैंटमप्रोसेसरिकॉर्ड com.wsandroid.suite से संबंधित हैं और टर्मक्स का बैश उन प्रक्रियाओं में से एक था जो नष्ट हो गईं। तो जैसा कि ऊपर बताया गया है, 32 प्रक्रिया सीमा सभी ऐप्स के लिए संयुक्त है"

मज़ेदार बात यह है कि मैंने एंड्रॉइड 11 पर चलने वाले Xiaomi 11T Pro पर भी वही परीक्षण चलाया और पुष्टि की कि यह व्यवहार मौजूद नहीं है उस कॉन्फ़िगरेशन में उस विशेष डिवाइस पर, भले ही Xiaomi डिवाइस बैकग्राउंड ऐप के लिए कुख्यात हैं सीमाएँ. अजीब तरह से, यह किसी भी एंड्रॉइड स्मार्टफोन पर पेश की गई सबसे सख्त पृष्ठभूमि एप्लिकेशन प्रबंधन नीतियों में से एक है, क्योंकि इसके आसपास कोई रास्ता नहीं है। यहां तक ​​कि Xiaomi डिवाइस और वनप्लस डिवाइस पर भी इसे अक्षम करना संभव है अधिकांश इसमें से, और कुछ लोगों के लिए, उन उपकरणों पर सभी बैटरी अनुकूलन को अक्षम करना उनके खुश होने के लिए पर्याप्त है। इसके विपरीत, फैंटम प्रोसेस किलर को अक्षम भी नहीं किया जा सकता है।

यदि आप बहुत सारे ऑन-डिवाइस संचालन के लिए टर्मक्स पर भरोसा करते हैं जो कई पृष्ठभूमि प्रक्रियाओं के साथ गहन हैं, तो अधिक जानकारी होने तक अपग्रेड करना अभी के लिए रोकना उचित हो सकता है। यदि आप बिजली उपयोगकर्ता नहीं हैं, तो संभवतः यह कोई ऐसी चीज़ नहीं है जिसके बारे में आपको वास्तव में चिंता करने की ज़रूरत है।