小山博史のJavaを楽しむ(9)
Google Android用携帯アプリ作成
のための基礎知識
ガリレオ
小山博史
2007/12/3
■ Eclipseプラグインのウィザードでプログラム生成
Androidのアプリケーション用にはフレームワークが用意されていますから、そのフレームワークに従ってアプリケーションを作成する必要があります。フレームワークについて理解することも大切ですが、概要を理解するには、取りあえずサンプルを作って動かしてみるのが一番です。
ということで、「C:\workspace」をワークスペースとしてEclipseを起動し、SampleAndroidプロジェクトを作成してみました。
■Androidプロジェクトの新規作成
[プロジェクト]の[新規作成]ウィザードで、Androidに含まれる[Android Project]を指定して作成しました。途中で下記の指定をしました。
- [Project name]:SampleAndroid
- [Contents]:[Create new project in workspace]を選択、[Use default location]をチェック
- [Package name]:sample.app
- [Activity name]:SampleAndroid
- [Application name]:Sample Application for Android
すると、図10のようなファイルが自動生成されました。sample.appパッケージに2つのクラスが生成されています。sample.app.SampleAndroidクラスがメインとなるクラスです。
![]() |
| 図10 自動生成されたクラスの階層 |
■ 自動生成されたファイルの中身は?
sample.app.RクラスはSDKに含まれるapptツール(詳細は後述)を使って生成するものなので、手動で変更してはいけません。Rクラスはresフォルダ(resはresourceの略)に生成されているリソースとJavaプログラムを結び付けるためのものです。
SampleAndroid.javaを開いてみると、Activityクラスを継承(extends)しており、onCreateメソッドというメソッドだけオーバーライドしています。処理はスーパークラスのonCreateメソッドを呼び出した後に、「setContentView(R.layout.main);」という処理を実行しているだけです。「setContentView(R.layout.main);」は、次の処理と同じです。
android.widget.TextView tv = new android.widget.TextView(this); |
■ AndroidのJavaプログラムはレイアウトをXMLで指定
突然、android.widget.TextViewクラスとか、「"Hello World, SampleAndroid"」といった文字列が出てきて驚いたと思いますが、実は「setContentView(R.layout.main);」では、R.javaとresディレクトリにあるリソースファイルを使って、この処理と同じ内容の処理を実現しているのです。これは、res\layout\main.xmlを開いてみると分かります。
<?xml version="1.0" encoding="utf-8"?> |
AndroidのJavaプログラムでは、このようにレイアウトはXMLで指定します。XMLを使うと、タグを書かないといけないので、ちょっと大変なのですが、このあたりはGUIエディタが出るまでの我慢でしょう。
各タグの正確な意味についてはドキュメントを見る必要がありますが、大体分かるはずです。ここでは、「android:text="Hello World, SampleAndroid"」だけ注目しておけば十分でしょう。
■ Androidプロジェクトの作成情報はAndroidManifest.xmlに
AndroidManifest.xmlを開くと、プロジェクトを新規作成するときに指定した情報が含まれていることに気が付きます。アプリケーションをAndroidで実行するときには、このファイルに指定された値が使われますから、覚えておくといいでしょう。
<?xml version="1.0" encoding="utf-8"?> |
packageには、「"sample.app"」が指定されていますし、activityタグのclass属性に「".SampleAndroid"」が指定されています。
■ ほかのフォルダの値も参照できる
なお、「"@drawable/icon"」は、res/drawableフォルダにあるicon.pngを参照するということを意味しています。
また、「"@string/app_name"」はres/valuesフォルダにあるstrings.xmlで宣言されているリソースのうち、name属性がapp_nameであるstringタグの値を参照するということを意味しています。
Androidのフレームワーク上重要なIntentに関係するタグとして、intent-filterタグがあるのですが、ここではAndroidManifest.xmlに書いてあるということを頭の隅にとどめておけば十分です。
一応、res/values/strings.xmlを開いて、name属性がapp_nameであるstringタグの値がどうなっているのかを確認してみました。
<?xml version="1.0" encoding="utf-8"?> |
なお、せっかくなので「res/drawable/icon.png」に手を加えて次のようにしてみました。
![]() |
| 図11 サンプルに使うアイコン |
■ EclipseからAndroidアプリケーションを起動させるには?
Eclipseのウィザードを使って生成されるAndroidアプリケーションの構成について大体理解したところで、実際に動作をさせてみましょう。
Eclipseのメニューから[Run]→[Open Run Dialog]を指定して、[Runダイアログ]を表示します。Android Applicationをマウスの右ボタンでクリックすると、ポップアップメニューが出ますから、そこで[New]を指定して設定の新規作成をします。これで、新しい実行用設定が指定できるようになりますから、次のように指定します。
- [Name]:SampleAndroid
- [Androidタブ - Project]:SampleAndroid
- [Androidタブ - Activity]:sample.app.SampleAndroid
[Apply]をクリックして適用してから、[Run]をクリックして実行すると、次のようなエミュレータの画面が表示されて、Androidアプリケーションが動作していることを確認できます。
■ 作成したAndroidサンプルの実行結果
Eclipseのコンソールには、次のようなメッセージが表示されます。これらのメッセージから、SampleAndroid.apkというファイルが/data/appへpushされたことが分かります。「Home is up!」とコンソールに表示されると、ホーム画面が表示されます。その後の処理部分で、sample.app.SampleAndroidの画面が表示されます。
[2007-11-25 06:38:38 - SampleAndroid] Android Launch! |
エミュレータの画面は図12のようになります。
![]() |
| 図12 実行されたサンプル |
タイトルには、AndroidManifest.xmlとres/values/strings.xmlで指定されていた「Sample Application for Android」というアプリケーション名が表示されていますし、画面上にはres\layout\main.xmlで指定されていた「Hello World, SampleAndroid」が表示されていることが分かります。エミュレータを終了させるためには、ウィンドウの右上にある[×]をクリックします。
■ アイコンも表示されている!
また、赤色の電源オフボタンをクリックしてホーム画面を表示してから一番左側にある[Applications]フォルダのアイコンをクリックすると、次のような画面が表示され、SampleAndroidのアイコンが「res/drawable/icon.png」と同じになっていることも確認できました。
![]() |
| 図13 作ったサンプルのアイコンが表示されている |
以上から、Eclipseを使うとAndroidアプリケーションのプログラムも簡単に動作させることができることが分かりました。なお、作成したサンプルは最後のページでダウンロードできます。
さらに次ページでは、Android SDKに付属する、開発に役立つツールをいくつか紹介します。
| 1-2-3-4-5 |
| INDEX | ||
| 第9回 Google Android用携帯アプリ作成のための基礎知識 | ||
| Page1 “Android”って何? 人造人間のこと? Androidアプリの開発環境を整える |
||
| Page2 エミュレータを使えば、PCでも動きをチェックできる |
||
| Page3 Eclipseプラグインのウィザードでプログラム生成 |
||
| Page4 Androidアプリ開発に便利なツール一覧 デバイスやエミュレータの状態を管理するadbツール |
||
| Page5 Androidアプリを作って一獲千金を目指せ! 【おまけ】Androidのパッケージを覗いてみた |
||
小山博史のJavaを楽しむ バックナンバー 連載インデックスへ»
- 第1回 JavaとJavaScriptの親しい関係
- 第2回 いろいろなJavaを楽しむ
- 第3回 待望のJava SE 6 でパーシステンス
- 第4回 (Java+Derby)* Ruby on Rails プログラミング
- 第5回 【新人研修向け特別企画】JavaでPHPを使ってみた
- 第6回 JavaFXでJava RIA開発はどれくらい変わるの?
- 第7回 そろそろブログ+RSSアプリでも作ってみませんか?
- 第8回 デスクトップをJava製ウィジェットでにぎやかに
- 第9回 Google Android用携帯アプリ作成のための基礎知識
- 第10回 【新人なるプログラマーへ】ソースコードを読みましょう
- 第11回 Javaはクラウドのプラットフォームになり得るのか
- 第12回 「Javaは遅い」から「Javaは楽しい」に至る歴史
- 第13回 Subversionならできる! NetBook最強バックアップ術
- 第14回 UNIX/Linuxも楽しむJava開発者になるための学習法
- 第15回 年末でJetty(絶対)にできるAndroid携帯サーバ活用
| Java Solutionコラム一覧 |
TechTargetジャパン
- Scalaのパッケージ、アクセス修飾子、オブジェクト継承 (2012/5/22)
インポート、パッケージオブジェクト、抽象クラス/抽象メソッド、オーバーライド、final、シールドクラスなども - 基幹系システムでCloud SQLは使えるか試してみた (2012/5/17)
サンプルとしてMRPシステムを作成して動かし、「再帰呼び出し」などのパフォーマンスを測定して検証してみます - アジャイル管理ツール9選+Pivotal Tracker入門 (2012/5/14)
群雄割拠のアジャイルプロジェクト管理ツールを9つ紹介し、特に注目を集めているPivotal Trackerの基本的な使い方を解説します - サーバサイドJSやJavaでWebアプリが作れるXPages (2012/5/11)
Notes/Dominoの資産をサーバサイドJavaScriptやJavaで操作し、HTMLやJavaScript、CSSをUIにできる技術を紹介
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -




