2013-03-12 4 views
16

मुझे कुछ टीम सदस्य के साथ एक एंड्रॉइड एप्लिकेशन विकसित होता है जो मोबाइल द्वारा फ़ील्ड पर डेटा एकत्र करता है।एंड्रॉइड एप्लिकेशन के लिए न्यूनतम हार्डवेयर आवश्यकता कैसे प्राप्त करें

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

अब मुझे पता है कि न्यूनतम हार्डवेयर आवश्यकता क्या है।

चार TextField के बारे में अपने आवेदन में मूल रूप से

, तीन Spinner, Date, EditText और दो ImageView

तो मुझे कैसे पता चलेगा कि इस एप्लिकेशन को चलाने के लिए न्यूनतम मेमोरी आवश्यकता क्या है।

मैंने इस एप्लिकेशन को मोबाइल में से एक में आजमाया है जहां लगभग सभी मेमोरी किसी अन्य एप्लिकेशन द्वारा उपयोग की जाती हैं। वहां मेरा आवेदन फोटो कैप्चर करने में सक्षम नहीं है। और जब मैं कुछ एप्लिकेशन हटा देता हूं तो मेरा आवेदन ठीक काम करता है।

यही कारण है कि मैं जानना चाहता हूं कि मेरे आवेदन को चलाने के लिए न्यूनतम मेमोरी आवश्यकता क्या है।

+0

क्या आपका ऐप कैमरा का उपयोग करता है? –

+0

या यह एप्लिकेशन कैमरा का उपयोग करें। नेटवर्क सेवा, एसक्लाइट डेटाबेस, उपग्रह द्वारा जीपीएस और सेवा प्रदाता द्वारा .... –

उत्तर

2

ऐसा लगता है यह गारंटी है कि एंड्रॉयड में किसी भी प्रक्रिया स्मृति के कम से कम 16MB होगा, आधुनिक उपकरणों के सबसे ढेर 24 + एमबी

बढ़ने का समय दें सब पर http://developer.android.com/reference/android/app/ActivityManager.html#getMemoryClass()

मेमोरी मैनेजमेंट का विवरण देखने के ओएस पक्ष, और http://developer.android.com/guide/components/processes-and-threads.html#Lifecycle

में वर्णित प्रक्रियाओं और धागे के लिए प्राथमिकताएं हैं, इसलिए यदि आपका ऐप अग्रभूमि पर है तो संभवतः आपके पास कैमरे से छवि को संभालने के लिए पर्याप्त संसाधन हैं।

छवि को कैप्चर करने के लिए आप किस एपीआई का उपयोग करते हैं?

2

यह पता लगाने का सबसे अच्छा तरीका है कि आपका ऐप कुछ हार्डवेयर पर चल जाएगा या नहीं, उस हार्डवेयर पर परीक्षण करना है। अपने दोस्तों से पूछें कि क्या उनके पास पुराने एंड्रॉइड फोन हैं, और उनके ऐप का परीक्षण करें।

सबसे खराब स्थिति, अलग-अलग स्मृति के साथ कई एंड्रॉइड वर्चुअल डिवाइस बनाएं। हालांकि सावधान रहें, एंड्रॉइड एमुलेटर हार्डवेयर त्वरण के साथ भी निराशाजनक धीमा है।

2

जैसा कि @veon कहते हैं, आप कुछ अनुमान लगा सकते हैं। हालांकि, यह हमेशा थोड़ा अप्रत्याशित होगा क्योंकि आप जानना चाहते हैं कि यह विभिन्न संदर्भों में कितना उपयोग करेगा, और आपको उपयोगकर्ताओं को अपने फोन पर अन्य ऐप्स के उपयोग को जानने की आवश्यकता होगी।

जैसा कि मैं इसे समझता हूं, आपको मुख्य रूप से प्रदान करने की आवश्यकता स्पष्ट दस्तावेज है।

इस आवेदन सभी हाल ही मानक एंड्रॉयड फोन (Android संस्करण XXX और ऊपर) पर चलेगा: यह एक बहुत आसान (आप और सभी के लिए) यह दस्तावेज़ के लिए इस प्रकार हो सकता है। हालांकि, यदि अन्य अनुप्रयोग चल रहे हैं, विशेष रूप से भूख वाले लोग चल रहे हैं, तो यह प्रदर्शन प्रभावित हो सकता है। यदि आपके पास प्रदर्शन समस्याएं हैं, कृपया अन्य एप्लिकेशन को हटाएं जो स्मृति और प्रक्रियाओं को भारी करते हैं। यदि आपको इसे निर्धारित करने में सहायता की आवश्यकता है, तो कृपया आपकी सहायता के लिए ZDbox जैसे किसी एप्लिकेशन का उपयोग करें।

संदर्भ के लिए, मेरे पास ZDbox से कोई लिंक नहीं है, मैं बस इसे एक उदाहरण के रूप में उपयोग कर रहा हूं।

