2013-12-15 22 views
11

के लिए बनाता है क्या कुछ एंड्रॉइड एपीके फाइलों को बनाने के लिए ग्रैडल को कॉन्फ़िगर करना संभव है, जहां प्रत्येक केवल एक संसाधन-प्रकार फ़ोल्डर का उपयोग करेगा?ग्रेडल प्रत्येक संसाधन फ़ोल्डर

मेरा मतलब है:

  • निर्माण hdpi.apk
  • निर्माण mdpi.apk
  • निर्माण xhdpi.apk

मैं जानता हूँ कि मैं बस के निर्माण से पहले कुछ फ़ोल्डर को दूर कर सकता है , लेकिन यह अच्छा होगा अगर मैं इसे "स्वचालित रूप से" बना सकता हूं।

क्या ग्रेडल "स्वाद" का उपयोग करना संभव होगा?

+0

क्यों आप इसे की आवश्यकता होगी? – panini

+0

मेरे ऐप में बड़ी मात्रा में फोटो हैं और मैं इसे 3 अलग-अलग ऐप्स के रूप में वितरित करना चाहता हूं, इसलिए मैं फ़ाइल आकार को कम कर सकता हूं। ऐप इंस्टॉल करने के बाद उपयोगकर्ता द्वारा संपत्ति डाउनलोड करना प्रश्न से बाहर है क्योंकि मैं इसे एक-बॉक्स में चलाने के लिए चाहता हूं। – scana

उत्तर

9

अब हम भी उपयोग कर सकते हैं एपीआई विभाजन http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits

डॉक्स लिंक से

उदाहरण:

android { 
    ... 
    splits { 
     density { 
     enable true 
     exclude "ldpi", "tvdpi", "xxxhdpi" 
     compatibleScreens 'small', 'normal', 'large', 'xlarge' 
    } 
} 
  • सक्षम: वें सक्षम बनाता है ई घनत्व विभाजन तंत्र
  • बहिष्कृत करें: डिफ़ॉल्ट रूप से सभी घनत्व शामिल हैं, आप कुछ घनत्व को हटा सकते हैं।
  • में शामिल हैं: इंगित करें कि कौन से घनत्वों को शामिल किया जाना है
  • रीसेट(): एक खाली स्ट्रिंग में शामिल करने के लिए घनत्व की सूची को रीसेट करें (यह अनुमति देता है, जिसमें शामिल हैं, यह इंगित करने के लिए कि किसके लिए उपयोग करना है अनदेखा करें)
  • संगत स्क्रीन: संगत स्क्रीन की एक सूची इंगित करता है। यह मैनिफेस्ट में एक मिलान नोड इंजेक्षन करेगा। यह वैकल्पिक है।
  • AOSP में

उदाहरण: https://android.googlesource.com/platform/tools/base/+/2101d189d85dd46f865726b9b7aa0012832a6d9c/build-system/tests/regular/densitySplit/build.gradle

+0

उदाहरण के लिंक के लिए धन्यवाद !!! आमतौर पर खोजने के लिए बहुत मुश्किल ... – speedynomads

+0

खुशी, मैं –

+0

मदद कर सकता था बहुत अच्छा, पिछले कई दिनों से इसकी तलाश कर रहा था। – Smeet

8

यह अभी तक संभव नहीं है, लेकिन 0.7.0 में यह सुविधा होगी।

आपको 3 उत्पाद स्वाद (या अधिक यदि आप सभी घनत्वों का समर्थन करना चाहते हैं) बनाने की आवश्यकता होगी, और आपके पास एपीके में पैकेज करने के लिए एक स्वाद संपत्ति होगी।

0.7.0 जल्द ही बाहर हो जाएगा।

ध्यान दें कि Play Store में मल्टी एपीके समर्थन फ़िल्टर के रूप में घनत्व का समर्थन नहीं करता है, जो स्टोर पर 3 अलग-अलग ऐप्स के रूप में दिखाई देगा जो आप नहीं चाहते हैं। संपादित करें: यह वास्तव में एकाधिक APK द्वारा समर्थित है: http://developer.android.com/google/play/publishing/multiple-apks.html

EDIT2:। अब जब कि 0.7 + बाहर है, तो आप निम्न कर सकते हैं:

android { 
    productFlavors { 
    mdpi { 
     resConfigs "mdpi", "nodpi" 
    } 
    hdpi { 
     resConfigs "hdpi", "nodpi" 
    } 
    xhdpi { 
     resConfigs "xhdpi", "nodpi" 
    } 
    } 
} 
+0

क्या आप निश्चित रूप से उस घनत्व फ़िल्टर के साथ हैं? http://developer.android.com/google/play/publishing/multiple-apks.html कहता है कि मैं इसका उपयोग कर सकता हूं: स्क्रीन का आकार (और, वैकल्पिक रूप से, स्क्रीन घनत्व) – scana

+0

हम्म मुझे लगता है कि आप सही हैं! –

+0

मैं आपका जवाब स्वीकार कर रहा हूं, लेकिन यह अच्छा होगा अगर आप (या मुझे :)) फ़ोल्डर को प्रतिबंधित करने के लिए स्वादों का उपयोग करने का एक सरल उदाहरण प्रदान कर सकते हैं। मैं कुछ दिनों में इस पर काम कर रहा हूं इसलिए मैं यहां कुछ परिणाम पोस्ट करने की कोशिश करूंगा। – scana

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