Android 14 और उसके बाद के वर्शन में, Android डाइनैमिक परफ़ॉर्मेंस फ़्रेमवर्क (एडीएपी) में GAME
नाम का एक नया पावर मोड जोड़ा गया है. इसकी मदद से, गेम का इस्तेमाल करते समय फ़ोन की परफ़ॉर्मेंस को पसंद के मुताबिक बनाया जा सकता है. GAME
, Power HAL को बताता है कि कोई गेम ऐप्लिकेशन फ़ोरग्राउंड में है. इस जानकारी की मदद से, Power HAL को गेम खेलने के दौरान पावर मैनेजमेंट की रणनीतियां अपनाने में मदद मिलती है. इससे, उपयोगकर्ता को बेहतर और स्थिर परफ़ॉर्मेंस मिलती है.
Android 13 में ADPF में, GAME_LOADING
नाम का एक नया पावर मोड जोड़ा गया है. इससे गेम लोड होने में लगने वाले समय को कम करने में मदद मिलेगी. GAME_LOADING
से पता चलता है कि कोई गेम ऐप्लिकेशन लोड हो रहा है या नहीं, ताकि Power HAL, लोडिंग को बेहतर बना सके. इस जानकारी की मदद से, Power HAL, परफ़ॉर्मेंस को बेहतर बनाने के ऐसे उपाय उपलब्ध कराता है जिनसे गेम लोड होने में लगने वाला समय कम हो सकता है.
इस पेज में बताया गया है कि गेम ऐप्लिकेशन, गेम की स्थिति को Power HAL को कैसे पास करता है. साथ ही, अपने डिवाइसों में इसका फ़ायदा पाने के लिए, Power HAL को कॉन्फ़िगर करने का तरीका भी बताया गया है. इसके अलावा, Power HAL को लागू करने की जांच करने का तरीका भी बताया गया है.
पावर मोड का पता लगाना और उसकी सूचना पाना
इस सेक्शन में बताया गया है कि पावर मैनेजर, GAME
और GAME_LOADING
मोड को कैसे मैनेज करता है.
गेम के लिए पावर मोड
Android 14 में नया पावर मोड GAME
, पावर मैनेजर सेवा को यह बताता है कि उपयोगकर्ता कोई गेम खेल रहा है. जब Power HAL को GAME
मोड के बारे में सूचना मिलती है, तो वह गेम खेलने के दौरान परफ़ॉर्मेंस को बेहतर बनाने, तापमान को कम करने, और बैटरी लाइफ़ को बढ़ाने के लिए, पावर में बदलाव कर सकता है.
इस इलस्ट्रेशन में, GAME
पावर मोड के बारे में बताने के लिए, पावर एचएएल को दी जाने वाली जानकारी के फ़्लो के बारे में बताया गया है:
पहली इमेज. गेम चल रहा है, यह बताने के लिए जानकारी का फ़्लो.
AndroidManifest.xml
में GAME
का appCategory
होने पर, ऐप्लिकेशन के लिए हमेशा GAME
पावर मोड सेट रहता है.
GAME_LOADING पावर मोड
लोडिंग बूस्ट मोड, गेम ऐप्लिकेशन के लोड होने की स्थिति का पता लगाकर और Power HAL को इसकी सूचना देकर काम करता है. Android 13 में, डेवलपर के लिए बने एपीआई में गेम की एक नई स्थिति isLoading
जोड़ी गई है.
यह गेम स्टेटस, पावर मैनेजर सेवा में नए GAME_LOADING
पावर मोड का इस्तेमाल करता है. इससे, पावर एचएएल को गेम की टॉप लेवल स्थिति की सूचना मिलती है. जब Power HAL को गेम लोड होने की स्थिति की सूचना मिलती है, तो वह प्लैटफ़ॉर्म की परफ़ॉर्मेंस सेटिंग और सीपीयू क्लॉक रेट में बदलाव कर सकता है. इससे, गेम लोड होने में लगने वाला समय कम हो जाता है.
गेम लोड होने की जानकारी देने के लिए, गेम ऐप्लिकेशन, गेम डैशबोर्ड का इस्तेमाल करके गेम मैनेजर में isLoading
की स्थिति सेट करता है. Game Manager इस स्थिति को Game Manager Service को भेजता है. यह सेवा, Power Manager Service को चालू करने के लिए, नए GAME_LOADING
पावर मोड के साथ setPowerMode
का इस्तेमाल करती है. GAME_LOADING
पावर मोड, Power HAL को यह बताता है कि गेम लोड हो रहा है, ताकि Power HAL, लोडिंग को बेहतर बना सके.
इस इलस्ट्रेशन में, ऐप्लिकेशन से PowerHAL में जानकारी के फ़्लो के बारे में बताया गया है. इससे, लोडिंग की स्थिति का पता चलता है:
दूसरी इमेज. जानकारी का फ़्लो, जो दिखाता है कि गेम लोड हो रहा है.
गेम डैशबोर्ड की मदद से, उपयोगकर्ता लोडिंग बूस्ट की सुविधा को परफ़ॉर्मेंस सेटिंग की मदद से चालू या बंद कर सकते हैं. परफ़ॉर्मेंस सेटिंग हमेशा डिफ़ॉल्ट रूप से बंद रहती है.
GAME और GAME_LOADING का इस्तेमाल करके पावर एचएएल को मनमुताबिक बनाएं
GAME
और GAME_LOADING
मोड का फ़ायदा पाने के लिए, OEM को Power HAL को लागू करने का तरीका अपने हिसाब से तय करना होगा.
पावर मैनेजमेंट और परफ़ॉर्मेंस को बेहतर बनाने की सुविधा, हर हार्डवेयर के लिए अलग-अलग होती है. इसलिए, जब तक Google Pixel डिवाइस के लिए रेफ़रंस लागू करने की सुविधा रिलीज़ नहीं की जाती, तब तक GAME
या GAME_LOADING
मोड के लिए रेफ़रंस लागू करने की सुविधा उपलब्ध नहीं कराई जाती.
GAME
और GAME_LOADING
मोड में परफ़ॉर्मेंस को बेहतर बनाने के लिए, OEM इन तरीकों को लागू कर सकते हैं:
- फ़्रेम रेट को स्थिर करना
- सीपीयू की क्लॉक स्पीड बढ़ाना
- कुछ समय के लिए, डिवाइस के तापमान को कम करना
- फ़ोरग्राउंड गेम ऐप्लिकेशन के लिए सीपीयू की प्राथमिकता असाइन करें
- गेम के अलावा अन्य सामान्य ऐप्लिकेशन के लिए, सीपीयू को बूस्ट करने की सुविधा को कम करना
- तापमान के हिसाब से डिवाइस के लिए बिजली के बंटवारे की रणनीति को ऑप्टिमाइज़ करना
गेम मोड लागू करने की जांच करें
GAME
मोड के लागू होने की जांच करने के लिए, GameManagerServiceTests.java
में testGamePowerMode_
से शुरू होने वाले टेस्ट का इस्तेमाल करें.
GAME_LOADING लागू करने की जांच करना
GAME_LOADING
मोड लागू है या नहीं, इसकी जांच करने के लिए android.gamemanager.cts.GameManagerTest#testSetGameContext
का इस्तेमाल करें.
इस टेस्ट से यह पुष्टि की जाती है कि isLoading
के साथ GameManager::setGameContext()
, परफ़ॉर्मेंस मोड में Power HAL पर गेम लोडिंग मोड को चालू करता है या नहीं.