10

न्यूनतम आवश्यकताएं पर निर्भर करेगा, और ज्यादातर परीक्षण और प्रलेखन निम्नलिखित बातों का शामिल होंगे:

  1. एपीआई स्तर: न्यूनतम एंड्रॉयड समर्थित संस्करण है, इसकी ज्यादातर डेवलपर द्वारा जाना जाता है। एंड्रॉइड में एपीआई के बीच कई बड़े बदलाव हुए हैं। समर्थन v4 और v7-compat पुस्तकालय बहुत मदद करते हैं, लेकिन वे सभी पहलुओं को शामिल नहीं करते हैं।

  2. डिवाइस क्षमताओं: आपके ऐप का उपयोग करने वाली सभी सुविधाओं को नोट करें। (जैसे टच स्क्रीन है, कैमरा, एक्सेलेरोमीटर, नेटवर्क कनेक्टिविटी आदि है)। सौभाग्य से, आप घोषणा कर सकते हैं कि ऐप मेनिफेस्ट (uses-feature) और प्ले स्टोर असमर्थित डिवाइस फ़िल्टर करेगा।

  3. रैम: का प्रयोग करें DDMS/Android Studio वास्तविक समय स्मृति उपयोग को देखने के लिए, एमुलेटर पर और एक वास्तविक डिवाइस पर। ऐप के विभिन्न कार्यों को ट्रिगर करके, जितना रैम आप उपयोग कर सकते हैं, उतना उपयोग करने का प्रयास करें, इसे समय के लंबे अंतराल के लिए चलते रहें। अनुमान के रूप में उस न्यूनतम और अधिकतम उपयोग को लें। TraceView आदि जैसे डीडीएमएस उपकरण आपको ढेर, धागे, और विधि प्रोफाइलिंग पर ऑब्जेक्ट आवंटन देखने देते हैं। ऐप को तनाव देने के लिए लंबे समय तक Monkey Tool चलाएं।

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

  5. CPU/GPU संगतता: एक अन्य महत्वपूर्ण विस्तार है कि अगर कोई एप्लिकेशन C/C++ कोड है, कि कोड सीपीयू प्रकार (MIPS, एआरएम या x86) में से कुछ पर नहीं चल सकता है। OpenGL ES संस्करणों और उपलब्ध एक्सटेंशन का उपयोग कर ऐप्स के लिए भी यही सच है। उपकरणों में अलग-अलग सीपीयू/ग्राफ़िक चिप-सेट होते हैं।

  6. डिस्क: स्थापना के बाद एप्लिकेशन के आकार का अनुमान, ध्यान दें कि अनुप्रयोग के लिए न्यूनतम डिस्क आवश्यकता अंतरिक्ष एप्लिकेशन को स्वयं को स्टोर करने के लिए आवश्यक है, इतना है कि यह कम से कम शुरू कर सकते हैं, और कैश शामिल नहीं है, डेटाबेस या उपयोगकर्ता सामग्री जो उपयोग पर बनाता है।

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

  8. आप नियंत्रित नहीं कर सकते क्या:, उसके सुरक्षित घोषित करने के लिए है कि आपकी ऐप इतना मुक्त डिवाइस पर राम की आवश्यकता है याद रखें कि आप क्या अन्य Apps उपयोगकर्ता चला सकता है पर कोई नियंत्रण नहीं है, इसलिए, और यह सोचते हैं सबसे अच्छा परिदृश्य, घोषित करें कि डिवाइस में कम से कम रैम स्थापित है। उदाहरण के लिए आपने नोट किया कि अधिकतम होने पर आप 200 एमबी लेते हैं, इसलिए आवश्यकता केवल 512 एमबी + डिवाइस होगी। इसके अलावा आप यह नियंत्रित नहीं कर सकते कि एसडी-कार्ड उपयोगकर्ता के आकार का क्या आकार होगा, इसलिए ऐप को तत्काल उपयोगकर्ता को यह बताना चाहिए कि डिस्क पूर्ण होने पर यह कार्य नहीं कर सकता है।

अंत में, अच्छा परीक्षण वास्तविक बेंचमार्क में अनुमान लगाता है। और इसके बजाय केवल अनुमानों के आधार पर बेंचमार्क पर आधार आवश्यकताओं के लिए बेहतर है।

अद्यतन:

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

  1. एपीआई सही ढंग से क्रम अनुमान नहीं लगा सकते। आपके कोड में if और else के साथ-साथ उपयोगकर्ता इनपुट भी होंगे, आप भविष्यवाणी नहीं कर सकते कि वस्तु निर्माण और निष्पादन किस सटीक पथ के साथ जाएगा। आप केवल डीडीएमएस जैसे टूल का उपयोग करके रनटाइम की निगरानी कर सकते हैं।

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

+0

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

+0

@VinitVikash अद्यतन उत्तर। –

1

