2010-06-20 11 views
5

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

मुझे पता है कि अगर यह संभव है, प्रत्येक आवेदन (यह डिफ़ॉल्ट 16 एमबी की है) के लिए Dalvik वी एम द्वारा आवंटित डिफ़ॉल्ट स्मृति का मान बदलने के लिए किसी भी तरह से, एंड्रॉयड 1.6 OS का उपयोग कर चाहते हैं। क्या किसी ने देखा है जो कृपया मेरी मदद कर सकता है?

मैं भी Android 2.1 संगतता परिभाषा दस्तावेज़ (यहाँ उपलब्ध: http://static.googleusercontent.com/external_content/untrusted_dlcp/source.android.com/pt-PT//compatibility/android-2.1-cdd.pdf ) में पढ़ा है कि यह संभव है 24 एमबी या यहां तक ​​कि एक बड़ा करने के लिए 16 एमबी से Dalvik वीएम द्वारा स्मृति के आवंटन को बदलने के लिए यदि आवश्यक हो तो राशि, लेकिन यह कहीं भी नहीं किया जा सकता है कि यह कैसे किया जा सकता है।

अगर किसी ने पहले उन मुद्दों पर ध्यान दिया है और मुझे कुछ सहायता या संकेत दे सकता है, तो इसकी सराहना की जाएगी। धन्यवाद।

+0

Btw: नेक्सस वन डिफ़ॉल्ट ढेर आकार एप्लिकेशन –

उत्तर

7

एक सामान्य डिवाइस पर आप अपने आवेदन की ढेर-सीमाएं नहीं बदल सकते हैं। वे OEM द्वारा हार्डकोडेड हैं। यदि आप किसी ऐसे डिवाइस के लिए विकास कर रहे हैं जिसमें आपका पूर्ण नियंत्रण है, तो आप अधिक ढेर स्थान की अनुमति देने के लिए Dalvik स्टार्टअप स्क्रिप्ट को संशोधित कर सकते हैं।

+0

प्रति 24 एमबी पर पहले से ही है पर आप पर कैसे करने के लिए जानकारी है प्रति ऐप के उच्च डिफ़ॉल्ट ढेर आकार के बारे में Dalvik स्टार्टअप स्क्रिप्ट संशोधित करें? क्या फोन के लिए जड़ की जरूरत है? मैं एक ऐप विकसित कर रहा हूं जिसे एक डिवाइस के साथ एक साथ बंडल/वितरित किया जाएगा, जहां मैं पूर्ण नियंत्रण में रहूंगा, रूट नहीं (अभी तक)। –

+2

आपको फोन पर पूर्ण पहुंच की आवश्यकता है, स्टार्टअप स्क्रिप्ट को संशोधित करने का अर्थ रूट एसीस है। यदि आपके पास रूट पहुंच है - इनिट स्क्रिप्ट संपादित करें (यह रूट/init में है।आरसी) और "setprop ro.FOREGROUND_APP_MEM 1536" – reflog

+4

डाल्विक की प्रबंधित ढेर सीमा के लिए, आप विक्रेता/[कंपनी]/[product] /system.prop संपादित करना चाहते हैं और "dalvik.vm.heapsize = 24m जोड़ें या अपडेट करना चाहते हैं "। यह /system/build.prop में समाप्त होता है, और अंततः एक -Xmx तर्क में बदल जाता है। – fadden

2

आप avd's config.ini में vm.heapSize आइटम बदलकर इसे बदल सकते हैं। उदाहरण के लिए, आप

vm.heapSize=64 

config.ini में लिख सकते हैं। यदि ऐसी कोई वस्तु नहीं है, तो आप एक नया जोड़ सकते हैं।

हालांकि, कृपया ध्यान दें कि vm.heapSize त्वचा द्वारा ओवरराइड किया जा सकता है। त्वचा के पथ में hardware.ini है, और इसमें vm.heapSize और hw.ramSize की डिफ़ॉल्ट सेटिंग्स शामिल हैं जो आपके मान को ओवरराइड कर सकती हैं। इस समस्या को वैकल्पिक हल के लिए आप निर्धारित कर सकते हैं

skin.path=720x1280 
skin.name=720x1280 

संख्या महत्वपूर्ण नहीं हैं, यह (चौड़ाई) एक्स (ऊंचाई) रूप में होना चाहिए।

1

आप उदाहरण के लिए adb शेल setprop के माध्यम से डिफ़ॉल्ट वैश्विक ढेर आकार बदल सकते हैं,:

setprop dalvik.vm.heapsize 128m 
संबंधित मुद्दे