SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

Androidアプリケーションを公開するために~署名と配置の方法 ~

  • このエントリーをはてなブックマークに追加

 作成したアプリケーションをAndroidデバイスに配置(およびAndroid Marketで配布)できるようにするためには、アプリケーションに署名を行う必要があります。幸い、自分で作成した証明書での署名が可能です。この記事ではその手順について説明します。

  • このエントリーをはてなブックマークに追加

はじめに

 Androidの特徴や機能については、既にさまざまな形で取り上げられています。しかし、自作のアプリケーションを世に送り出し、他のユーザーのデバイスで動かすためには、アプリケーションの配布方法や対象のデバイスへの導入方法についても考えておかなくてはなりません。この記事では、ユーザーのデバイスへきちんと導入できるようにAndroidアプリケーションを準備する方法について説明します。

サンプルアプリケーションの開発

 以降では、簡単なAndroidアプリケーションを使って、Androidデバイスへの配置方法を説明していきます。そこで、Eclipseを使って、新しいAndroidプロジェクトを作成します。

バージョン設定

 Android SDKのバージョン1.0以降では、各AndroidアプリケーションのAndroidManifest.xmlファイルにandroid:versionCode属性とandroid:versionName attributes属性があります。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="net.learn2develop.MyKillerApp"
      android:versionCode="1"
      android:versionName="1.0.0">
    <application android:icon="@drawable/icon" 
        android:label="@string/app_name">
        <activity android:name=".MyKillerApp"
                  android:name ="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

 android:versionCode属性はアプリケーションのバージョン番号を表します。アプリケーションに修正を加えるたびに、この値を1ずつ増やして、前のバージョンとプログラム的に区別できるようにします。Androidシステム自体はこの値を利用しませんが、アプリケーションのバージョン番号を取得するうえでこの値は有用です。

 android:versionName属性はユーザーに提示するバージョン情報を表し、<major>.<minor>.<point>という形式で指定します。

 Android Marketでアプリケーションを配布する予定の場合は、AndroidManifest.xmlファイルに以下の属性が必要です。

  • android:versionCode
  • android:versionName
  • android:name
  • android:name

 さらに、アプリケーションでSDKの最小バージョン番号の指定が必要な場合は、AndroidManifest.xmlファイルで<uses-sdk>要素を使って次のように記述します。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="net.learn2develop.MyKillerApp"
      android:versionCode="1"
      android:versionName="1.0.0">

    <uses-sdk android:minSdkVersion="1" />

    <application android:icon="@drawable/icon" 
        android:label="@string/app_name">
        <activity android:name=".MyKillerApp"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

 現時点では、SDKのバージョンは1.0なので、最小バージョンの指定は必要ありません。

 android:versionCode属性の値をプログラムで取得するには、PackageManagerクラスのgetPackageInfo()メソッドを使用します。実際に表示してみるには、main.xmlの<TextView>idを次のように指定します。

<TextView
    android:id="@+id/textview"  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />

 そして、MyKillerApp.javaで、アプリケーションのバージョン番号を取得するコードを次のように追加します。

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        PackageManager pm = getPackageManager();
        try {
            //---get the package info---
            PackageInfo pi =  
                pm.getPackageInfo("net.learn2develop.MyKillerApp", 0);
            //---display the versioncode---
            TextView tv = (TextView) findViewById(R.id.textview);            
            tv.setText("VersionCode: " +Integer.toString(pi.versionCode));
        } catch (NameNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

 このアプリケーションを実行すると、android:versionCode属性の値が表示されます(図1を参照)。

図1 アプリケーションの実行:アプリケーションのversionCodeが表示される
図1 アプリケーションの実行:アプリケーションのversionCodeが表示される

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
Androidアプリケーションにはデジタル署名が必須

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Wei-Meng Lee(Wei-Meng Lee)

Microsoft MVP受賞者。Microsoft社の最新テクノロジー実地研修を専門とするDeveloper Learning Solutions社を創設。.NETとワイヤレステクノロジーの開発者、指導者として知られる。国際的なカンファレンスでたびたび講演し、.NET、XML、ワイヤレステクノロジーに関す...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3466 2009/02/02 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング