एंड्रॉइड डेवलपर उपयोगकर्ता मार्गदर्शिका पर एक विवरण विषय here है।
असल में, आपके संसाधनों को कम करके वास्तव में आपके एपीके के आकार को कम करने के लिए आपके पास बहुत सारे विकल्प हैं। मैंने उनके बारे में थोड़ी सी जानकारी में चर्चा की है, और मुझे लगता है कि सख्त संदर्भ चेक सक्षम करें नीचे चर्चा की गई आपकी समस्या का समाधान करना चाहिए, लेकिन आप अपने एपीके आकार को कम करने के लिए सभी उपलब्ध विकल्पों को देख सकते हैं।
अनुकूलित जो संसाधनों को रखने के लिए
दस्तावेज़ कहते हैं, रेस/कच्चे/keep.xml, क्या रखने के लिए तय करने के लिए पर नीचे एक्सएमएल का उपयोग करें और क्या नहीं रखना:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:keep="@layout/l_used*_c,@layout/l_used_a,@layout/l_used_b*"
tools:discard="@layout/unused2" />
और शेष निर्माण प्रणाली का ख्याल रखा जाएगा (विभिन्न निर्माण प्रकारों का उपयोग करते समय यह उपयोगी होता है)।
सक्षम सख्त संदर्भ चेकों
आप नीचे दिए गए की तरह अपने कोड या अपने पुस्तकालय को संदर्भित संसाधनों है: इस मामले संसाधन shrinker में
getResources().getIdentifier("image1", "drawable", getPackageName())
फिर, डिफ़ॉल्ट और चिह्नों से रक्षा बर्ताव करता है संभावित रूप से उपयोग और हटाने के लिए अनुपलब्ध नाम मिलान नाम प्रारूप वाले सभी संसाधन।
तो,
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:shrinkMode="strict" />
रेस के लिए निम्न/कच्चे/keep.xml यह आपकी समस्या का समाधान करना चाहिए जोड़ने जोड़ें।
निकालें अप्रयुक्त विकल्प संसाधनों
संसाधन Shrinker, अलग-अलग भाषाओं के लिए वैकल्पिक संसाधनों, जैसे, वैकल्पिक drawable संसाधनों विभिन्न स्क्रीन घनत्व के लिए, वैकल्पिक स्ट्रिंग संसाधनों को दूर नहीं करता आदि
तो, आप स्वयं को अपनी बिल्ड फ़ाइल से क्या रखना है, चुन सकते हैं, कहें, आप 'एन' लोकेल में स्ट्रिंग्स रखना चाहते हैं:
android {
defaultConfig {
...
resConfigs "en", "fr"
}
}
इससे आकार में काफी कमी आ सकती है।
अभी भी संसाधन, संसाधन shrinker द्वारा रखा जाता है, तो उन्हें मैन्युअल रूप से पहले चर्चा की विधि का उपयोग कर बाहर करते हैं, और देखें कि संकलित हो जाता है और ठीक से निर्माण, अगर नहीं, तो संसाधन shrinker द्वारा संसाधनों को रखने के लिए कारण, स्पष्ट हो जाएगा इमारत के दौरान फेंक दिया अपवाद से।
उम्मीद है कि यह मदद करता है!
Pleasw इस लिंक को संदर्भित करें आपको उत्तर मिलेगा http://stackoverflow.com/a/40742213/4069985 –
इसके लिए कुछ भी अंतर्निहित नहीं है। आप [इस ग्रैडल स्क्रिप्ट] (https://stackoverflow.com/a/34525498/115145) को आजमा सकते हैं, हालांकि मैंने इसे अभी तक एक शॉट नहीं दिया है। – CommonsWare
@ श्रीनिवास केरथिप्राकासम धन्यवाद – Hades