2011-02-03 19 views
5

हे लोग, मैंने लगभग अपना पहला एंड्रॉइड ऐप लिखना समाप्त कर लिया है। यह एक नोट लेने वाला ऐप है, दृश्य स्क्रीन संपादित करें आदि ...एंड्रॉइड - जो अधिक कुशल है?

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

अब मैं चाहता हूं कि मेरा ऐप जितना संभव हो सके उतना कुशल हो और मैं व्यक्तिगत रूप से सोचता हूं कि इसे एक ही गतिविधि में संभालना कम स्मृति भूख और प्रोसेसर गहन है, हालांकि इसका अर्थ नकारात्मक चर हमेशा मौजूद है (और स्मृति का उपभोग) अनलिंक एक अलग गतिविधि में जहां वे खत्म() पर मारे गए हैं। लेकिन आप लोग मुझे अधिक जानकार हैं तो आपको ऐसा करने का सबसे अच्छा तरीका क्या लगता है?

+0

जो आप करना चाहते हैं उसके लिए यह अजीब बात है कि आपको गतिविधियों के बीच इतना चर पारित करने की आवश्यकता है। वे किस तरह के चर हैं? और "बड़ी संख्या" से आपका क्या मतलब है? – Dalmas

+0

क्या आपने वास्तव में एडीएनआर संवाद प्राप्त करने के लिए किसी भी प्रदर्शन के मुद्दों को माप लिया था? यदि नहीं, तो आपको शायद प्रदर्शन के बारे में चिंता न करें। –

उत्तर

5

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

सर्वोत्तम अभ्यास एक नई गतिविधि शुरू करना होगा, सर्वोत्तम प्रदर्शन आपके वर्तमान दृष्टिकोण का उपयोग करने के लिए हो सकता है।

+1

इसके अलावा कई क्रियाकलाप दृष्टिकोण पुन: उपयोग को आसान बनाता है। –

1

आपकी सभी गतिविधियां एक ही प्रक्रिया से रहेंगी और दौड़ेंगी। तो चर के ढेर के चारों ओर गुजरने की कोई वजह नहीं है। आप (उदाहरण के लिए) उन्हें एक सिंगलटन में चिपका सकते हैं जो आपके संदर्भ का प्रतिनिधित्व करता है। जब एक गतिविधि दूसरे को सौंपती है तो यह सिंगलटन में भर जाती है और अगला वाला वहां से अपना डेटा उठाता है।

बेशक यदि आप कभी भी अपने साथ बातचीत करने के लिए बाहरी गतिविधि का इरादा रखते हैं तो आपको इस दृष्टिकोण पर पुनर्विचार करना पड़ सकता है, लेकिन मुझे लगता है कि आप अलग-अलग गतिविधियों के रूप में अपने विचारों को रखने के लिए ठीक होंगे। यहां तक ​​कि अगर स्मृति कभी भी बहुत अधिक है, तो मुझे लगता है कि चीजों को सही तरीके से करना बेहतर है और केवल अनुकूलन के बारे में चिंता करें और केवल जब यह स्पष्ट हो जाए तो आपको इसकी आवश्यकता है।

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