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

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

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 का इस्तेमाल करके पावर एचएएल को मनमुताबिक बनाएं

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