title: Reducing android app (apk) size
body: <p>I would be now publishing my first app on Google play store. I have already compressed images used in my app. And I have some questions regarding the app size.</p>
  
  <p><strong><em>If the size of app is less that 2 MB then there are less chances that user will uninstall the app, is my this statement true for apps belonging to education field ?</em></strong></p>
  
  <p>However, When I see my apk file in windows it shows 3.10 MB but when it gets installed in device as viewed from App info it shows:</p>
  
  <pre><code>Total............................8.68 MB
  App..............................7.02 MB
  USB storage app..................0.00 B
  Data.............................1.66 MB (perhaps it is the size of sqlite db + ttf's)
  SD card..........................0.00B
  </code></pre>
  
  <p><strong><em>So, Why do I see that much increase in my app size, Can it be minimized ?</em></strong></p>
  
  <p>And, I am using 4 libraries (jars) in my project which are in <code>Android Private Libraries</code>, but these library have their copy outside this folder also.</p>
  
  <p><strong><em>Is it safer to delete them, &amp; deleting them can help to decrease apk size?</em></strong></p>
  
  <p>Also I have visited many web pages describing what <code>Proguard</code> does, I truly understand how Proguard reduces size of apk,  it shrinks, optimizes, and obfuscates our code by removing unused code and renaming classes, fields, and methods with semantically obscure names. The result is a smaller sized .apk file that is more difficult to reverse engineer. But I do not know How should be my <code>proguard-project.txt</code>  should look like ?<br> 
  I am using 4 libraries in my app namely <code>easyfacebookandroidsdk_2.3.jar</code>,<code>android-support-v7-appcompat.jar</code>,<code>google-play-services.jar</code> &amp; <code>android-support-v4.jar</code>. </p>
  
  <p>Currently my <code>proguard-properties.txt</code> looks like this &amp; also it do not uses WebView </p>
  
  <pre><code># To enable ProGuard in your project, edit project.properties
  # to define the proguard.config property as described in that file.
  #
  # Add project specific ProGuard rules here.
  # By default, the flags in this file are appended to flags specified
  # in ${sdk.dir}/tools/proguard/proguard-android.txt
  # You can edit the include path and order by changing the ProGuard
  # include property in project.properties.
  #
  # For more details, see
  #   http://developer.android.com/guide/developing/tools/proguard.html
  
  # Add any project specific keep options here:
  
  # If your project uses WebView with JS, uncomment the following
  # and specify the fully qualified class name to the JavaScript interface
  # class:
  #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
  #   public *;  
  #}
  -keep class com.facebook.** { *; }
  -keepattributes Signature
  </code></pre>
  
  <p><strong><em>So, what lines should I add in my <code>proguard-properties.txt</code> so that it can remove unused references,classes,etc., in order to reduce the apk size ?</em></strong></p>
  
  <p>Using AndroidUnusedResources.jar available at <a href="https://code.google.com/p/android-unused-resources/" rel="noreferrer">https://code.google.com/p/android-unused-resources/</a>  finds unused resources in android project. </p>
  
  <p><strong><em>I think this is the same thing which proguard has already done ? Or should it also be used after enabling proguard ?</em></strong></p>
  
  <p>Also you can mention in your answer anything that is missing which you feel should be shared. <br>Thanks in Advance...</p>