2012-02-09 15 views
8

मैं एंड्रॉइड के लिए 2 डी गेम बना रहा हूं, और मैं हाल ही में अनुकूलन को देख रहा हूं।बैटरी उपयोग, क्या उम्मीद करनी है?

मैंने सेटिंग्स में बैटरी उपयोग को देखा और पाया कि एक घंटे से अधिक समय के लिए मेरे खेल को अग्रभूमि (स्क्रीन पर) छोड़ने के बाद, मैंने बैटरी का 11% (मोटोरोला ज़ूम हनीकॉम) निकाला था।

क्या ऐसा कुछ है जो उपयोगकर्ताओं को अपने फोन/टैबलेट पर गेम से अपेक्षा करनी चाहिए?

जानकारी बहुत थोड़ी:

  • मेरे खेल प्रदर्शन के लिए एक अलग थ्रेड में चलाता है प्रतिपादन (निरंतर प्रस्तुत करना)

  • तर्क के लिए ओपन-एस का उपयोग करता है।

  • मैंने getWindow()। AddFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) का उपयोग किया; सोचा था कि यह आवश्यक था क्योंकि गेम को उपयोगकर्ता से थोड़ा सोचने की आवश्यकता होती है।

  • सरल कण

तो, बैटरी की खपत उस तरह का एक खेल के लिए सामान्य है?

और बैटरी खपत को कम करने के लिए मैं क्या कदम उठा सकता हूं?

+0

यदि आप अपने विभिन्न धागे में छोटे 'थ्रेड.वाइट (टाइमआउट)' को शेड्यूल कर सकते हैं तो यह सीपीयू पर कर हटा देगा और इसलिए बैटरी के लिए बेहतर होगा। यानी अगर आपने हाल ही में स्क्रीन अपडेट की है, तो आप वास्तव में फिर से अपडेट करने से पहले कम से कम 20ms (50 हर्ट्ज) कह सकते हैं। –

+0

@ साइकिलड्यूड एक अच्छा विचार है। गेमप्ले के कुछ हिस्सों के दौरान इसे अभी भी एक अच्छा 30fps की आवश्यकता होगी लेकिन यह अच्छा लगता है। – Jack

+0

@ साइकिलडाड थ्रेड है। इसी तरह की चीज सो जाओ? – Jack

उत्तर

0

अकेले स्क्रीन छोड़ने (गेम चलाने के बिना) समान बैटरी उपयोग उत्पन्न करेगा।

मेरी सलाह है कि जब भी आपके गेम में कोई विराम होता है, या यदि उपयोगकर्ता ने पूर्ण चमक पर इसे छोड़ने का विरोध करते समय एक्स में स्क्रीन को छुआ नहीं है तो स्क्रीन को डिम पर सेट करना होगा।

आप

इन क्षेत्रों की सीमा 0-> 1

आप स्थापित करने की संदर्भ इस here

+0

लेकिन क्या स्क्रीन के बैटरी उपयोग को चार्ट में अपना खुद का सेक्शन नहीं मिलता है? (जो मेरे आंकड़ों के अनुसार बैटरी का 43% उपयोग करता था) – Jack

+0

हाँ! ऐसा होता है। यह अभी भी कुल बैटरी उपयोग में योगदान देगा। इस के अलावा और क्या BicycleDude का सुझाव दिया है, मैं इस लेख को पढ़ने के सुझाव है: http://developer.android.com/training/monitoring-device-state/index.html –

+0

एक बात है के बारे में पता होना करने के लिए है कि स्क्रीन नहीं करता मंद यदि उपयोगकर्ता की चमक "स्वचालित" पर सेट की गई है तो मैं अच्छी तरह से काम नहीं करता हूं (मैंने कभी इसे काम करने में कामयाब नहीं किया है हालांकि यह इस समय प्राथमिकता नहीं है) – Basic

0

जस्टिन जवाब अच्छा है देख सकते हैं screenBrightness/buttonBrightness का समायोजन करके ऐसा कर सकते हैं, लेकिन कुछ पुराने स्कूल की मूल बातें मत भूलना।

आपके प्रोग्राम में व्यस्त प्रतीक्षा होने से बैटरी भी निकल जाएगी। गेम को अग्रिम करने के लिए आपको सीपीयू का उपयोग करना होगा, लेकिन इसमें व्यस्त प्रतीक्षा करने की आवश्यकता नहीं है। गेम प्रक्रिया के चक्र के अगले पुनरावृत्ति तक अनुमानित समय के लिए अपनी प्रक्रिया को सोने के लिए सुनिश्चित करना सुनिश्चित करें।

संबंधित मुद्दे