मैं एक एंड्रॉइड ऐप बना रहा हूं जहां प्रत्येक इकाई में एक बिटमैप होता है जो इसके स्प्राइट का प्रतिनिधित्व करता है। हालांकि, प्रत्येक इकाई को डुप्लिकेट किया जा सकता है (उदाहरण के लिए इकाई asdf की 3 प्रतियां हो सकती हैं)।कमजोर हैमपैप मूल्यों के कमजोर संदर्भ के साथ?
एक दृष्टिकोण सभी sprites को पहले लोड करना है, और फिर इकाइयों के रचनाकारों में सही स्प्राइट डालना है।
हालांकि, मैं बिटमैप्स को आलसी रूप से डीकोड करना चाहता हूं, ताकि इकाइयों के निर्माता बिटमैप्स को डीकोड कर सकें। इसके साथ एकमात्र समस्या यह है कि डुप्लीकेट इकाइयां 2x स्मृति का उपयोग करके दो बार समान बिटमैप लोड करेंगी (या एन बार अगर इकाई एन बार बनाई जाती है)।
इसे ठीक करने के लिए, मैंने एक सिंगुलर बिटमैप फैक्ट्री बनाई है जो एक डिकोडेड बिटमैप को हैश में संग्रहीत करेगा, और यदि एक ही बिटमैप को फिर से पूछा जाता है, तो बस एक नया निर्माण करने के बजाय पहले से ही एक शेड को वापस कर देगा। हालांकि, इसके साथ समस्या यह है कि फैक्ट्री में सभी बिटमैप्स की प्रतिलिपि होती है, और इसलिए कभी कचरा एकत्र नहीं किया जाएगा।
हैशप को कमजोर संदर्भित मानों के साथ स्विच करने का सबसे अच्छा तरीका क्या है? दूसरे शब्दों में, मैं एक संरचना चाहता हूं जहां मूल्य किसी अन्य ऑब्जेक्ट का संदर्भ नहीं रखता है, लेकिन जब तक कोई अन्य ऑब्जेक्ट इसे संदर्भित नहीं करता है, तो यह GC'd हो सकता है।
आप से! यह बिटमैप से निपटने के मामले में बहुत सरल और बहुत प्रभावी है। केवल एक कुंजी के रूप में पूर्ण पथ का उपयोग करना और यह बहुत सुविधाजनक है और विवरण से लीक –