मैं एंड्रॉइड के लिए ऐप बना रहा हूं, मेरी गतिविधि में मुझे लगभग 10000 तारों की एक सरणी लोड करने की आवश्यकता है। डेटाबेस से इसे लोड करना धीमा था, इसलिए मैंने इसे सीधे एक .java फ़ाइल (एक निजी क्षेत्र के रूप में) में डालने का फैसला किया। मेरे पास स्ट्रिंग एरे युक्त इन कक्षाओं में से लगभग 20 हैं और मेरा प्रश्न यह है कि, मेरे आवेदन शुरू होने के बाद स्मृति में लोड की गई सभी कक्षाएं हैं? यदि ऐसा है तो जिस गतिविधि में मुझे इन तारों की आवश्यकता है, उसे जल्दी से लोड किया जाएगा, लेकिन पूरी तरह से एप्लिकेशन की धीमी शुरुआत होगी ... क्या कोई अन्य तरीका है, फ़ाइल से 10000 स्ट्रिंग सरणी को कितनी जल्दी लोड करना है?क्या एप्लाइक्शन शुरू होने के बाद मेरे जावा एप्लिकेशन में सभी .class फ़ाइलें स्मृति में लोड हो गई हैं?
अद्यतन: मुझे इन तारों की आवश्यकता क्यों है? मेरा एंड्रॉइड ऐप आपको प्राग के सार्वजनिक पारगमन में "यात्रा" ढूंढने की अनुमति देता है - आप प्रस्थान स्टॉप, आगमन स्टॉप चुनते हैं और यह आपकी यात्रा पाता है (here देखें)। मेरे ऐप में एक सुझाव सुविधा है - आप अपने प्रस्थान स्टॉप के रूप में लीटर "सी" दर्ज करते हैं और एक सुझाव ListView "c" से शुरू होने वाली स्टॉप के साथ प्रकट होता है। इन सुझावों के लिए मुझे तारों की आवश्यकता है। डेटाबेस से सुझाव प्राप्त करना धीमा है (जी 1 पर लगभग 400 मिमी)।
उन तारों के लिए क्या हैं? – Macarse
अधिकतर एंड्रॉइड डिवाइस मुख्य मेमोरी से भूखे हैं, यदि संभव हो तो मैं उन स्ट्रिंग्स को फ्लाई पर उत्पन्न करूंगा। –
यदि आप उन्हें किसी सूची में दिखा रहे हैं, तो ListView + CursorAdapter उन्हें फ्लाई पर बहुत तेज़ी से लोड करेगा। ऐसे बुनियादी मामले के लिए आपको Android पर SQLite के साथ कोई प्रदर्शन समस्या नहीं होनी चाहिए। –