ProGuard / R8 & App Size

ProGuard / R8 — nothing to configure

The Pulsate SDK ships consumer ProGuard rules inside the AAR. When you enable minification, Gradle applies the SDK's rules automatically:

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}

No Pulsate-specific -keep rules are needed in your app.

Reducing app size

Use Android App Bundles

Publish an App Bundle (.aab) — Google Play generates optimized APKs per device configuration, so users only download the code and resources they need. This is also a Play Store requirement for new apps.

If you must ship APKs: split by ABI

splits {
    abi {
        enable true
        reset()
        include 'arm64-v8a', 'armeabi-v7a'
        universalApk false
    }
}

Or filter ABIs into a single APK

buildTypes {
    release {
        ndk {
            abiFilters "arm64-v8a", "armeabi-v7a"
        }
    }
}

x86/x86_64 devices are practically nonexistent among real Android users; excluding those ABIs saves the most space with one line.

Further reading