इस दस्तावेज़ में, परफ़ॉर्मेंस को बेहतर बनाने के बारे में बताया गया है. इससे आपको अपने हार्डवेयर का ज़्यादा से ज़्यादा फ़ायदा पाने में मदद मिलेगी.
OpenGLRenderer (libhwui) प्रॉपर्टी
इस दस्तावेज़ में उन सभी प्रॉपर्टी की सूची दी गई है जिनका इस्तेमाल करके, Android की 2D हार्डवेयर ऐक्सेलरेटेड रेंडरिंग पाइपलाइन को कंट्रोल किया जा सकता है. इन प्रॉपर्टी को device.mk
में PRODUCT_PROPERTY_OVERRIDES
के तौर पर सेट करें.
Android के सभी वर्शन के लिए प्रॉपर्टी
प्रॉपर्टी | टाइप | डिफ़ॉल्ट मान | ब्यौरा |
---|---|---|---|
ro.zygote.disable_gl_preload |
boolean |
false |
इसका इस्तेमाल, बूट के समय Zygote में EGL/GL ड्राइवर को पहले से लोड करने की सुविधा को चालू/बंद करने के लिए किया जाता है. इस प्रॉपर्टी को 'गलत है' पर सेट करने पर, Zygote, eglGetDisplay(EGL_DEFAULT_DISPLAY) को कॉल करके GL ड्राइवर को पहले से लोड कर देगा. इसका मकसद, Zygote में डाइनैमिक लाइब्रेरी कोड को लोड करना है, ताकि उसे अन्य सभी प्रोसेस के साथ शेयर किया जा सके. अगर कोई ड्राइवर शेयर नहीं किया जा सकता, तो इस प्रॉपर्टी को 'सही' पर सेट करें. |
Android 8.0 और इससे पुराने वर्शन के लिए प्रॉपर्टी
प्रॉपर्टी | टाइप | डिफ़ॉल्ट मान | ब्यौरा |
---|---|---|---|
ro.hwui.disable_scissor_opt |
boolean |
false |
इसका इस्तेमाल, कैंची के आकार वाले ऑप्टिमाइज़ेशन को चालू या बंद करने के लिए किया जाता है. स्वीकार की जाने वाली वैल्यू, 'सही' और 'गलत' हैं. जब कैंची का ऑप्टिमाइज़ेशन चालू होता है, तो OpenGLRenderer, GL कैंची टेस्ट को चुनिंदा तौर पर चालू और बंद करके, कैंची का इस्तेमाल कम से कम करने की कोशिश करता है. ऑप्टिमाइज़ेशन बंद होने पर, OpenGLRenderer, GL कैंची टेस्ट को चालू रखता है और ज़रूरत के हिसाब से कैंची के आकार में बदलाव करता है. कुछ जीपीयू (उदाहरण के लिए, SGX 540) बेहतर परफ़ॉर्म करते हैं, जब स्किसोर टेस्ट को चालू या बंद करने के बजाय, स्किसोर रेक्ट को ज़्यादा बार बदला जाता है. |
ro.hwui.texture_cache_size |
float |
24 |
हर प्रोसेस के लिए टेक्सचर कैश का साइज़, मेगाबाइट में तय करता है. हमारा सुझाव है कि आप 32-बिट टेक्सचर की कई स्क्रीन को स्टोर करने के लिए, ज़रूरत के मुताबिक कैश मेमोरी का इस्तेमाल करें. उदाहरण के लिए, 1280x800 डिसप्ले पर, फ़ुल स्क्रीन बफ़र में करीब 4 एमबी का इस्तेमाल होता है. इसलिए, कैश मेमोरी कम से कम 20 एमबी होनी चाहिए. |
ro.hwui.layer_cache_size |
float |
16 |
हर प्रोसेस लेयर कैश मेमोरी का साइज़, मेगाबाइट में तय करता है. हमारा सुझाव है कि आप इतना बड़ा कैश मेमोरी इस्तेमाल करें कि उसमें 32 बिट में स्क्रीन का चार गुना डेटा सेव हो सके. उदाहरण के लिए, 1280x800 डिसप्ले पर, फ़ुल स्क्रीन बफ़र करीब 4 एमबी का इस्तेमाल करता है. इसलिए, कैश मेमोरी कम से कम 16 एमबी होनी चाहिए. |
ro.hwui.gradient_cache_size |
0.5 |
float |
हर प्रोसेस के ग्रेडिएंट कैश मेमोरी का साइज़, मेगाबाइट में तय करता है. आम तौर पर, एक ग्रेडिएंट 1 से 4 केबी तक मेमोरी लेता है. हमारा सुझाव है कि आप कम से कम बारह ग्रेडिएंट को स्टोर करने के लिए, इतना बड़ा कैश मेमोरी का इस्तेमाल करें. |
ro.hwui.patch_cache_size |
integer |
128 |
हर प्रोसेस के लिए, नौ पैच वाले कैश मेमोरी का साइज़, किलोबाइट में तय करता है. इस कैश मेमोरी में सिर्फ़ वर्टेक्स डेटा सेव होता है. इसलिए, इसे छोटा रखा जा सकता है. हर वर्टिक्स, चार फ़्लोट या 16 बाइट से बना होता है. |
ro.hwui.path_cache_size |
float |
4 |
यह हर प्रोसेस के पाथ कैश मेमोरी का साइज़, मेगाबाइट में तय करता है. हमारा सुझाव है कि आप इतना बड़ा कैश मेमोरी इस्तेमाल करें कि उसमें कम से कम एक स्क्रीन के 32-बिट टेक्सचर सेव किए जा सकें. उदाहरण के लिए, 1280x800 डिसप्ले पर, फ़ुल स्क्रीन बफ़र करीब 4 एमबी का इस्तेमाल करता है. इसलिए, कैश मेमोरी कम से कम 4 एमबी होनी चाहिए. |
ro.hwui.shape_cache_size |
float |
1 |
हर प्रोसेस के आकार के कैश मेमोरी का साइज़, मेगाबाइट में तय करता है. इस वैल्यू का इस्तेमाल कई कैश मेमोरी में किया जाता है. जैसे, सर्कल और राउंड किए गए रेक्टैंगल. हमारा सुझाव है कि आप ज़रूरत के हिसाब से इतना बड़ा कैश मेमोरी इस्तेमाल करें कि उसमें कम से कम एक 8-बिट स्क्रीन सेव की जा सके. उदाहरण के लिए, 1280x800 डिसप्ले पर, फ़ुल स्क्रीन बफ़र करीब 1 एमबी का इस्तेमाल करता है. इसलिए, कैश मेमोरी कम से कम 1 एमबी होनी चाहिए. |
ro.hwui.drop_shadow_cache_size |
float |
2 |
इससे, हर प्रोसेस के लिए टेक्स्ट ड्रॉप शैडो कैश मेमोरी का साइज़, मेगाबाइट में तय होता है. हमारा सुझाव है कि आप इतना बड़ा कैश मेमोरी इस्तेमाल करें कि उसमें दो स्क्रीन के 8-बिट टेक्सचर सेव किए जा सकें. उदाहरण के लिए, 1280x800 डिसप्ले पर, फ़ुल स्क्रीन बफ़र में करीब 1 एमबी का इस्तेमाल होता है. इसलिए, कैश मेमोरी कम से कम 2 एमबी होनी चाहिए. |
ro.hwui.r_buffer_cache_size |
float |
2 |
हर प्रोसेस के लिए, रेंडर बफ़र कैश का साइज़ मेगाबाइट में तय करता है. हमारा सुझाव है कि 8 बिट में स्क्रीन के दोगुने हिस्से को कैश मेमोरी में सेव करने के लिए, ज़रूरत के मुताबिक कैश मेमोरी का इस्तेमाल करें. उदाहरण के लिए, 1280x800 डिसप्ले पर, फ़ुल स्क्रीन बफ़र में करीब 1 एमबी का इस्तेमाल होता है. इसलिए, कैश मेमोरी कम से कम 2 एमबी होनी चाहिए. अगर डिवाइस में 4 बिट या 1 बिट स्टेंसिल बफ़र काम करते हैं, तो कैश मेमोरी का साइज़ छोटा हो सकता है. |
ro.hwui.texture_cache_flush_rate |
float |
0.6 |
यह तय करता है कि मेमोरी फ़्लश करने के बाद, टेक्स्चर कैश का कितना प्रतिशत हिस्सा रखना है. मेमोरी फ़्लश तब ट्रिगर होते हैं, जब सिस्टम को सभी ऐप्लिकेशन के लिए मेमोरी फिर से हासिल करनी होती है. हमारा सुझाव है कि ऐसी स्थितियों में, कैश मेमोरी का करीब 50% हिस्सा खाली कर दें. |
ro.hwui.text_small_cache_width |
integer |
1024 |
डिफ़ॉल्ट फ़ॉन्ट कैश मेमोरी की चौड़ाई को पिक्सल में तय करता है. ऊपरी सीमा इस बात पर निर्भर करती है कि जीपीयू, टेक्सचर को कितनी तेज़ी से अपलोड कर सकता है. हमारा सुझाव है कि कम से कम 1024 पिक्सल और ज़्यादा से ज़्यादा 2048 पिक्सल वाली इमेज का इस्तेमाल करें. आपको दो की घात वाली वैल्यू का भी इस्तेमाल करना चाहिए. |
ro.hwui.text_small_cache_height |
integer |
256 |
डिफ़ॉल्ट फ़ॉन्ट कैश मेमोरी की ऊंचाई, पिक्सल में तय करता है. ऊपरी सीमा इस बात पर निर्भर करती है कि जीपीयू, टेक्सचर को कितनी तेज़ी से अपलोड कर सकता है. हमारा सुझाव है कि कम से कम 256 पिक्सल और ज़्यादा से ज़्यादा 1024 पिक्सल का इस्तेमाल करें. |
ro.hwui.text_large_cache_width |
integer |
2048 |
बड़े फ़ॉन्ट कैश मेमोरी की चौड़ाई, पिक्सल में तय करता है. इस कैश का इस्तेमाल उन ग्लिफ़ के लिए किया जाता है जो डिफ़ॉल्ट फ़ॉन्ट कैश में फ़िट नहीं होते. ऊपरी सीमा इस बात पर निर्भर करती है कि जीपीयू, टेक्सचर को कितनी तेज़ी से अपलोड कर सकता है. हमारा सुझाव है कि आप कम से कम 2048 पिक्सल और ज़्यादा से ज़्यादा 4096 पिक्सल का इस्तेमाल करें. आपको दो की घात वाली वैल्यू का भी इस्तेमाल करना चाहिए. |
ro.hwui.text_large_cache_height |
integer |
512 |
बड़े फ़ॉन्ट कैश मेमोरी की ऊंचाई, पिक्सल में तय करता है. बड़े फ़ॉन्ट कैश का इस्तेमाल उन ग्लिफ़ के लिए किया जाता है जो डिफ़ॉल्ट फ़ॉन्ट कैश में फ़िट नहीं होते. ऊपरी सीमा इस बात पर निर्भर करती है कि जीपीयू, टेक्सचर को कितनी तेज़ी से अपलोड कर सकता है. हमारा सुझाव है कि कम से कम 512 पिक्सल और ज़्यादा से ज़्यादा 2048 पिक्सल का इस्तेमाल करें. आपको दो की घात वाली वैल्यू का भी इस्तेमाल करना चाहिए. |
hwui.text_gamma_correction |
string |
lookup |
टेक्स्ट के लिए, गैमा सुधार की तकनीक चुनता है. इसके चार विकल्प हैं:
lookup तकनीक का इस्तेमाल करें. यह क्वालिटी, स्पीड, और मेमोरी के इस्तेमाल के मामले में बेहतर परफ़ॉर्म करती है.
|
hwui.text_gamma |
float |
1.4 |
टेक्स्ट की गैमा वैल्यू को ठीक करने के लिए इस्तेमाल की जाने वाली गैमा वैल्यू तय करता है. इस वैल्यू को, डिवाइस के डिसप्ले के हिसाब से अडजस्ट किया जा सकता है. |
hwui.text_gamma.black_threshold |
integer |
64 |
यह चमक के थ्रेशोल्ड को तय करता है. इस थ्रेशोल्ड से नीचे, ब्लैक गामा सुधार लागू होता है. वैल्यू, 0 से 255 के बीच होनी चाहिए. |
hwui.text_gamma.white_threshold |
integer |
192 |
इससे ल्यूमिनेंस थ्रेशोल्ड तय होता है. इस थ्रेशोल्ड से ऊपर, सफ़ेद गामा सुधार लागू होता है. वैल्यू, 0 से 255 के बीच होनी चाहिए. |
hwui.use_gpu_pixel_buffers |
boolean |
true |
इसका इस्तेमाल, OpenGL ES 3.0 हार्डवेयर पर PBOs के इस्तेमाल को चालू या बंद करने के लिए किया जाता है. रेंडरर, एसिंक्रोनस टेक्सचर अपलोड करने के लिए PBO का इस्तेमाल करता है. खास तौर पर, फ़ॉन्ट कैश मेमोरी के लिए. इस प्रॉपर्टी को हमेशा चालू रखना चाहिए. हालांकि, अगर PBO के इस्तेमाल से डेटा खराब हो जाता है या परफ़ॉर्मेंस खराब हो जाती है, तो इसे शुरू करने या डेवलपमेंट के दौरान बंद किया जा सकता है. इसलिए, प्रॉपर्टी को सिर्फ़ पढ़ा नहीं जा सकता. |