NetBeansでアンドロイド対応アプリの開発
キャリアごとに異なる開発環境に手を出すのは面倒だと思っていたが、やっとdocomoがアンドロイド対応携帯を販売。
パソコン上でエミュレータを使い、どんな画面が表示されるか見てみることにする。
手順は以下のとおり
1.Android SDK をダウンロード(この中にAndroid携帯エミュレーターも含まれている)
2.NetBeansにAndroid対応プラグインを組み込む
(3.エミュレーターを起動)・・・NetBeansから自動起動でもよい
4.NetBeansでサンプルを作成し、エミュレーター画面で動作確認
<詳細>
1.Android SDKのインストール
(1)以下からWindows用をダウンロードし、解凍
現在Android 1.5 SDK, Release 3が最新
http://developer.android.com/sdk/1.5_r3/index.html
(2)解凍したAndroid SDKを任意のフォルダに移動
ここでは、"C:\Program Files\android-sdk-1.5" に置いた。
(3)プログラムのPathを通す。
コントロールパネル->システム->詳細設定->環境変数->システム環境変数 とクリックし、Pathの最後に上記のパス「;C:\Program Files\android-sdk-1.5」を追加。以下このディレクトリを、Android SDKと呼ぶ。
2.NetBeansにAndroidプラグインを組み込む
(1) NetBeansを起動し、ウール->プラグイン->設定タブで追加とクリック
(2) アップデートセンターカスタマイザが表示されたら、名前欄に「nbandroid」、URL欄に以下を入力し、了解をクリック
(3) 使用可能なプラグインタブで、Androidを選択し、インストールボタンをクリック
(4) ガイダンスにしたがってライセンスを受諾すると、妥当性検査の警告画面が表示されるが、そのままインストールを行う。
http://kenai.com/downloads/nbandroid/updates.xml
3.エミュレーターを起動
(1) AVD(Android Virtual Device - Android仮想デバイス)の準備
AVDのディレクトリ及びファイルには、emulatorを動かす際に必要となる、Android仮想デバイスのHW情報やAndroidのスキンなどの動作環境が含まれる。環境に応じ、複数作成して使い分けられるようになっている。
アンドロイドとGoogle MapがエミュレーターのAVD上で動くように、以下のコマンドをコマンドプロンプト画面から入力
> Android SDK\tools>android create avd --name androidpc --target 3 |
ここでnameオプションの値には任意の名前を指定。targetオプションの値は、以下を表す。
id: 3 Name: Google APIs Type: Add-On Vendor: Google Inc. Description: Android + Google APIs Based on Android 1.5 (API level 3) Libraries: * com.google.android.maps (maps.jar) API for Google Maps Skins: QVGA-P, HVGA-L, HVGA (default), QVGA-L, HVGA-P |
(2) 成功すると、以下のようなメッセージが表示される。
Created AVD 'androidpc' based on Google APIs (Google Inc.) |
作成したAVDファイルの内容は、以下のようにして確認できる。
Android SDK\tools>android list avd Available Android Virtual Devices: Name: androidpc Path: C:\Documents and Settings\ユーザ名\.android\avd\androidpc.avd Target: Google APIs (Google Inc.) Based on Android 1.5 (API level 3) Skin: HVGA |
詳しくはインストールディレクトリの下の docs\guide\developing\other-ide.html を参照。
(3)エミュレーターの起動
以下のコマンドをコマンドラインから実行すると、1~2分ほどかかるが赤いAndroidエミュレーターの画面が表示される。@の後ろに、仮想デバイスの名前を指定。
Android SDK\tools>emulator @androidpc |
* NetBeansからプロジェクトを実行すると、自動的にエミュレータを起動することも出来る。が、エミュレーターの起動が非常に遅い。
また、NetBeansからエミュレーターを自動起動すると、以下のようなエラー?が表示される。構築成功しているし、Menuボタンを押すと、実行されている。この問題に関してはあちこちで記載を見かけるが別途、宿題とする。いったん起動しておけば、エラーは発生しない。
DDM dispatch reg wait timeout Can't dispatch DDM chunk 52454151: no handler defined |
4.NetBeansでサンプル作成
(1) 新規プロジェクト->Android(カテゴリ)->Android Application(プロジェクト)と選択し、次へ
(2) Android Platformの欄に "Missing pPlatform: NO PLATFORM" と表示されていたら、以下のようにプラットフォームを登録。
・Manage Platforms ->プラットフォームを追加->Google Android Open Handheld Platformラジオボタンをクリックし、次へ
・プラットフォームフォルダを選択画面で、"Android SDK"を選択し次へ
・ここではMapを使いたいので、Google APIsを選択し、完了ボタンをクリック
(3) プラットフォームが設定されると、プロジェクトが生成される。作成されるファイル名はMainActivity.java。自動生成されるテンプレート内容は、以下のとおり。
*Activityとは、Androidで動作する個々の画面。
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.me.sample1; import android.app.Activity; import android.os.Bundle; /** */ public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); // ToDo add your GUI initialization code here } } |
(4) 画像と文字を表示するサンプルを作ってエミュレータに表示する。
表示する画像 android.png を、NetBeansのプロジェクトディレクトリの下、res(リソース)にディレクトリ images を作って置く。
*NetBeansのResourcesディレクトリ下に作成。
(5) ソースの修正
次のクラスファイル import文を追記
import android.widget.ImageView; // 画像表示クラス import android.widget.TextView; // 文字表示クラス import android.widget.LinearLayout; // レイアウト |
// ToDo の部分に以下の処理を記述。
LinearLayout linearLayout = new LinearLayout(this); // 画面左から右へ表示 linearLayout.setOrientation(LinearLayout.HORIZONTAL); ImageView hwiv = new ImageView(this); // 画像の場所:Sample1\res\images\android.png hwiv.setImageResource(R.images.android); linearLayout.addView(hwiv); TextView tv = new TextView(this); tv.setText("Hello みなさん!\nこんにちは"); linearLayout.addView(tv); setContentView(linearLayout); |
(6) プロジェクト実行ボタンをクリックする。
しばらくほっておくと、節電モードで画面が暗くなる。それっぽい。
ちなみに、インストールディレクトリの下、toolsディレクトリに、sqlite3.exeがある。アンドロイドではSQLiteが使えるらしい。
参考: Taosoftwareさん、JavaDriveさん、@IT あたりが分かりやすい。
詳しくは、デベロッパー ガイド、インストールディレクトリ下のdocs\guide\tutorials などを参照のこと