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>値は文字列なので、アプリケーション バージョンを「&lt;major&gt;.&lt;minor&gt;.&lt;point&gt;」といった文字列や、その他のタイプの絶対的または相対的バージョン ID として記述できます。 </p>
59
60<p><code>android:versionCode</code> の場合と同様に、システムではこの値をアプリケーションでユーザーに表示する以外の目的で内部的に利用することはありません。公開サービスでは、ユーザーに表示するために <code>android:versionName</code> 値を取り出す可能性もあります。</p>
61</li>
62</ul>
63
64<p>これらのバージョン属性の両方をマニフェスト ファイルの <code>&lt;manifest&gt;</code> 要素で定義します。 </p>
65
66<p>ここに、<code>&lt;manifest&gt;</code> 要素の <code>android:versionCode</code> と <code>android:versionName</code> 属性を示すマニフェストの例を示します。 </p>
67
68<pre>
69&lt;?xml version="1.0" encoding="utf-8"?&gt;
70&lt;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"&gt;
74    &lt;application android:icon="@drawable/icon" android:label="@string/app_name"&gt;
75        ...
76    &lt;/application&gt;
77&lt;/manifest&gt;
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>&lt;uses-sdk&gt;</code> 要素を <code>&lt;manifest&gt;</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