1page.title=アプリケーションのバージョニング 2@jd:body 3 4<div id="qv-wrapper"> 5<div id="qv"> 6 7<h2>バージョン管理の概略</h2> 8 9<ul> 10<li>アプリケーションにはバージョンを設定する必要がある<em></em></a></li> 11<li>バージョンは、アプリケーションのマニフェスト ファイルで設定する</li> 12<li>アプリケーションのバージョン管理方法は、ユーザーのアップグレード方法に影響 </li> 13<li>開発プロセスの初期段階で、今後のリリースの検討事項を含めて、バージョン管理戦略を決定します</li> 14</ul> 15 16<h2>このドキュメントの内容</h2> 17 18<ol> 19<li><a href="#appversion">アプリケーションのバージョンの設定</a></li> 20<li><a href="#minsdkversion">最小システム API バージョンの指定</a> 21</ol> 22 23 24<h2>関連項目</h2> 25 26<ol> 27<li><a href="{@docRoot}tools/publishing/preparing.html">公開の準備</a></li> 28<li><a href="{@docRoot}tools/publishing/publishing.html#market">Android マーケットでの公開</a></li> 29<li><a href="{@docRoot}guide/topics/manifest/manifest-intro.html">The AndroidManifest.xml File</a></li> 30</ol> 31 32</div> 33</div> 34 35<p>バージョン管理のコンポーネントは、アプリケーションのアップグレード及びメンテナンスの計画を立てるのに重要です。 </p> 36 37<ul> 38<li>ユーザーは、デバイスにインストールされたアプリケーション バージョンと、インストールが可能なアップグレード バージョンについて、特定の情報が必要です。 </li> 39<li>スイートとして公開されたその他のアプリケーションなどでは、アプリケーションのバージョンをシステムに問い合わせて、互換性と依存関係を確認する必要があります。</li> 40<li>アプリケーションを公開するサービスでは、アプリケーションにバージョンを問い合わせて、バージョンをユーザーに表示できるようにする必要があります。公開サービスでは、互換性を確認してアップグレードとダウングレードの関係を確立するために、アプリケーション バージョンを確認する必要があります。</li> 41</ul> 42 43<p>Android システム自体は、アップグレードや互換性の制約の実施などのために、アプリケーション バージョン情報をアプリケーションに対して<em>確認することはありません</em>。代わりに、アプリケーションにおけるバージョン制約はユーザーまたはアプリケーション自体によって完全に実施されます。 </p> 44 45<p>Android システムが確認を行うのは、アプリケーションによってマニフェストの <code>minSdkVersion</code> 属性に指定されたシステム バージョン互換性です。<em></em>この属性によりアプリケーションは互換性を持つ最小システム API を指定できます。詳細は、<a href="#minsdkversion">最小システム API バージョンの指定</a>をご覧ください。 46 47<h2 id="appversioning">アプリケーションのバージョンの設定</h2> 48<p>アプリケーションのバージョン情報を定義するには、アプリケーションのマニフェスト ファイルで属性を設定します。2 つの属性を使用でき、常にこの両方に値を定義することが推奨されています: </p> 49 50<ul> 51<li><code>android:versionCode</code> - アプリケーション コードのバージョンを他のバージョンと相対的に示す整数値。 52 53<p>この値は整数なので、その他のアプリケーションはプログラムでバージョンの値を評価して関係を確認できます(たとえば、このバージョンがアップグレードかダウングレードなのか、など)。任意の整数値を設定できますが、アプリケーションの後続のリリースでは、現在より大きな値を使用するようにしてください。システムではこのバージョン管理の基準を強制しませんが、後継リリースの値を増加させることは標準的です。 </p> 54 55<p>通常、アプリケーションの最初のバージョンの versionCode を 1 に設定してリリースし、その後は各リリースについて、リリースがメジャー リリースであってもマイナー リリースであっても、値を単調増加させます。これは、<code>android:versionCode</code> の値は、ユーザーに表示されるアプリケーション リリース バージョンと類似している必要性はないことを意味します。以下の <code>android:versionName</code> をご覧ください。アプリケーションと公開サービスでは、このバージョンの値はユーザーには表示されません。</p> 56</li> 57<li><code>android:versionName</code> - アプリケーション コードのリリース バージョンを表す文字列値で、ユーザーに表示される値です。 58<p>値は文字列なので、アプリケーション バージョンを「<major>.<minor>.<point>」といった文字列や、その他のタイプの絶対的または相対的バージョン ID として記述できます。 </p> 59 60<p><code>android:versionCode</code> の場合と同様に、システムではこの値をアプリケーションでユーザーに表示する以外の目的で内部的に利用することはありません。公開サービスでは、ユーザーに表示するために <code>android:versionName</code> 値を取り出す可能性もあります。</p> 61</li> 62</ul> 63 64<p>これらのバージョン属性の両方をマニフェスト ファイルの <code><manifest></code> 要素で定義します。 </p> 65 66<p>ここに、<code><manifest></code> 要素の <code>android:versionCode</code> と <code>android:versionName</code> 属性を示すマニフェストの例を示します。 </p> 67 68<pre> 69<?xml version="1.0" encoding="utf-8"?> 70<manifest xmlns:android="http://schemas.android.com/apk/res/android" 71 package="com.example.package.name" 72 android:versionCode="2" 73 android:versionName="1.1"> 74 <application android:icon="@drawable/icon" android:label="@string/app_name"> 75 ... 76 </application> 77</manifest> 78</pre> 79 80<p>この例では、<code>android:versionCode</code> 値は現在の .apk がこのアプリケーション コードの 2 番目のリリースを含んでいることを表し、これは <code>android:codeName</code> 文字列が示すようにマイナー後継リリースであることを示します。 </p> 81 82<p>Android フレームワークには、アプリケーションがシステムに別のアプリケーションのバージョン情報を問い合わせる API が用意されています。バージョン情報を取得するため、アプリケーションは {@link android.content.pm.PackageManager#getPackageInfo(java.lang.String, int)} 83method of {@link android.content.pm.PackageManager PackageManager}. </p> を使用します。 84 85<h2 id="minsdkversion">最小システム API バージョンの指定</h2> 86 87<p>アプリケーションが最低でも Android プラットフォームの特定のバージョンを必要とする場合、このバージョンを API レベルの ID としてアプリケーションのマニフェスト ファイルに指定できます。このようにすると、互換性のあるバージョンの Android システムを実行しているデバイスにのみアプリケーションをインストールできるようになります。 </p> 88 89<p>最小システム バージョンをマニフェストに指定するには、次の属性を使用します: </p> 90 91<ul> 92<li><code>android:minSdkVersion</code> - Android プラットフォームのコード バージョンに対応する整数値。 93<p>アプリケーションのインストールを準備する際に、システムはこの属性の値を確認して、システム バージョンと比較します。<code>android:minSdkVersion</code> 値がシステム バージョンよりも大きい場合、システムはアプリケーションのインストールを中止します。 </p> 94 95<p>この属性をマニフェストに指定しない場合、システムではアプリケーションがすべてのプラットフォーム バージョンと互換性があると仮定します。</p></li> 96</ul> 97 98<p>アプリケーションに最小プラットフォーム バージョンを指定するには、<code><uses-sdk></code> 要素を <code><manifest></code> の子として追加し、<code>android:minSdkVersion</code> を属性として定義します。 </p> 99 100<p>詳細は、<a href="{@docRoot}about/versions/android-1.1.html">Android System Image 1.1 Version Notes</a> もご覧ください。</p> 101