androidapk

How to reduce Apk (.apk) size in android studio


When i run my app size of apk will 21 MB. even i enabled proguard. i use android studio to run project. in project files src folder has 8.62 MB size and lib folder size is 400 KB size. so how i reduce size of .apk file. Actually .apk file is 8 mb before some days with same images but after paypal integration my app size will increases to 21 mb. size of build folder is 127 MB.

build.gradle(module app) is:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
    useLibrary 'org.apache.http.legacy'
    defaultConfig {
        applicationId "com.oi.food"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    packagingOptions{
        exclude 'AndroidManifest.xml'
    } }

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile files('libs/httpmime-4.1.1.jar')
    compile files('libs/apache-mime4j-0.6.jar')
    compile 'com.squareup.picasso:picasso:2.3.2'
    compile 'com.android.support:design:23.1.1'
    compile 'com.android.support:recyclerview-v7:23.1.1'
    compile 'com.paypal.sdk:paypal-android-sdk:2.14.1' }

Solution

  • I solve this issue by adding this code in module app build.gradle file.

     android {
            packagingOptions{
                exclude 'AndroidManifest.xml'
                exclude 'lib/arm64-v8a/libcardioDecider.so'
                exclude 'lib/arm64-v8a/libcardioRecognizer.so'
                exclude 'lib/arm64-v8a/libcardioRecognizer_tegra2.so'
                exclude 'lib/arm64-v8a/libopencv_core.so'
                exclude 'lib/arm64-v8a/libopencv_imgproc.so'
                exclude 'lib/armeabi/libcardioDecider.so'
                exclude 'lib/armeabi-v7a/libcardioDecider.so'
                exclude 'lib/armeabi-v7a/libcardioRecognizer.so'
                exclude 'lib/armeabi-v7a/libcardioRecognizer_tegra2.so'
                exclude 'lib/armeabi-v7a/libopencv_core.so'
                exclude 'lib/armeabi-v7a/libopencv_imgproc.so'
                exclude 'lib/mips/libcardioDecider.so'
                exclude 'lib/x86/libcardioDecider.so'
                exclude 'lib/x86/libcardioRecognizer.so'
                exclude 'lib/x86/libcardioRecognizer_tegra2.so'
                exclude 'lib/x86/libopencv_core.so'
                exclude 'lib/x86/libopencv_imgproc.so'
                exclude 'lib/x86_64/libcardioDecider.so'
                exclude 'lib/x86_64/libcardioRecognizer.so'
                exclude 'lib/x86_64/libcardioRecognizer_tegra2.so'
                exclude 'lib/x86_64/libopencv_core.so'
                exclude 'lib/x86_64/libopencv_imgproc.so'
            }
        }
    
               dependencies {
                compile fileTree(include: ['*.jar'], dir: 'libs')
                compile 'com.paypal.sdk:paypal-android-sdk:2.14.1'
            }