अगर आपके पास अच्छी तरह से डिज़ाइन किया गया कोई व्यू है, जो जेस्चर पर प्रतिक्रिया देता है और अलग-अलग स्थितियों के बीच ट्रांज़िशन करता है, तो पक्का करें कि व्यू तेज़ी से काम करे. अगर आपको ऐसा यूज़र इंटरफ़ेस (यूआई) नहीं चाहिए जो प्लेबैक के दौरान धीमा हो या अटकता हो, तो पक्का करें कि ऐनिमेशन लगातार 60 फ़्रेम प्रति सेकंड पर चल रहे हों.
व्यू को तेज़ी से लोड करना
व्यू को तेज़ी से लोड करने के लिए, उन रूटीन से गै़रज़रूरी कोड हटाएं जिन्हें अक्सर कॉल किया जाता है. onDraw() से शुरुआत करें. इससे आपको सबसे ज़्यादा फ़ायदा मिलेगा. खास तौर पर, onDraw() में मेमोरी के लिए जगह न छोड़ें. इसकी वजह यह है कि मेमोरी के लिए जगह छोड़ने से, गार्बेज कलेक्शन हो सकता है. इससे गेम में रुकावट आ सकती है. ऑब्जेक्ट असाइन करना
शुरू करने के दौरान या ऐनिमेशन के बीच. ऐनिमेशन चलते समय कभी भी जगह न दें.
onDraw() को छोटा बनाने के साथ-साथ, यह भी पक्का करें कि इसे कम से कम कॉल किया जाए. onDraw() पर आने वाले ज़्यादातर कॉल, invalidate() पर किए गए कॉल की वजह से आते हैं. इसलिए, invalidate() पर किए गए गैर-ज़रूरी कॉल को कम करें.
लेआउट को ट्रैवर्स करना भी एक महंगा ऑपरेशन है. जब कोई व्यू requestLayout() को कॉल करता है, तो Android यूज़र इंटरफ़ेस (यूआई) सिस्टम, पूरी व्यू हैरारकी को पार करता है. इससे यह पता चलता है कि हर व्यू कितना बड़ा होना चाहिए. अगर इसे अलग-अलग मेज़रमेंट मिलते हैं, तो यह हैरारकी को कई बार ट्रैवर्स कर सकता है. यूज़र इंटरफ़ेस (यूआई) डिज़ाइनर, कभी-कभी नेस्ट किए गए ViewGroup ऑब्जेक्ट की डीप हैरारकी बनाते हैं. डीप व्यू की इन हैरारकी की वजह से, परफ़ॉर्मेंस से जुड़ी समस्याएं होती हैं. इसलिए, व्यू हैरारकी को जितना हो सके उतना कम रखें.
अगर आपके पास कोई जटिल यूज़र इंटरफ़ेस (यूआई) है, तो उसके लेआउट को लागू करने के लिए, कस्टम ViewGroup लिखें.
बिल्ट-इन व्यू के उलट, आपका कस्टम व्यू ऐप्लिकेशन के हिसाब से, अपने चाइल्ड व्यू के साइज़ और शेप के बारे में अनुमान लगा सकता है. इसलिए, मेज़रमेंट का हिसाब लगाने के लिए, इसे अपने चाइल्ड व्यू को ट्रैवर्स करने की ज़रूरत नहीं होती.
उदाहरण के लिए, अगर आपके पास कोई ऐसा कस्टम ViewGroup है जो अपने सभी चाइल्ड व्यू के हिसाब से अपना साइज़ नहीं बदलता है, तो आपको सभी चाइल्ड व्यू को मेज़र करने की ज़रूरत नहीं होती. अगर इस्तेमाल के कई उदाहरणों के लिए, पहले से मौजूद लेआउट का इस्तेमाल किया जाता है, तो इस ऑप्टिमाइज़ेशन को लागू नहीं किया जा सकता.