दिलचस्प पोस्ट
टी.आर. की ऊंचाई कैसे तय करेगी? आवश्यक फ़ील्ड सत्यापन JQuery पॉपअप MVC 4 में काम नहीं कर रहे हैं कोको में यादृच्छिक अल्फ़ान्यूमेरिक स्ट्रिंग उत्पन्न करें .NET / C # – कन्वर्ट चार तार करने के लिए एंड्रॉइड के लिए सॉफ्ट कीबोर्ड कैसे विकसित किया जाए? रेंज (शुरू, अंत) क्यों शामिल नहीं है अंत? विशिष्ट सीएसएस नियमों को केवल क्रोम में कैसे लागू किया जाए? LINQ के साथ `n` भागों में एक संग्रह को विभाजित करें? जावास्क्रिप्ट का उपयोग यूआरएल से डेटा प्राप्त करने के लिए कैसे करें? एंड्रॉइड डेवलपर कन्सोल में रहस्यमय स्टैकट्रॉस (बिटमैप आकार 32bits से अधिक है) एंड्रॉइड ऐप अपडेट करें (Google Play के बिना) .html एक्सटेंशन जोड़ने के लिए नियम फिर से बनाएं कैसे पता करें कि कोई तत्व किसी सरणी में है या नहीं रजिस्ट्री और WOW6432Node कुंजी को पढ़ना सूचियों की सूची में ट्यूपल्स की एक सूची परिवर्तित करें

ऐप का अधिकतम उपयोग कितना होता है?

मैं एंड्रॉइड ऑपरेटिंग सिस्टम के स्मृति प्रबंधन से संबंधित इस प्रश्न के बारे में बहुत उत्सुक हूं इसलिए मुझे उम्मीद है कि उस विषय पर काफी विस्तृत उत्तर के लिए होगा।

मैं क्या जानना चाहूंगा:

  • स्मृति की अधिकतम राशि ( मेगाबाइट में / कुल रैम के प्रतिशत के रूप में) क्या एक एंड्रॉइड एप्लिकेशन (जो कि सिस्टम ऐप नहीं है) का उपयोग कर सकते हैं?
  • क्या Android संस्करणों के बीच कोई अंतर है?
  • क्या डिवाइस के निर्माता से संबंधित कोई मतभेद हैं?

और सबसे महत्वपूर्ण रूप से:

  • कौन सी "पक्ष कारक" को ध्यान में रखा जाता है / यह सिस्टम पर आने पर निर्भर करता है कि यह निर्धारित करता है कि कितनी रैम एक ऐप रनटाइम पर इस्तेमाल कर सकता है (यह सोचते हुए कि प्रति मेमरी अधिकतम प्रति एक स्थैतिक संख्या नहीं है)?

जो मैंने अब तक सुना है (2013 तक):

  • प्रारंभिक एंड्रॉइड डिवाइस में 16 एमबी की एक प्रति-ऐप थी
  • बाद में इस टोपी को 24 एमबी या 32 एमबी तक बढ़ा दिया गया

क्या मुझे बहुत उत्सुक बनाता है:

इन दोनों सीमाएं बहुत कम हैं

मैंने हाल ही में अपने डिवाइस रैम की जांच करने के लिए एंड्रॉइड टास्क मैनेजर डाउनलोड किया है । मैंने जो गौर किया है वह है कि लगभग 40-50 मेगाबाइट के राम का उपयोग करने वाले एप्लिकेशन हैं, जो कि अधिकतम 32 एमबी रैम उपयोग की तुलना में अधिक है। तो एंड्रॉइड कैसे तय करता है कि ऐप कितनी रैम का इस्तेमाल कर सकता है? यह कैसे संभव है कि ऐप्स उस सीमा से अधिक हो?

इसके अलावा, मैंने देखा कि मेरे क्रैश के कुछ ऐप्स (सिस्टम द्वारा मारे गए?) एक आउटऑफममेरी एक्सपैशन के साथ जब 30-40 मेगाबाइट्स का उपयोग करते हैं दूसरी ओर, मेरे पास कुछ समय (शायद मेमोरी लीक के कारण) के बाद 100 एमबी और अधिक का उपयोग करते हुए मेरे फोन पर क्षुधा चल रहा है जो कि दुर्घटनाग्रस्त नहीं है या मारे गए नहीं हैं। तो यह स्पष्ट रूप से एप पर ही निर्भर करता है कि यह तय करने के लिए आता है कि कितना रैम बचाया जा सकता है। यह कैसे संभव है? (मैंने 768 एमबी रैम के साथ एचटीसी वन एस के साथ अपने परीक्षण किए)

