« Symbian サンプルのBuild | メイン | Android 電子署名1 »

Android バージョン番号

ソフトウェアを公開するには、バージョン番号を必ず付ける必要がある。 Android用ソフトのバージョン番号の取扱いについてまとめてみた。

http://code.google.com/android/devel/sign-publish.html

Androidでは、各アプリケーションは、マニュフェストファイルにバージョン番号を記載する。
このバージョン番号は、Androidによって論理的に意味付をされて使用されないため、自由なルール付けをして設定可能である。 バージョン情報は2つありAndroidManufest.xmlに記載を行う

android:versionCode

  • Integer型のバージョン番号。
  • どのように上げていくかは、開発者に任される。
  • 通常ユーザに見える事はない。
  • GoogleのAndroid Marketにて、アップグレード情報として使用される

android:versionName

  • ユーザが見る事ができるバージョン番号。
  • Androidによって、アプリケーションのバージョン番号として表示される。
  • Android Market上で表示される。

Aboutダイアログ等への表示

divider_horizontal_bright.png

プログラム上では、Aboutボックスにバージョン番号を表記する。この表示する番号は別リソースに持ってもよいのだが、バージョンアップをすると二か所を変更することになり好ましくない。
以下はManufestファイルからバージョン番号を取得し一元管理する方法

Aboutダイアログボックス等でプログラム内から上記バージョン番号を表示する場合は、PackageManagerからPackageInfoを取得しバージョン番号を得る。


 String versionName ;
 PackageManager pm = getPackageManager();
 try {
	 PackageInfo info = null;
	 info = pm.getPackageInfo("jp.co.taosoftware.wareki", 0);
	  versionName = info.versionName;
 } catch (NameNotFoundException e) {
 }

もちろんバージョン番号だけでなく、マニュフェストファイルに記載されている内容に関しては、上記PackageInfoから取得可能である。


2009/5/19


情報が古くなった箇所があったため修正しました。

トラックバック

このエントリーのトラックバックURL:
http://www.taosoftware.co.jp/mt/mt-tb.cgi/92

コメント

Android関連の情報や、特にプログラミングに関しては、いつも大変参考にさせて頂いています。

バージョン番号の取得に関して質問があります。
このエントリーのようにPackageManager から取得する方法では、コード内では自由に使えると思いますが、例えば preferenceactivity を用いて設定画面をXMLで記述する場合、このXML中にPackageManager の値を反映させるにはどうしたら良いでしょうか?

お忙しいところ恐縮ですが、ご教示頂けると幸いです。
宜しくお願い致します。

コメントありがとうございます。

XML上での記載は無理かと思います。
それ用のStringリソースを用意するか、OnCreateにて設定をするのが一番だと思います。

ご教示頂きありがとうございます。
お礼が遅くなり申し訳ございませんでした。

XMLではやはり無理ですか。
ありがとうございました。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)