2016-09-22 17 views
9

से बड़ा बड़ा मैं अपने एपीके आकार को कम करने के लिए प्रोजेगार्ड का उपयोग कर रहा हूं। डीबग एपीके 90 एमबी से 55 एमबी तक कम हो जाता है, लेकिन हस्ताक्षरित एपीके 71 एमबी है। यहाँ मेरी build.gradle कोड है:एंड्रॉइड रिलीज एपीके डीबीग एपीके

प्लगइन लागू होते हैं: 'com.android.application'

एंड्रॉयड {

signingConfigs { 
    XXXX { 
     keyAlias 'xxxx' 
     keyPassword 'xxxx' 
     storeFile file('/Users/xxxx.jks') 
     storePassword 'xxxxxx' 
    } 
} 
compileSdkVersion 23 
buildToolsVersion "24.0.2" 
defaultConfig { 
    applicationId "com.xxxx" 
    minSdkVersion 14 
    targetSdkVersion 22 
    versionCode 61 
    versionName "4.1.8.1" 
    multiDexEnabled true 
    signingConfig signingConfigs.XXXX 

    ndk { 
     abiFilters "armeabi", "armeabi-v7a", "x86", "mips" 
    } 
} 

buildTypes { 
    release { 
     minifyEnabled true 
     shrinkResources true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     signingConfig signingConfigs.XXXX 
    } 
    debug { 
     minifyEnabled true 
     shrinkResources true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     signingConfig signingConfigs.XXXX 
    } 
} 
productFlavors { 
} 

dexOptions { 
    javaMaxHeapSize "4g" 
} 

packagingOptions { 
    exclude 'META-INF/LICENSE.txt' 
} 

}

खजाने { mavenLocal() Maven { नाम "जांसर" यूआरएल "http://jcenter.bintray.com/" } }

निर्भरता { ... }

enter image description here

enter image description here

+0

क्या आप डीबग के लिए तत्काल रन का उपयोग कर रहे हैं? –

+0

ध्यान दें कि ProGuard केवल क्लास फ़ाइलों को संसाधित करता है जबकि स्क्रीनशॉट में यह स्पष्ट होता है कि संसाधन दो संस्करणों के बीच भिन्न होते हैं। रिलीज एपीके में कई और ड्रॉबल्स हैं। क्या यह संभव है कि आपके पास रिलीज प्रकार के लिए अतिरिक्त निर्भरताएं हों? –

+0

मैंने तत्काल रन @MohammedAtif का उपयोग नहीं किया था। – Thinsky

उत्तर

1

जब आप फोन की विशिष्ट प्रकार तो एंड्रॉयड स्टूडियो केवल आवश्यक संसाधन फ़ाइलों को संलग्न करने के लिए स्थानीय स्तर पर अपने अनुप्रयोग का निर्माण। जब आप रिलीज संस्करण बनाते हैं तो आपने सभी प्रकार के ड्रॉबल्स संलग्न किए हैं ताकि आप ऐप फ़ाइल का आकार काफी बढ़ा सकें।

मैं सुझाव है कि आप के रूप में आप कर सकते हैं के रूप में कई स्थानों में png के स्थान पर जेपीजी का उपयोग करें और उन्हें निश्चित रूप से संपीड़ित करने के लिए - अक्सर मैं उपयोग tinyPNG वेबसाइट या सिर्फ फ़ोटोशॉप;)

0

sosite के रूप में कहा, लेकिन यह भी आगे जा रहा है, ऐसा लगता है कि यह बिल्ड> बिल्ड एपीके के माध्यम से डीबग बिल्ड के बजाय, किसी भी विशिष्ट डिवाइस में रन या डीबग के लिए डिबग बिल्ड की तुलना करने से संबंधित है।

मैंने उन दोनों की तुलना ज़िपडिफ़ के साथ की है, और आउटपुट एचटीएमएल here प्रकाशित किया है। क्षमा करें कि यह आसानी से देखने योग्य नहीं है, लेकिन आप अभी भी स्रोत कोड से इसकी जानकारी प्राप्त कर सकते हैं।

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

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