2017-07-04 8 views
8

शामिल हैं, मैंने अपने एपीके के आकार को कम करने के लिए एपीके स्लिपटिंग का प्रयास करने का फैसला किया। मैं अपने Gradle निर्माण फ़ाइलघनत्व द्वारा विभाजित एपीके में अभी भी सभी संसाधन

splits { 

    // Configures multiple APKs based on screen density. 
    density { 

     // Configures multiple APKs based on screen density. 
     enable true 

     // Specifies a list of screen densities Gradle should not create multiple APKs for. 
     exclude "ldpi" 

     // Specifies a list of compatible screen size settings for the manifest. 
     compatibleScreens 'small', 'normal' 
    } 
} 

यह सफलतापूर्वक विभिन्न घनत्व के लिए अलग apks उत्पन्न करने के लिए निम्न गयी। हालांकि, मैंने देखा कि सभी एपीके एक ही आकार के थे, उनमें से कोई भी सार्वभौमिक एपीके से छोटा नहीं था। इसलिए, मैंने एपीके विश्लेषक में एक (ऐप-एचडीपीआई-रिलीज.एपीके) लोड किया और पाया कि इसमें सभी संसाधन शामिल हैं। कोई भी छीन लिया नहीं गया था।

तो प्रभावी ढंग से सभी कॉन्फ़िगरेशन अलग-अलग फ़ाइल नामों के साथ एक ही एपीके उत्पन्न करना था। क्या मैं कुछ भूल रहा हूँ? क्या कोई अन्य निर्माण विकल्प है जो संभावित रूप से हटाए जा रहे संसाधनों को अवरुद्ध कर सकता है?

+0

आप संसाधनों को सही ढंग से drawable-xxx फ़ोल्डर में splitted है करना चाहते हैं? – MatPag

+1

हां, और वे भी सही तरीके से काम करते हैं। मैंने विभिन्न रंगों के साथ छवि के विभिन्न घनत्व संस्करणों को चिह्नित करके इसका परीक्षण किया है, और जांच कर रहे हैं कि उचित डिवाइस विभिन्न उपकरणों पर प्रदर्शित होते हैं। – aaronmarino

उत्तर

0

मैंने कुछ हिट और परीक्षण किया और अंततः इसे स्वीकार कर लिया। इससे पहले कि मैं केवल स्क्रीन घनत्व के आधार पर विभाजित था। फिर मैंने $ $ संगतस्क्रीन $ टैग जोड़ा और यह काम किया।

यहाँ अंतिम विभाजन block- है

android { 
  ... 
  splits { 

    density { 
      enable true 

      reset() 
      include "mdpi", "hdpi", "xhdpi",  "xxhdpi" 

      // This is the line of code which got it right 
      compatibleScreens 'small', 'normal', 'large', 'xlarge' 
    } 
  } 
} 
संबंधित मुद्दे