完成したAndroidアプリケーションを世界に公開するには、Googleが運営するアプリケーション配布/販売サイトAndroid Marketにそのアプリケーションを登録する必要がある。今回の記事では、アプリケーションのパッケージングから、Android Marketにアプリケーションを登録、配布するための手続きを、順を追って解説していく。

 なお、Androidアプリケーションの公開に関しては、Googleがデベロッパ向けに提供する開発ガイドにも詳しく記載されているので、参照してほしい。

Android Marketとは?

 Android Marketとは、Googleが提供するAndroid用アプリケーションの販売/配布サイトであり、iPhoneではApp Storeにあたる存在である。すでに世界中のデベロッパが、Android Marketで多種多様なアプリケーションを公開しており、内容もまさに玉石混淆と言ったところだ(図1)。

図1●Android Marketの起動画面
[画像のクリックで拡大表示]

 ところで、iPhoneアプリケーションの開発経験がある読者には、App Storeでアプリケーションを公開する際のやや面倒で煩雑な手続きに、業を煮やした方も多いのではないだろうか。Android Marketでは、その心配は無用である。クレジット・カードさえあれば、わずか数ステップで自作のアプリケーションを世界に公開できる。

登録の前に---マニフェストの設定

 アプリケーションを公開する下準備として、マニフェスト・ファイルの内容を適切に設定する必要がある。マニフェスト・ファイルとは、アプリケーションの実行に必要な情報を記載したファイルであり、アプリケーションを配布する際にも、重要な役割を果たしている。

 マニフェスト・ファイルの中身を見ていこう。プロジェクト・ディレクトリの直下に存在する「AndroidManifest.xml」のコードは以下のようなものである。

AndroidManifest.xml;

<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:versionCode="1"
    android:versionName="1.0"
    package="jp.co.android.example">
    <application
        android:icon="@drawable/icon"
        android:label="@string/app_name">
		(中略)
    </application>
    <uses-sdk
        android:minSdkVersion="3" />
</manifest> 

 マニフェスト・ファイルはXML形式で記述されている。Eclipseにはあらかじめマニフェスト・ファイルの編集画面が用意されているため、開発者は比較的簡単に内容を編集できる。

 アプリケーションの配布には、最低限、「アプリケーションのバージョン」「アプリケーションのアイコン」「アプリケーションのラベル」の三つの情報が必要だ。

 アプリケーションのバージョンは、要素の「android:versionCode」属性と「android:versionName」属性で定義する。android:versionCode属性は、アプリケーションのバージョン番号を表すもので、整数値で指定する。この数値は、開発者がアプリケーションをアップデートする度に、増やす必要がある。

 android:versionName属性は、ユーザーにバージョン情報を提示するためのもので、任意の文字列を指定できるが、ユーザーにわかりやすい文字列を指定する必要がある。なお、ここで指定したバージョン情報をプログラム上で取得したい場合は、「PackageManager」クラスの「getPackageInfo」メソッドを用いるとよい。

 アプリケーションのアイコンとラベルは、要素の「android:icon」属性と「android:label」属性に定義する。ここで定義したアイコンとラベルはそのまま、Android MarketやインストールされたAndroid端末の起動画面など、あらゆる場面でユーザーに表示されるので、注意が必要だ。なお、アイコンに設定できる画像は通常、48×48ピクセルの透過PNGファイルである点にも注意しよう。

 なお、要素の「android:minSdkVersion」属性では、アプリケーションが最低限必要とするAndroidプラットフォームのバージョンを、開発者が指定できる。