How to reduce App (.apk) Size

Solution 1:

Other answers mention shrinking images. You might also consider trying ProGuard to shrink your bytecode. Here's an article on applying ProGuard to an Android app.

Solution 2:

I would recommend that you compress the .jpg files as much as possible, this should greatly reduce the size of your .apk file. A tool such as Paint.NET which is free should help you do this. It has great resizing options.

Solution 3:

Make sure that your jpg's aren't stored in any higher resolution than necessary. A nice Android phone has a screen resolution of 1920x1200 or 2560x1440 (circa 2015)800 x 480 , so your backgrounds shouldn't contain any more pixels than that (unless your app supports some kind of zooming). Also, are the backgrounds photographs? If not, you may find that using a vector based image format like svg, or one with a dynamic palette like gif, will reduce the file size even more.

Solution 4:

UPDATE

With the introduction of Support Library 23.2, now you can replace many of your Image assets with SVG ( w/ or w/o animations) to reduce the apk size further.

ORIGINAL

This could be a late reply but might be helpful for future users.

Refer this link. To summarise the page, it mentions below key points that will help reduce the apk size in totality:

  • Use ProGaurd
  • Remove any debug info you have in the app ( statements such as Log.i()). They can be wrapped in a condition which is only enabled while testing out the application.
  • Use recommended media formats
    • Image: PNG orJPG
    • Audio: AAC
    • Video: H264 AVC
  • Compress images using OptiPNG or PNGCrush
  • Use 9patch to scale images
  • Find unused resources using this tool and remove them.
  • Avoid using multiple resources to achieve the same functionality. The resources do not only limit to images but extend to APIs. At times a singular API can provide multiple results instead of using two or three different APIs. Duplicated strings and assets are also a waste of space.