アプリケーションのバージョニング

バージョン管理の概略

  • アプリケーションにはバージョンを設定する必要がある
  • バージョンは、アプリケーションのマニフェスト ファイルで設定する
  • アプリケーションのバージョン管理方法は、ユーザーのアップグレード方法に影響
  • 開発プロセスの初期段階で、今後のリリースの検討事項を含めて、バージョン管理戦略を決定します

このドキュメントの内容

  1. アプリケーションのバージョンの設定
  2. 最小システム API バージョンの指定

関連項目

  1. 公開の準備
  2. Android マーケットでの公開
  3. The AndroidManifest.xml File

バージョン管理のコンポーネントは、アプリケーションのアップグレード及びメンテナンスの計画を立てるのに重要です。

  • ユーザーは、デバイスにインストールされたアプリケーション バージョンと、インストールが可能なアップグレード バージョンについて、特定の情報が必要です。
  • スイートとして公開されたその他のアプリケーションなどでは、アプリケーションのバージョンをシステムに問い合わせて、互換性と依存関係を確認する必要があります。
  • アプリケーションを公開するサービスでは、アプリケーションにバージョンを問い合わせて、バージョンをユーザーに表示できるようにする必要があります。公開サービスでは、互換性を確認してアップグレードとダウングレードの関係を確立するために、アプリケーション バージョンを確認する必要があります。

Android システム自体は、アップグレードや互換性の制約の実施などのために、アプリケーション バージョン情報をアプリケーションに対して確認することはありません。代わりに、アプリケーションにおけるバージョン制約はユーザーまたはアプリケーション自体によって完全に実施されます。

Android システムが確認を行うのは、アプリケーションによってマニフェストの minSdkVersion 属性に指定されたシステム バージョン互換性です。この属性によりアプリケーションは互換性を持つ最小システム API を指定できます。詳細は、最小システム API バージョンの指定をご覧ください。

アプリケーションのバージョンの設定

アプリケーションのバージョン情報を定義するには、アプリケーションのマニフェスト ファイルで属性を設定します。2 つの属性を使用でき、常にこの両方に値を定義することが推奨されています:

  • android:versionCode - アプリケーション コードのバージョンを他のバージョンと相対的に示す整数値。

    この値は整数なので、その他のアプリケーションはプログラムでバージョンの値を評価して関係を確認できます(たとえば、このバージョンがアップグレードかダウングレードなのか、など)。任意の整数値を設定できますが、アプリケーションの後続のリリースでは、現在より大きな値を使用するようにしてください。システムではこのバージョン管理の基準を強制しませんが、後継リリースの値を増加させることは標準的です。

    通常、アプリケーションの最初のバージョンの versionCode を 1 に設定してリリースし、その後は各リリースについて、リリースがメジャー リリースであってもマイナー リリースであっても、値を単調増加させます。これは、android:versionCode の値は、ユーザーに表示されるアプリケーション リリース バージョンと類似している必要性はないことを意味します。以下の android:versionName をご覧ください。アプリケーションと公開サービスでは、このバージョンの値はユーザーには表示されません。

  • android:versionName - アプリケーション コードのリリース バージョンを表す文字列値で、ユーザーに表示される値です。

    値は文字列なので、アプリケーション バージョンを「<major>.<minor>.<point>」といった文字列や、その他のタイプの絶対的または相対的バージョン ID として記述できます。

    android:versionCode の場合と同様に、システムではこの値をアプリケーションでユーザーに表示する以外の目的で内部的に利用することはありません。公開サービスでは、ユーザーに表示するために android:versionName 値を取り出す可能性もあります。

これらのバージョン属性の両方をマニフェスト ファイルの <manifest> 要素で定義します。

ここに、<manifest> 要素の android:versionCodeandroid:versionName 属性を示すマニフェストの例を示します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.example.package.name"
      android:versionCode="2"
      android:versionName="1.1">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        ...
    </application>
</manifest>

この例では、android:versionCode 値は現在の .apk がこのアプリケーション コードの 2 番目のリリースを含んでいることを表し、これは android:codeName 文字列が示すようにマイナー後継リリースであることを示します。

Android フレームワークには、アプリケーションがシステムに別のアプリケーションのバージョン情報を問い合わせる API が用意されています。バージョン情報を取得するため、アプリケーションは getPackageInfo(java.lang.String, int) method of PackageManager.

を使用します。

最小システム API バージョンの指定

アプリケーションが最低でも Android プラットフォームの特定のバージョンを必要とする場合、このバージョンを API レベルの ID としてアプリケーションのマニフェスト ファイルに指定できます。このようにすると、互換性のあるバージョンの Android システムを実行しているデバイスにのみアプリケーションをインストールできるようになります。

最小システム バージョンをマニフェストに指定するには、次の属性を使用します:

  • android:minSdkVersion - Android プラットフォームのコード バージョンに対応する整数値。

    アプリケーションのインストールを準備する際に、システムはこの属性の値を確認して、システム バージョンと比較します。android:minSdkVersion 値がシステム バージョンよりも大きい場合、システムはアプリケーションのインストールを中止します。

    この属性をマニフェストに指定しない場合、システムではアプリケーションがすべてのプラットフォーム バージョンと互換性があると仮定します。

アプリケーションに最小プラットフォーム バージョンを指定するには、<uses-sdk> 要素を <manifest> の子として追加し、android:minSdkVersion を属性として定義します。

詳細は、Android System Image 1.1 Version Notes もご覧ください。

↑ Go to top