मैंने अपनी प्रोफाइलिंग की है और ऐसा लगता है कि मेरा अधिकांश समय ड्रॉ बिटमैप के दौरान बिताया जाता है, जिसे प्रत्येक फ्रेम पर (समझदारी से) कहा जाता है।कैनवास ड्राइंग को अनुकूलित कैसे करें - एंड्रॉइड पर drawBitmap?
मैं सुरंग दृश्य/अद्यतन थ्रेड/कैनवास लॉकिंग दृष्टिकोण का उपयोग करता हूं जैसा कि चंद्र लैंडर नमूने में दिखाया गया है। लेकिन मैं
-
पहले ही फ्रेम पर
- के रूप में (this question के अनुसार) यह बदल दिया है एक बिटमैप बफर का निर्माण और रंग पर इसे
- रंग प्रत्येक अनुवर्ती फ्रेम पुन: उपयोग कि बिटमैप (अपनी स्क्रीन परिवर्तन पर सब कुछ नहीं है)
- प्रत्येक फ्रेम के अंत में लक्ष्य कैनवास (स्क्रीन पर)
Traceview मुझे पता चला कि इस drawBitmap मेरी 800x480 डिवाइस पर प्रत्येक फ्रेम के लिए 5ms लेता में एक बार बफर पेंट। क्या मैं उससे बेहतर कुछ प्राप्त कर सकता हूं या यह सिर्फ कुछ ऐसा है जो 'पत्थर में बना हुआ' है और मुझे प्रति सेकंड अच्छे फ्रेम प्राप्त करने के लिए कोड के अन्य हिस्सों को अनुकूलित करना होगा?
आप गंदा आयत का ट्रैक प्रत्येक फ्रेम रख सकते और केवल कि अद्यतन? जाहिर है, यदि आप ऊपरी बाएं और निचले दाएं कोने में थोड़ा सा बदलते हैं तो इससे आपको बहुत मदद नहीं मिलेगी। – EboMike
ओपनजीएल शायद आपके लिए बेहतर विकल्प होगा। मैंने फोन और टैबलेट पर कई परीक्षण चलाए हैं और ड्रॉ बिटमैप() मुख्य रूप से टैबलेट पर बहुत धीमी है। हालांकि, यहां आपके लिए कुछ विकल्प दिए गए हैं: http://www.independent-software.com/android-speeding-up-canvas-drawbitmap/ –