jitsi / jitsi-meet-sdk-samples

Jitsi Meet mobile SDK examples (Android, iOS and React Native)
Apache License 2.0
273 stars 238 forks source link

how reduce size apk when release with jitsi in android studio? #118

Open sarvparinexus opened 2 years ago

sarvparinexus commented 2 years ago

Hi Guys How reduce size apk when get release in android studio? when added jitsi size apk +100Mb how reduce it? I added proguard in android but dont reduce it. please help me

added this files: https://situla.bitbit.net/filebin/08ba7ca7befdd440c63959d62fa9587c0a99181ca35dd1f47827d3256fab0ef1/a6cc28ca3cfc6b576fd666579a764279f4886a5106d46d1113f5d80b7e5643ff?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=HZXB1J7T0UN34UN512IW%2F20210926%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210926T084647Z&X-Amz-Expires=30&X-Amz-SignedHeaders=host&response-cache-control=max-age%3D30&response-content-disposition=filename%3D%22Untitled.png%22&response-content-type=image%2Fpng&X-Amz-Signature=8573f6a68b59e4cd23fa394677587e751289fed754eaa362d6dc86e7f6ffff35

or this link file: https://www.file.io/deleted/

gradle:

android { compileSdkVersion 30 buildToolsVersion "30.0.3"

defaultConfig {
    applicationId "com.palphone.palphone"
    minSdkVersion 23
    targetSdkVersion 30
    versionCode 1
    versionName "1.0"

}

buildTypes {
    release {
        debuggable true
        minifyEnabled true  // enables ProGuard
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
    debug {
        testCoverageEnabled = false
    }

}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
//Enable dataBinding
buildFeatures {
    dataBinding true
}

}

pwraxe commented 2 years ago

Hey there, I hope you found a solution to reduce the size if not then this is my little help (take it as a reference)

This is How I reduce my apk size ~150MB to ~50MB I also implement jitsi and it create 4 different types of folder [ "armeabi-v7a", "x86", "arm64-v8a", "x86_64"]

Step : 1 --> open build.gradle(app) file --> under defaultConfig {...} add code

defaultConfig {
...
   ndk {
      //abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
      abiFilters "arm64-v8a" //,"x86_64"
    }
}

You can include and exclude folders based on your requirement

Step 2 : ---> under buildTypes -> add minifyEnabled and shrinkResources

 buildTypes {
        release {
            minifyEnabled = true
            shrinkResources = true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            debuggable false
            signingConfig signingConfigs.release
        }
        debug {
            debuggable true
            minifyEnabled = true
            shrinkResources = true
            signingConfig signingConfigs.debug
        }
    }

Note: This is just a reference, not an actual and bcoz I filter under ndk{...} based on my requirement, you may face a warning at the time of either build apk||aab or run

Make me correct if something wrong in post/ans