2010-08-20 13 views
5

मैंने एक ही कार्यक्रम को दो तरीकों से लिखा था।SurfaceView बनाम कस्टम व्यू (दृश्य से विस्तारित)। SurfaceView धीमा है, क्यों?

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

हालांकि, मेरे सरल ऐप में, मैं स्पष्ट रूप से देख सकता हूं कि अमान्य करने के लिए कॉल के साथ एक कस्टम व्यू का उपयोग तेजी से प्रस्तुत करना प्रतीत होता है।

आप इस बारे में क्या जानते हैं/सोचते हैं?

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

उत्तर

2

SurfaceView ड्राइंग के लिए 2 बफर पर काम करने में सक्षम बनाता है, आपके कस्टम व्यू के बारे में कैसे?

एक और बात: आपने बताया कि दस्तावेज़ invalidate धीमे एनिमेशन/कम तीव्र ग्राफिक्स पर तेजी से काम करता है। आपका "सरल ऐप" कितना तीव्र है? आपको तनाव परीक्षण करने की कोशिश करनी चाहिए और यह भी ध्यान में रखना चाहिए कि एकल धागा आपके स्पर्श-इनपुट को कैसे संभालता है।

मेरे पास मेरे खेल में 3 धागे हैं। खेल तर्क के लिए एक, ड्राइंग के लिए एक और फिर "सामान्य" यूआई थ्रेड ...

+0

मेरा ऐप टच इनपुट लेता है और टच स्क्रीन पर चारों ओर स्लाइड करते समय आपकी उंगली का अनुसरण करने वाले सर्कल को खींचता है। मैं ऐप के सतही दृश्य संस्करण के साथ एक और अधिक अंतराल नोटिस। मैं कहूंगा, मेरा ऐप यूआई इनपुट और ग्राफिक्स की प्रसंस्करण के मामले में गहन नहीं है। –

+0

फिर मैं गहन अन्यथा परिभाषित करता हूं। वास्तविक प्रदर्शन को निर्धारित करने के लिए, आपको सतही दृश्य के लिए अलग-अलग धागे के लिए टच प्रोसेसिंग और ग्राफ़िक अलग करना चाहिए। फिर आपको वास्तविक परिणाम मिलते हैं। इसके अलावा एक सर्कल को आकर्षित करने के लिए और भी अधिक करें, क्योंकि तीव्र अधिक है ... आपने किस डिवाइस पर परीक्षण किया था? – WarrenFaith

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