Please follow the below steps,
1. Use .svg format icon set
Its time to say bye to PNGs and welcome vector drawables. There are a couple of benefits of using them. We don’t have to worry about different device DPI’s and it also helps in reducing apk size. With Support Library 23.2, we can now use the app:srcCompat property of ImageView instead of android:src to make it backward compatible.
When you are downloading system app icon set from Google’s Material Design Icon Library, download .svg format instead of .pngs. This helped us reduce our app size by 1 Mb.

2. Compress PNGs
We are using PNGs for our walkthrough screens for all screen densities. The PNGs were of very high quality and size which just bloated up our app size! In Weather Stream v1.2 when we started optimizing our app size, we compressed our walkthrough screens and boom! The walkthrough screens were ~1/10th size it was before! (Yes! 1/10th). That’s crazy! We quickly created a build and checked the image quality in various screen densities, looked just the same. A quick Google search will give you a lot of tools that will help you compress your PNGs. We also got rid of the ldpi resources after seeing the Device Metrics shared by the Google Design team.
3. Use only specific libraries of Google Play Services.
Prior to Google Play Services 6.5 we had to compile the entire package. But now we can selectively compile it into our app. We are now just using Google Cloud Messaging, Google Maps and Google Location APIs.
4. Use Proguard
Proguard is used for code obfuscation and it also removes unused Java code from the dependencies. The result after using Proguard is a smaller apk file size which is difficult to reverse engineer. To enable proguard:
build.gradle
android {
...
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
5. Shrink Resources
The Android Gradle plugin supports the ability to automatically exclude unused resources during the build process using shrinkResources gradle property. This alone reduced the apk size by ~0.5 Mb. To take advantage of this in your release builds, just add shrinkResources true to your release configuration.
build.gradle
android {
...
buildTypes {
release {
shrinkResources true
minifyEnabled true
...
//Other parameters
debuggable false
jniDebuggable false
renderscriptDebuggable false
}
}
}
6. res Confing
“resConfigs” attribute will remove all the other localized resources while building the application. In our case, “Anti-Theft Screen Lock” only supports the English language. While all the support libraries may have localized folders for other languages. Which we don’t need. So, add following line to allow only English resources to be added in APK file.
defaultConfig {
//...
//...
//...
//strip other than english resources
resConfigs "en"
}