विकास उपकरण आपको एक विशिष्ट उपकरण की तुलना में अधिक संसाधन क्यों देते हैं?


9

मैंने एक ऐप बनाया है जो मेरी 4th जनरेशन iPod टच और मेरी कंपनी की 5th जनरेशन iPod टच पर काम करता है।

हम रिलीज करने वाले थे, जब हमें एक दुर्घटना मिली जो किसी भी गैर-डेवलपर डिवाइस द्वारा ऐप चलाने के बाद होती है *।

यह धारणा सामने आई कि 'डेवलपर डिवाइस' के रूप में पंजीकृत डिवाइस आपके ऐप को उपयोग करने के लिए अधिक संसाधन देता है। यह मेरे लिए सही नहीं लगता है, क्योंकि मैं किसी भी कारण के बारे में नहीं सोच सकता था जो मौजूद होगा - मुझे लगता है कि यह अधिक संभावना है कि इमारत या विशेष रूपरेखा के साथ एक मुद्दा है।

हालाँकि, इसने एक चर्चा को प्रेरित किया। गेम कंसोल विकास किट जैसे उपकरण, लक्ष्य प्लेटफ़ॉर्म से अधिक क्षमता वाले उपकरण पहले स्थान पर क्यों मौजूद हैं? बेशक, यह एक कार्यक्रम का परीक्षण करने के लिए अच्छा है, लेकिन लक्ष्य मंच का अधिक सटीक प्रतिनिधित्व अधिक समझ में नहीं आएगा?

टीएल; डीआर - विकास किट में लक्ष्य प्लेटफार्मों की तुलना में अधिक संसाधन क्यों हैं?

* एक गैर-डेवलपर डिवाइस के साथ कोई भी> 3 जीएन। iOS डिवाइस जो ऐप को हमारे सर्वर से डाउनलोड करता है, सीधे ऐप और एक्सकोड वाले कंप्यूटर से नहीं।

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


7
@gnat - यह पोस्ट डुप्लिकेट नहीं है कि मेरे iPhone ऐप का परीक्षण करना क्यों आवश्यक है । मैं समझता हूं कि एक सिम्युलेटर और एक वास्तविक डिवाइस का उपयोग करने के बीच बड़े पैमाने पर अंतर हैं ...
कटमरिटाको

जवाबों:


8

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

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

यह इस बिंदु पर आगे बढ़ता है कि आपको हमेशा उत्पादन वातावरण के दर्पण में कुछ परीक्षण करने की आवश्यकता होती है। यह विश्वास करना कि यह डेवलपर की मशीनों पर उनके सभी ट्वीक्स और विभिन्न चर के साथ काम करता है, यह सत्यापित करने के लिए पर्याप्त नहीं है कि यह उत्पादन में सही ढंग से काम करता है।


1
हां, क्यूए को हमेशा एंड-यूज़र वातावरण में परीक्षण करने की आवश्यकता होती है, न कि विकास के माहौल में।
17 की 26

कुछ साल पहले, मैं एक ऐसी परियोजना से जुड़ा था जिसमें दो पूरी तरह से अलग-अलग सीपीयू बोर्ड विकसित करने थे। हार्डवेयर इंजीनियर जिसने बोर्ड मैं किया था, भारी डिबग चरण के लिए बीमा लेने, कुछ भी जांच करने के लिए सुनिश्चित करने के लिए, अपने बोर्ड पर परीक्षण कनेक्टर्स का एक गुच्छा डाल रहा था। अचल संपत्ति और धन बर्बाद करने के लिए उन्होंने बहुत कुछ किया। दूसरे आदमी ने इस तरह के पैसे और अचल संपत्ति को बर्बाद नहीं किया। मजेदार बात: हमें अपने बोर्ड में कनेक्टर्स की कभी आवश्यकता नहीं थी। कथित तौर पर दूसरे बोर्ड को एकीकृत करना एक पूर्ण दुःस्वप्न था, क्योंकि नोटबंदी के कारण कुछ भी साबित नहीं हुआ। "बीमा" सोचें।
बजे जॉन आर। स्ट्रोह्म

@ JohnR.Strohm एक विकास के लिए, जांच करना अच्छा है। मैं यह कहने की कोशिश कर रहा हूं कि अगर इसका उत्पादन बोर्ड ऐसा हो, जो विकास बोर्ड से भिन्न हो, तो विकास के साथ सफल होने के बाद उत्पादन को फिर से परखने की जरूरत होगी (और यदि आवश्यक हो तो जांच भी)।

यह एक विशिष्ट 'देव किट' के लिए बहुत मायने रखता है। जिज्ञासा से बाहर, iOS के मामले में किसी भी iDevice को 'डेवलपर डिवाइस' के रूप में इस्तेमाल किया जा सकता है। एक ही हार्डवेयर के दो टुकड़ों के साथ अंतर कैसे हो सकता है?
कटमरिटाको

1
@Katamaritaco सिर्फ इसलिए कि यह एक ही भौतिक डिवाइस है इसका मतलब यह नहीं है कि आवेदन में iOS के भीतर एक ही अनुमतियाँ हैं। दूरस्थ डिबगिंग जैसी चीजों को करने की क्षमता बदल सकती है जो एक अनुप्रयोग के लिए संसाधनों तक पहुँच होती है।

5

यह आपको एक संसाधन-लालची सबूत-की-अवधारणा बनाने की अनुमति देता है जिसे आप बाद में अनुकूलित कर सकते हैं।

यह एप्लिकेशन को क्रैश करने का कोई मतलब नहीं है क्योंकि यह मेमोरी सीमा पर 5 बाइट्स है (जो रिलीज में जगह के संरक्षण के लिए ऑप्टिमाइज़र सेट करके हल किया जा सकता है लेकिन आप डिबग संस्करण चला रहे हैं),

जब आप उपभोक्ता सीमा पर जाते हैं तो लॉग में एक चेतावनी पॉप अप होती है, जबकि परीक्षण यहां अच्छा होगा।


1

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

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

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

यही कारण है कि आपको इसे लागू करने से पहले अपने एप्लिकेशन को एक गैर-डेवलपर डिवाइस पर परीक्षण करना होगा, ताकि यह सुनिश्चित हो सके कि यह अच्छी तरह से व्यवहार किया गया है। :)


0

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

डिबग क्षमता के बिना एक विकास उपकरण बहुत अधिक उपयोग नहीं होगा, और डिबग क्षमता वाला एक उपयोगकर्ता डिवाइस एक (अधिक) गंभीर ऐप और ऐप डेटा सुरक्षा समस्या पेश करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.