This post outlines some of the steps required to release an app to the public through a mobile marketplace.
ProGuard is an open-source tool included in the Android SDK. Here is the product description on sourceforge from the creator of the tool:
"ProGuard is a free Java class file shrinker, optimizer, obfuscator, and preverifier. It detects and removes unused classes, fields, methods, and attributes. It optimizes bytecode and removes unused instructions. It renames the remaining classes, fields, and methods using short meaningless names."
To run ProGuard using its default configuration in the Eclipse/ADT IDE, you can do the following:
1. In your project root directory, open the project.properties file and uncomment this line:
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
There is no need to further modify the above line if your proguard-project.txt and project.properties files are in the same root directory.
2. In your project manifest XML file, set debuggable to false.
Example:
<application android:icon="@drawable/icon"
android:label="@string/app_name"
android:debuggable="false">
This step is necessary because ProGuard does not run in debug mode.
3. In the package explorer select your app -> File -> Android Tools -> and Export either a signed or an unsigned package. You should export the obfuscated APK to a location different from the directory you use for ordinary development.
You cannot install an unsigned APK in a device, though you can verify that your Android app code has been obfuscated.
If ProGuard runs, it creates in your project a new ProGuard directory that contains dump, mapping, seeds, and usage text files. These files are required to reverse engineer the obfuscated stack traces you may receive as part of a support incident.
To determine if your app size has been reduced, check its size against a nonobfuscated version. If your app uses third-party libraries and needs from them only a few classes, ProGuard will not pack the full third-party libraries which will reduce the APK file size.
Finally, you can try to decompile your obfuscated app using apktool or another reverse engineering tool to see if the names of classes, fields, and methods have been obfuscated.
ProGuard
http://developer.android.com/tools/help/proguard.html
Sourceforge
http://proguard.sourceforge.net
Optimizing, Obfuscating, and Shrinking your Android Applications with ProGuard
http://www.androidengineer.com/2010/07/optimizing-obfuscating-and-shrinking.html
Android: How To Decode ProGuard’s Obfuscated Code From Stack Trace
http://blog.simplyadvanced.net/android-how-to-decode-proguards-obfuscated-code-from-stack-trace/
Digitally Signing An App
If you are using Eclipse/ADT you can use the IDE wizard starting from here: FIle -> Export.
You probably don't need to export an unsigned APK often, but some app stores may want to add their code such as for DRM, and then return it to you to sign for release.
Also see:
Signing Your Applications
http://developer.android.com/tools/publishing/app-signing.html
Signing Applications in Android
http://developer.samsung.com/android/technical-docs/Signing-Applications-in-Android
Google Play Graphics
Launcher icons
hdpi
72 x 72 pixels
96 pixels/inch
32-bit PNG (with alpha)
xhdpi
96 x 96 pixels
96 pixels/inch
32-bit PNG (with alpha)
High resolution icon
Dimensions: 512px by 512px
Maximum file size: 1024KB
32-bit PNG (with alpha)
Screen Shots
Minimum of two screen shots
Minimum dimension: 320px
Maximum dimension: 3840px
Example: 500 x 800px
Maximum dimension cannot be more than 2X the minimum.
JPEG or 24-bit PNG (no alpha)
Feature Graphic
Dimensions: 1024px by 500px
Content frame of 924x400 (50px of safe padding on each side).
JPEG or 24-bit PNG (no alpha)