गेम की परफ़ॉर्मेंस को बेहतर बनाना

Android 14 से, Android Dynamic Performance Framework (ADPF) में GAME नाम का नया पावर मोड उपलब्ध है. इससे गेम खेलते समय, फ़ोन की परफ़ॉर्मेंस को अपनी पसंद के मुताबिक बनाया जा सकता है. GAME से Power HAL को पता चलता है कि गेम ऐप्लिकेशन फ़ोरग्राउंड में है. इस इंडिकेशन से, पावर एचएएल को गेम खेलने के दौरान पावर मैनेजमेंट की रणनीतियां अपनाने की अनुमति मिलती है. इससे उपयोगकर्ता को बेहतर और स्थिर परफ़ॉर्मेंस मिलती है.

Android 13, ADPF में GAME_LOADING नाम का एक नया पावर मोड पेश करता है. इससे गेम लोड होने में लगने वाले समय को कम किया जा सकता है. GAME_LOADING से पता चलता है कि गेम ऐप्लिकेशन लोड हो रहा है या नहीं, ताकि Power HAL, लोड होने की प्रोसेस को तेज़ कर सके. इस इंडिकेशन की मदद से, Power HAL को परफ़ॉर्मेंस बढ़ाने के तरीके अपनाने की अनुमति मिलती है. इससे गेम लोड होने में लगने वाला समय कम हो सकता है.

इस पेज पर बताया गया है कि गेम ऐप्लिकेशन, गेम की स्थिति को Power HAL को कैसे पास करता है. साथ ही, इसमें Power HAL को कॉन्फ़िगर करने का तरीका बताया गया है, ताकि इसका फ़ायदा आपके डिवाइसों में मिल सके. इसके अलावा, इसमें Power HAL को लागू करने की जांच करने का तरीका भी बताया गया है.

पावर मोड का पता लगाना और उसकी सूचना देना

इस सेक्शन में बताया गया है कि Power Manager, GAME और GAME_LOADING मोड को कैसे मैनेज करता है.

गेम पावर मोड

Android 14 में मौजूद नया पावर मोड GAME, Power Manager Service को यह बताता है कि उपयोगकर्ता कोई गेम खेल रहा है. जब पावर HAL को GAME मोड के बारे में सूचना मिलती है, तो वह परफ़ॉर्मेंस को बेहतर बनाने, तापमान कम करने, और बैटरी लाइफ़ बढ़ाने के लिए पावर को अडजस्ट कर सकता है. ऐसा तब होता है, जब गेम खेला जा रहा हो.

इस इमेज में, GAME पावर मोड के बारे में Power HAL को जानकारी देने का तरीका बताया गया है:

game-mode

पहली इमेज. गेम खेलने के दौरान जानकारी के फ़्लो को दिखाने वाली इमेज.

AndroidManifest.xml में GAME वाले ऐप्लिकेशन के लिए, GAME पावर मोड हमेशा सेट होता है.appCategory

GAME_LOADING पावर मोड

लोडिंग बूस्ट मोड, यह पता लगाता है कि गेम ऐप्लिकेशन कब लोड हो रहा है. इसके बाद, यह Power HAL को इसकी सूचना देता है. Android 13 में, डेवलपर के लिए उपलब्ध एपीआई में isLoading नाम की नई गेम स्टेट जोड़ी गई है. यह गेम स्टेट, Power Manager Service में मौजूद नए GAME_LOADING पावर मोड का इस्तेमाल करती है. इससे Power HAL को टॉप लेवल गेम स्टेट के बारे में सूचना मिलती है. गेम लोड होने की स्थिति के बारे में Power HAL को सूचना मिलने के बाद, यह प्लैटफ़ॉर्म की परफ़ॉर्मेंस सेटिंग और सीपीयू क्लॉक रेट को अडजस्ट कर सकता है. इससे गेम लोड होने में लगने वाला समय कम हो जाता है.

गेम लोड हो रहा है, यह दिखाने के लिए गेम ऐप्लिकेशन, गेम डैशबोर्ड का इस्तेमाल करके गेम मैनेजर में isLoading स्टेट सेट करता है. गेम मैनेजर, इस स्थिति को गेम मैनेजर सेवा को पास करता है. यह सेवा, Power Manager Service को चालू करने के लिए, नए GAME_LOADING पावर मोड के साथ setPowerMode का इस्तेमाल करती है. GAME_LOADING पावर मोड, Power HAL को यह बताता है कि गेम लोड हो रहा है, ताकि Power HAL लोडिंग बूस्ट कर सके.

इस इमेज में, ऐप्लिकेशन से PowerHAL तक जानकारी पहुंचने का तरीका बताया गया है. इससे यह पता चलता है कि बैटरी चार्ज हो रही है या नहीं:

loading-boost

दूसरी इमेज. गेम के लोड होने की स्थिति को दिखाने के लिए जानकारी का फ़्लो.

गेम डैशबोर्ड की परफ़ॉर्मेंस सेटिंग में जाकर, उपयोगकर्ता लोडिंग बूस्ट करने की सुविधा को चालू या बंद कर सकते हैं. परफ़ॉर्मेंस सेटिंग हमेशा डिफ़ॉल्ट रूप से बंद होती है.

GAME और GAME_LOADING का इस्तेमाल करके, Power HAL को पसंद के मुताबिक बनाना

GAME और GAME_LOADING मोड का फ़ायदा पाने के लिए, ओईएम को पावर एचएएल के अपने वर्शन को पसंद के मुताबिक बनाना होगा. पावर मैनेजमेंट और परफ़ॉर्मेंस को बेहतर बनाने की सुविधा, हार्डवेयर के हिसाब से काम करती है. इसलिए, Google Pixel डिवाइस के लिए रेफ़रंस इंप्लीमेंटेशन रिलीज़ होने तक, GAME या GAME_LOADING मोड के लिए कोई रेफ़रंस इंप्लीमेंटेशन उपलब्ध नहीं कराया जाता.

GAME और GAME_LOADING मोड में परफ़ॉर्मेंस को बेहतर बनाने के लिए, ओईएम इनमें से किसी एक या एक से ज़्यादा तरीकों को लागू कर सकते हैं:

  • फ़्रेम रेट को स्थिर करना
  • सीपीयू की क्लॉक स्पीड बढ़ाना
  • कुछ समय के लिए तापमान थ्रॉटलिंग को कम करना
  • फ़ोरग्राउंड में चल रहे गेम ऐप्लिकेशन को सीपीयू की ज़्यादा प्राथमिकता असाइन करना
  • गेम के अलावा अन्य ऐप्लिकेशन के लिए, सीपीयू बूस्ट को कम किया गया
  • डिवाइस के तापमान के हिसाब से बैटरी के इस्तेमाल को ऑप्टिमाइज़ करने की रणनीति

गेम मोड लागू होने की जांच करना

GAME मोड को लागू करने की जांच करने के लिए, GameManagerServiceTests.java में testGamePowerMode_ से शुरू होने वाले टेस्ट का इस्तेमाल करें.

GAME_LOADING को लागू करने की जांच करना

GAME_LOADING मोड को लागू करने की जांच करने के लिए, android.gamemanager.cts.GameManagerTest#testSetGameContext का इस्तेमाल करें. इस टेस्ट से यह पुष्टि की जाती है कि परफ़ॉर्मेंस मोड में, isLoading कॉन्टेक्स्ट के साथ isLoading, Power HAL पर गेम लोडिंग मोड को चालू करता है या नहीं.GameManager::setGameContext()