आपके स्पष्टीकरण के लिए अग्रिम धन्यवाद

अस्वीकरण: मैं एंड्रॉइड टास्क प्रबंधक ऐप से किसी भी तरह से संबद्ध नहीं हूं।

Solutions Collecting From Web of "ऐप का अधिकतम उपयोग कितना होता है?"

स्मृति की अधिकतम राशि (मेगाबाइट में / कुल रैम के प्रतिशत के रूप में) क्या एक एंड्रॉइड एप्लिकेशन (जो कि सिस्टम ऐप नहीं है) का उपयोग कर सकते हैं?

यह उपकरण के अनुसार भिन्न होता है ActivityManager पर getMemoryClass() आपको अपने कोड पर चल रहे डिवाइस के लिए मूल्य दे देंगे

क्या Android संस्करणों के बीच कोई अंतर है?

हां, जैसा कि ओएस आवश्यकताओं के वर्षों में वृद्धि हुई है, और उपकरणों को मैच के लिए समायोजित करना होगा।

क्या डिवाइस के निर्माता से संबंधित मतभेद हैं?

हां, निर्माताओं के विनिर्माण उपकरणों के रूप में, और आकार डिवाइस के अनुसार भिन्न होता है।

कौन सा "पक्ष कारक" को ध्यान में रखा जाता है जब यह निर्धारित करता है कि ऐप कितनी रैम का उपयोग कर सकता है?

मुझे नहीं पता है कि "पक्ष कारक" का अर्थ क्या है

प्रारंभिक उपकरणों में 16 एमबी की एक प्रति-ऐप थी; बाद में उपकरणों ने 24 एमबी या 32 एमबी तक बढ़ा दिया

यह सही है स्क्रीन रिज़ॉल्यूशन एक महत्वपूर्ण निर्धारक है, क्योंकि बड़े प्रस्तावों का मतलब बड़ा बिटमैप है, और इसलिए टैबलेट और उच्च-रिज़ॉल्यूशन वाले फोनों में अभी तक उच्च मूल्यों की संभावना है। उदाहरण के लिए, आप 48 एमबी के ढेर वाले उपकरणों को देखेंगे, और मुझे आश्चर्य नहीं होगा कि उस मूल्य से अधिक मूल्य क्या हैं I

यह कैसे संभव है कि ऐप्स उस सीमा से अधिक हो?

आप मानते हैं कि उस ऐप का लेखक जानता है कि वह क्या कर रहा है। एक एंड्रॉइड इंजिनियर के लिए एक एप के मेमोरी उपयोग को समझना मुश्किल है , मैं यह नहीं मानूंगा कि प्रश्न में ऐप आवश्यक रूप से सटीक परिणाम प्रदान कर रहा है

कहा जा रहा है कि, देशी कोड (एनडीके) हीप की सीमा के अधीन नहीं है। और, एंड्रॉइड 3.0 के बाद से, ऐप "बड़े ढेर" का अनुरोध कर सकते हैं, आमतौर पर एमबी रेंज के सैकड़ों में, लेकिन यह अधिकांश ऐप्स के लिए खराब फ़ॉर्म माना जाता है।

इसके अलावा, मैंने देखा कि मेरे आउटपुट के कुछ क्षुधा आउटऑफममेरी अपॉसिशन के साथ 30-40 मेगाबाइट के आसपास का उपयोग करते हुए।

ध्यान रखें कि एंड्रॉइड कूड़ा कलेक्टर कॉम्पैक्टिंग कूड़ा कलेक्टर नहीं है। अपवाद सचमुच होना चाहिए CouldNotFindSufficientlyLargeBlockOfMemoryException , लेकिन यह शायद बहुत शब्दशः माना गया था। OutOfMemoryException मतलब है कि आप अपने अनुरोधित ब्लॉक आवंटित नहीं कर सके , नहीं कि आपने पूरी तरह से अपने ढेर को समाप्त किया है

प्रति एप्लिकेशन स्मृति सीमा स्क्रीन आकार और एंड्रॉइड वर्जन पर निर्भर करता है: https://drive.google.com/file/d/0B7Vx1OvzrLa3Y0R0X1BZbUpicGc/view?usp=sharing

स्रोत: एंड्रॉइड संगतता डाउनलोड http://source.android.com/compatibility/downloads.html ; संगतता परिभाषा दस्तावेज़ (सीडीडी), अनुभाग वर्चुअल मशीन संगतता या रनटाइम संगतता

यह उत्तर getMemoryClass() और maxMemory() तरीकों के व्यवहार में गहरा होता है