मैं एक ऐसा तरीका साझा करना चाहता हूं जो आपके iOS एप्लिकेशन में "अतिरिक्त" वजन के कुछ मेगाबाइट को बचाएगा। इसकी आवश्यकता क्यों हो सकती है? सबसे पहले, यदि आपका आवेदन 20 एमबी से थोड़ा अधिक है, तो इसे 3 जी के माध्यम से डाउनलोड नहीं किया जा सकता है, लेकिन केवल वाई-फाई या आई-ट्यून्स के साथ सिंक्रनाइज़ेशन (ऐप्पल द्वारा प्रतिबंध) का उपयोग किया जा सकता है। ठीक है, और दूसरी बात, यदि आप सब कुछ अनुकूलित करना पसंद करते हैं या सिर्फ अपने अप के लोडिंग समय को थोड़ा कम करना चाहते हैं।
मैंने अपने ऊपर सूचीबद्ध सभी बिंदुओं की जाँच की और उनका उपयोग किया, जिससे कुल 4 एमबी की बचत हुई। ऐसा लगता है कि यह बहुत ज्यादा नहीं है, लेकिन अगर, उदाहरण के लिए, प्रति दिन 5000 हजार डाउनलोड से गुणा किया जाता है, तो हम पहले से ही लगभग 20 जीबी बचा हुआ ट्रैफ़िक प्राप्त करेंगे। तो चलिए शुरू करते हैं।
1 लेआउट और काटने का डिज़ाइन
यदि आपका डिज़ाइन पहले से पूरी तरह से तैयार और कटा हुआ है और कुछ बदलने की इच्छा नहीं है, तो बस इस चरण को छोड़ दें।
एक सार उदाहरण पर विचार करें - डिजाइनर ने इस तरह के एक प्रोटोटाइप को आकर्षित किया:

काटने के बाद, निम्नलिखित चित्र प्राप्त किए गए थे:
पृष्ठभूमि:

स्थिर तत्व 1:

स्थिर तत्व 2:

और तत्व 3 एक बटन है:

आमतौर पर, प्रोग्रामर बहुत परेशान नहीं करते हैं और ऐसा ही करते हैं - वे पृष्ठभूमि टाइप करते हैं, फिर पृष्ठभूमि के शीर्ष पर 1 और 2 तत्वों को बिछाते हैं, और फिर बटन। हालाँकि, अगर हम तत्वों 1 और 2 को सीधे पृष्ठभूमि में "एम्बेड" करते हैं, तो हमारी नई "जटिल" पृष्ठभूमि:

+ बटन, पुरानी पृष्ठभूमि की तुलना में कम जगह लेगा + 2 तत्व + बटन।
1.1 iPad के लिए iPhone 4 से संसाधनों का उपयोग करना (सार्वभौमिक अप के लिए)
संकल्प iPhone 4 (960x640) iPad (1024x768) से बहुत अलग नहीं है। यदि यह डिज़ाइन और UI डिज़ाइन चरण में ध्यान में रखा जाता है, तो कई डिज़ाइन तत्वों को केवल iPhone के लिए डिज़ाइन से कॉपी किया जा सकता है। उदाहरण के लिए, विभिन्न बटन और अन्य छोटे तत्व आमतौर पर iPhone 4 और iPad के लिए समान होते हैं, इसलिए आप नई तस्वीरें नहीं बना सकते हैं, लेकिन उन्हें @ 2x उपसर्ग के साथ सीधे लोड करते हैं।
बेशक, यह विधि सभी अनुप्रयोगों के लिए उपयुक्त नहीं है, लेकिन इसके बारे में मत भूलना।
2. जेपीईजी प्रारूप का अधिक बार उपयोग करें
JPEG में उन सभी छवियों को सहेजने की कोशिश करें जिन्हें अल्फा चैनल की आवश्यकता नहीं है - यह उनके आकार को महत्वपूर्ण रूप से कम कर देगा। हालांकि, वे मक्खी पर अनपैक किए जाएंगे, जो प्रदर्शन को थोड़ा प्रभावित कर सकते हैं।
3. छवि उत्प्रेरक के माध्यम से सभी छवियों को चलाएं
उन्होंने पहले से ही एक हब (
छवि उत्प्रेरक 2.1 ) पर इसके बारे में लिखा था और इसका उपयोग करना सरल है, इसलिए यहां बताने के लिए कुछ खास नहीं है, मैं सिर्फ इतना कहूंगा कि परिणाम मूल आकार का शून्य से 5-10% है।
4. संकलन सेटिंग्स
मैं Xcode 3 का उपयोग करता हूं, इसलिए मैं इसके लिए सभी सेटिंग्स दूंगा। सबसे पहले एलएलवीएम 1.6 कंपाइलर सेट करना है। (Xcode 4 में, डिफ़ॉल्ट LLVM 3.0 कंपाइलर है, इसलिए आपको ऐसा नहीं करना होगा):

उसके बाद, PNG फ़ाइलें विकल्प को संपीड़ित करें (क्योंकि हमारे पास छवि कैटलिस्ट के बाद पहले से ही सब कुछ हो चुका है):

इन सेटिंग्स के बाद, अंतिम निर्माण कुछ और मेगाबाइट्स द्वारा "वजन कम करता है"।
4.1 केवल ARMv7 के लिए संकलन
यदि आप पुराने उपकरणों (
iPhone 3G और iPod 1 और 2 पीढ़ियों ) + न्यूनतम iOS 4.2 का समर्थन नहीं करते हैं, तो आप केवल ARMv7 आर्किटेक्चर के तहत संकलन कर सकते हैं, इससे कुछ और मेगाबाइट बचेंगे।

इस विधि के लिए धन्यवाद
mark2b ।
5. Default.png को जेपीईजी प्रारूप में बदलें (पूरी तरह से सत्यापित नहीं)
मैंने अभी तक सभी उपकरणों पर इस पद्धति का परीक्षण नहीं किया है, इसलिए संगतता समस्याएं हो सकती हैं। विधि JPEG प्रारूप में आपकी लोडिंग छवि (default.png) को बचाने के लिए है, और फिर इसका नाम बदलकर पीएनजी है। मूल के साथ तुलना में आकार में बचत 2-3 गुना तक पहुंच सकती है। सभी डिवाइस, जिन पर मैं इस ट्रिक को जांचने में कामयाब रहा, उन्होंने चित्र को सही ढंग से और बिना किसी समस्या के प्रदर्शित किया (सबसे अधिक संभावना है, इसमें मेमोरी को लोड करने से पहले चित्र का एक स्वचालित अनपैकिंग है)।
यदि आपके पास अपना कोई तरीका है कि आपा के आकार को कम कर सकते हैं या उपरोक्त सुधार / पूरक के लिए सुझाव दे सकते हैं, तो टिप्पणी में आपका स्वागत है।
युपीडी। धीरे-धीरे सूची को फिर से बनाया जा रहा है। आपके विचारों के लिए सभी का धन्यवाद, हम चर्चा जारी रखते हैं, प्रयोग करते हैं ...