है यही कारण है कि मुझे पता है कि मेरे आवेदन को चलाने के लिए कम से कम स्मृति की आवश्यकता है क्या चाहते हैं से बचें।

little eye labs से निगरानी उपकरण का उपयोग करें। यह other things के बीच आपके ऐप की पावर खपत/मेमोरी खपत/सीपीयू खपत/नेटवर्क गतिविधि पर नज़र रखता है। आप 30 दिनों के परीक्षण के लिए download कर सकते हैं। इससे आपको उन संसाधनों का उचित विचार मिलना चाहिए जो आपके ऐप का उपभोग करते हैं। मुझे कहना है कि हालांकि ऐप्स को आमतौर पर हार्डवेयर आवश्यकताओं के सेट के साथ जारी नहीं किया जाता है। अपनी मेमोरी/बैटरी उपयोग को चेक में रखें और आपको ठीक होना चाहिए।

कम स्मृति के लिए, क्या ऐसा होता है जब आप कैमरे को लेते हैं या कैमरा स्वयं ऐप को नीचे लाता है? क्या आप कैमरे द्वारा आयोजित संसाधनों को जारी कर रहे हैं? इस सवाल पर एक नजर डालें - Android camera out of memory exception

+0

इस उत्तर में एक मृत लिंक है। –

3

प्रश्न आप अपने स्वयं

1. पूछना चाहिए मेरी स्मृति आवश्यकताएं क्या हैं? क्या आपको डेटा को संसाधित करने के लिए बहुत सारी मेमोरी (ढेर में भौतिक नहीं है) की आवश्यकता है या यह न्यूनतम है? अब एक दिन का अधिकांश डिवाइस 64 एमबी ढेर आकार के साथ आता है लेकिन यह विनिर्माण से विनिर्माण के लिए भिन्न होता है। एक ही एपीआई स्तर के लिए भी यह अलग है।अपना न्यूनतम पता लगाएं और फिर सुनिश्चित करें कि आपके पास उस राशि की ढेर मेमोरी उपलब्ध है।

स्मृति निगरानी करने के लिए आप क्रम जांच this

पर उपभोग कर रहे हैं कितना ढेर स्मृति उपलब्ध वर्तमान डिवाइस जांच this और this पर पता लगाने के लिए।

याद रखें एंड्रॉइड विंडोज़ की तरह नहीं है और हर ऐप एक ही मात्रा में हीप मेमोरी से शुरू होता है, और यह उस डिवाइस पर प्रत्येक ऐप के लिए स्थिर है। इसका मतलब है कि इस उपलब्ध स्मृति से परे ऐप्स को बढ़ने की अनुमति नहीं है। आप इस टैग द्वारा मेनिफेस्ट android:largeHeap="true" में अतिरिक्त मेमोरी के लिए अनुरोध कर सकते हैं लेकिन यह सुविधा प्री 3.0 ओएस संस्करण के लिए उपलब्ध नहीं है।

मैंने इस एप्लिकेशन को मोबाइल में से एक में आजमाया है जहां लगभग सभी मेमोरी किसी अन्य एप्लिकेशन द्वारा उपयोग की जाती हैं। वहां मेरा आवेदन फोटो कैप्चर करने में सक्षम नहीं है। और जब मैं कुछ एप्लिकेशन हटा देता हूं तो मेरा आवेदन ठीक काम करता है।

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

2. मेरी एपीआई आवश्यकताएं क्या हैं? यदि आप किसी भी विशेष एपीआई का उपयोग कर रहे हैं जो पुराने एपीआई और स्तर के लिए उपलब्ध नहीं है, तो आपके पास दो विकल्प हैं या तो आप कहते हैं कि आप ऐप बस उस एपीआई संस्करण का समर्थन नहीं करेंगे या आप उस विशिष्ट सुविधा को बंद कर सकते हैं।

3. मेरी हार्डवेयर आवश्यकताएं क्या हैं? खुद से पूछें कि क्या आप किसी विशेष सॉफ्टवेयर या हार्डवेयर का उपयोग कर रहे हैं, यदि यह विशेष हार्ड सभी उपकरणों के लिए उपलब्ध है या नहीं? उदाहरण, एनएफसी, ब्लूटूथ।

4. मेरी प्रदर्शन आवश्यकताओं क्या हैं? क्या यह ऐप केवल मोबाइल के लिए है या मोबाइल और टैबलेट दोनों के लिए है? टैबलेट और मोबाइल के बीच में आने वाले 7 इंच के बारे में क्या।

5. मेरी स्थानीयकरण आवश्यकताएं क्या हैं? क्या यह ऐप किसी विशेष चरित्र सेट पर निर्भर है? क्या होगा यदि किसी निश्चित डिवाइस में वे वर्ण न हों।

और, आपके द्वारा वर्णित वस्तु की एफवाईआई राशि जो कुछ और एमबी पर कब्जा नहीं करनी चाहिए। लेकिन बिटमैप के साथ काम करते समय सावधान रहें। Read this

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