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

Android 14 से, Android डाइनैमिक परफ़ॉर्मेंस फ़्रेमवर्क (ADPF) में 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 Manager Service को यह बताता है कि उपयोगकर्ता कोई गेम खेल रहा है. जब Power HAL को GAME मोड के बारे में सूचना मिलती है, तो वह गेम खेलने के दौरान परफ़ॉर्मेंस को बेहतर बनाने, तापमान को कम करने, और बैटरी लाइफ़ को बढ़ाने के लिए, पावर में बदलाव कर सकता है.

इस इलस्ट्रेशन में, GAME पावर मोड के बारे में बताने के लिए, पावर एचएएल को दी जाने वाली जानकारी के फ़्लो के बारे में बताया गया है:

game-mode

पहली इमेज. गेम चल रहा है, यह बताने के लिए जानकारी का फ़्लो.

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 में जानकारी के फ़्लो के बारे में बताया गया है. इससे, लोडिंग की स्थिति का पता चलता है:

loading-boost

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

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

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

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 पर गेम लोडिंग मोड को चालू करता है या नहीं.