Packaging and Distributing Apps for Google Play
After you have read the previous article, "Building Your First Android App" in the series, I am sure you are pretty excited to put some creativity to work by developing your own Android apps. And by all means, they can potentially turn into profit for you with the right thoughtful design for customer's needs.
This tutorial is to prepare you specifically for the official release at Google Play store, which is undoubtedly the most popular Android store and hosts more apps and other digital merchandise than you can imagine. The knowledge we try to cover here involves configuring your app versions, maintaining target platform builds, creating your unique identify keys, and signing your apps. After these steps, we will also provide information on how to become a registered Google Play publisher. Lastly, some basic management tools at Developer Console are briefly introduced.
Configuring Your Apps Before Release
The whole idea of releasing your apps is really about cleaning up and making your apps more presentable to your customers as well as more organized and maintainable for the future. Assume you are now used to the development tool, Eclipse. If you click on your app's AndroidManifest.xml, you can can see Version Code and Version Name. The former is an important integer value which allows other applications to evaluate if your app has a newer version. It requires a greater value each time when you do an app update. The latter is a string value you can describe in a more user-friendly way.
The next important setting is the platform SDK. The minimum SDK android:minSdkVersion and maximum SDK android:maxSdkVersion indicate the version range the app can run on. Usually, maximum SDK is not set at all. If the minimum SDK version is lower, potentially more devices can use your apps and see them in more search results. android:targetSdkVersion is the version the app is designed to run on, so the device will ideally utilize all the features if it has the platform version or higher.
Furthermore, you need to prepare your application icon as well as sample screenshots. Also consider a short and concise description of your app since most users are unlikley to spend lots of time reading through the detailed text. And remember to turn off your own debugging and logging info so that they won't show up on device's system logs or even have an impact on the device performance. Finally, check through your user interface deisgn and make sure your app can display correctly in different orientation modes. Figure 1shows the sample settings for versions and SDK targets.
Figure 1: App Configuration
Obtaining Offical Keys and Signing Your Apps
The Android system requires all apps to be electronically signed by the developers. Self-signed certificates are fine.
For debugging purposes, the build system automatically uses a special debug key to sign your app. For release, you will need to create a unique key as a way of identifying yourself and establishing trusted connections between apps.
To generate the key for self-signing, you can use keytool with the recommended options: "RSA" for encryption algorithm, "2048" bits for key size, and "10000" days before key expiration. In our example, we name our key with an alias myreleasekey. You need to provide a password for future access to the key. Figure 2 shows the example of how we use keytool to generate the release key. After this, a key file named my-release-key.keystore was created. This author's key is extremely important and needs to be stored at a secure place. It is highly recommended you at least have a backup copy elsewhere.
Figure 2: Generating the Release Key
Now the self-signing key is ready, so we can proceed to sign the example app. In my case, the app's binary apk is under the folder: C:\android-root\eclipse\workspace\FirstApp\bin\FirstApp.apk Through the command line, you can use jarsigner to pick up the previous key file and sign your app with it. Another easier way is to use Eclipse. Click on the "Use the Export Wizard" at the lower left corner in Figure 1. You can use the fully-integrated dialog as in Figure 3 to browse to the key file and enter the password without having to remember what command-line options to use. You should notice the apk file size increases by a tiny amount after the signing process because of the additional data appended to the file.
Figure 3: Eclipse Export Wizard
Registering for Google Play Accounts
Google Play store, as in Figure 4, is the largest and most popular place for Android apps. It boasts over a billion downloads a month in over 130 countries in the world. "Apps" is only one of the main merchandise categories at the store. There are also other digital goods in music, books, movies, and even Google-endorsed hardware devices. As users or developers, you will find several convenient ways to manage and search the content through the web interface with cloud-connected support.
Paying a nominal one-time fee ($25 USD for now) will enable you to become an official developer and reach out to a huge audience. The one account required to distribute your apps is called the publisher account. You start by going to the Google Play Developer Console and provide basic info about your identity at: https://play.google.com/apps/publish/ Another optional account is Google Wallet Merchant Account if you plan to sell paid apps, in-app products, or subscribed services. Go to the same link as above and select "Setup a Merchant Account". Your financial identity needs to be verified before you can start any transactions. For any purchases, Google keeps a partial payment (30% for now) as the transaction fee.
Figure 4: Google Play
Managing All Published Work Through Developer Console
Once accounts are set up and verified, you can pretty much manage all your apps through Google Play Developer Console as in Figure 5. Here is a list of main functions you can do:
- Update the account identity
- Control each app's store listing details and graphics
- Upload and publish apps directly
- Distribute to the selected countries at specified prices
- View user comments and app crash reports
- Check the statistics of app installs by devices, platform versions, countries, dates, etc. Figure 6 is one example.
Figure 5: Developer Console
Figure 6: Device Statistics
To summarize this tutorial, we mainly covered two topics: one is to package your apps the way required by the offical release and the other is to provide the info about how to get yourself registered as a publisher at Google Play store. We also glanced through some basic tools at Developer Console. Since Android is an open platform, it also adopts the philosophy of allowing open distributions, i.e. distributing apps to users in any way you want. In addition to the official stores, you are also able to make your apps available through email attachments or web site downloads. Those options will require your app recipients to opt in for apps from unknown sources before they can be installed. Technically, this means they need to enable the checkbox under Setting > Security > Unknown Sources on their devices.
- Android Portal at: http://www.android.com
- Google Play Store at: https://play.google.com
- Androidlet at http://www.androidlet.com
About the Author
Chunyen Liu has been a software professional for years. He was among winners at programming contests. He has co-authored software patents, written 25+ articles, reviewed books, and published apps at Androidlet and The J Maker. He holds advanced degrees in Computer Science with 20+ graduate-level courses. On the non-technical side, he is a tournament-ranked table tennis player, certified umpire, and certified coach of USA Table Tennis.