HOME会社概況業務内容開発分野開発事例CANモジュールソフテックだよりお問い合わせ
HOME > ソフテックだより > 第185号(2013年5月8日発行) 技術レポート「Androidアプリケーション開発」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより(技術分野別)のページへ
ソフテックだより(シーン別)のページへ


ソフテックだより 第185号(2013年5月8日発行)

技術レポート

「Androidアプリケーション開発」

1. はじめに

私はソフテックに入社してから3年間Windowsアプリケーションとマイコンアプリケーションの開発に携わっていますが、Androidについては未経験でした。最近Androidアプリケーションの開発を担当させていただいたので、今回はAndroidアプリケーション開発についてご紹介させていただきます。

2. Android開発の概要

本章では、Android画面に「Hello world!」と表示するシンプルなアプリ開発手順を事例として、Android開発の概要を説明いたします。

2-1. 開発環境インストール

今回はWindows環境にAndroid開発環境を構築する手順を紹介いたします。AndroidアプリケーションをJavaで開発することになるので、下記(1)〜(3)の開発環境を利用しました。全てインターネットにおいて無償で提供されているので、簡単に構築できると思います。

(1)
Pleiades-Eclipse Javaプラグイン
Eclipse本体とJava Development Kit(JDK)などJava環境を統合したパッケージです。「http://mergedoc.sourceforge.jp/」にてダウンロードできます。本ファイルは自己解凍形式となるので、フォルダパスを指定して解凍を行います。
(2)
Android Development Tools(ADT)プラグイン
Eclipseを起動してメニューの「ヘルプ」→「新規ソフトウェアのインストール」をクリックします。開いたインストール画面の「作業対象」欄の右にある「追加」ボタンをクリックし、「ロケーション」欄に「https://dl-ssl.google.com/android/eclipse/」と入力し、「OK」ボタンをクリックします。その後、画面の指示に従って「次へ」ボタンをクリックしてADTをインストールします。完了後、Eclipseを再起動する必要があります。
(3)
Android SDK (Software Development Kit)
Eclipseが再起動すると、”Android開発へようこそ”画面が開きます。インストールしたい対象にチェックを入れて、SDKをインストールします。画面が自動的に表示されない場合、「http://developer.android.com/sdk/」にてダウンロードすることも可能です。
2-2. プロジェクト作成

次に、プロジェクトの新規作成の手順を説明いたします。

Eclipseにおいて、メニュー「ファイル」→「新規」→「プロジェクト」をクリックし、新規プロジェクト画面を開きます。図1のように「Android Application Project」を選択し、「次へ」ボタンし、Androidのプロジェクトを新規に作成します。主な設定は以下の通りです。

  • アプリケーション名:頭文字が大文字で、例えば「SFTsample」を入力します。
  • プロジェクト名:アプリケーション名と同じでよいです。
  • パッケージ名:識別子が2つ必要で、例えば「sft.sample」を入力します。
  • アクティビティーの作成にチェックを入れて、「Blank Activity」を選びます。
  • アクティビティー名とレイアウト名:デフォルト値「MainActivity」と「activity_main」でよいです。

ここのアクティビティーとは、アプリケーションの画面に相当します。

図1のように「Android Application Project」を選択し、「次へ」ボタンし、Androidのプロジェクトを新規に作成します。
図1. 新規プロジェクト作成画面

2-3. プログラミング

引き続き、「Hello world!」と表示する画面を作成する手順になりますが、画面はプロジェクトの新規作成時に自動的に作られます。特に自分でプログラミングする必要はないのですが、この部分の設定を簡単に説明いたします。

図2のように、新規プロジェクトを作成すると、必要最低限のファイルが多く生成されています。
図2. アプリケーションの設定画面

図2のように、新規プロジェクトを作成すると、必要最低限のファイルが多く生成されています。その中の「AndroidManifest.xml」をクリックし、開いた画面でアプリケーションタブを選びます。赤い枠で示したのはアプリ起動時最初の表示画面を設定する場所です。今回は2−2で設定したアクティビティー(画面)「MainActivity」が自動的に登録されています。

図3において、赤い枠で示したのは「Hello world!」と表示するテキストボックスを記述したコードです。
図3. MainActivity画面のXMLファイル内容

また、画面の内容は「プロジェクト名\res\layout\activity_main.xml」ファイルを編集します。AndroidアプリのUser Interface(UI)はレイアウトXMLに記述します。XMLに関連するJava APIの大部分はAndroidでもサポートされています。図3において、赤い枠で示したのは「Hello world!」と表示するテキストボックスを記述したコードです。

図4に示したように、ここで実端末もしくは仮想端末を選択して実行します。
図4. Androidデバイス選択画面

図5のように、AVDマネジャーで仮想端末の画面サイズやメモリなどいろいろ設定できます。
図5. Android仮想デバイスの編集画面

実端末と仮想端末の設定方法をそれぞれ説明いたします。
Android SDKには、PCで実行可能なエミュレータが含まれています。Bluetooth、電話などの一部機能を除き、ほぼ全ての機能が実端末を使用しなくても開発やテストを進めることが可能です。使い方として、Android仮想デバイス(AVD, Android Virtual Device)と呼ばれる仮想の端末環境を作成し、その仮想端末を使ってエミュレータを起動してアプリを動かすことができます。図5のように、AVDマネジャーで仮想端末の画面サイズやメモリなどいろいろ設定できます。
一方、PCと実端末を接続して実行する場合、端末で下記の設定が必要です。

  • [設定]→[アプリケーション]→[提供元不明のアプリ]をチェックする
  • [設定]→[アプリケーション]→[開発]→[USBデバッグ]をチェックする

改めて、図4の画面にて仮想デバイスを選び、プログラムを実行します。

図6で示したように、Android起動画面が表示されてから、アプリケーションが起動し、「Hello world!」と表示されます。 図6で示したように、Android起動画面が表示されてから、アプリケーションが起動し、「Hello world!」と表示されます。
図6. エミュレータとアプリケーションの画面

しばらく待つと、仮想デバイスが起動します。図6で示したように、Android起動画面が表示されてから、アプリケーションが起動し、「Hello world!」と表示されます。
もっともシンプルな例ですが、以上で開発が一通り完了しました。

2-5. アプリのインストール

PCと端末を接続し、Android SDK経由でapkファイル(開発環境でビルドされたアプリパッケージ)を端末にインストールする方法を以下に説明いたします。

(1)
デバッグ時と同様に、Android端末において下記のように設定します。
・[設定]→[アプリケーション]→[提供元不明のアプリ]をチェックする
・[設定]→[アプリケーション]→[開発]→[USBデバッグ]をチェックする
(2)
パス「Android SDKインストールディレクトリ\platform-tools」内にapkファイルを置きます。
(3)
apkファイルと同じフォルダの、テキストエディタに下記のコマンドを入力して、「install.bat」として保存します。
adb install -r ***.apk(***はアプリ名称)
pause
(4)
install.batをダブルクリックすると、コマンドプロンプトが起動し、アプリが端末にインストールされます。

そのほか、Android Marketでアプリを公開してダウンロードする方法があります。
この場合、アプリに対してデジタル署名が必要です。具体的に、apkファイルを生成するとき、Eclipseで「Androidツール」→「Export Signed Application Package」を選択し、keystoreを新規に作成してからアプリパッケージをエクスポートすることで署名できます。

3. 苦労したこと

この度、BluetoothやUDPの通信機能を用いてあるAndroidアプリケーションの開発を担当させていただきました。そのとき、苦労したことを以下に紹介いたします。

3-1. ActivityとView

2−2でも説明しましたように、AndroidでActivityとはアプリケーションの画面に相当します。この画面を表すActivityにViewと呼ばれるコンポーネントを配置していく構造になっています。Viewの属性をXMLファイルで定義します。アプリのコードが別管理になるので、修正時にわかりやすいというメリットがあります。
難点としてActivityは3つの状態(開始・実行・終了)に対して、7つのコールバックメソッド(Create・Restart・Start・Resume・Pause・Stop・Destroy)も持っています。図7で示したように、画面開発の基礎となるこのライフサイクルを理解することに苦労しました。

図7で示したように、画面開発の基礎となるこのライフサイクルを理解することに苦労しました。
図7. Activityのライフサイクル

3-2. パーミッション(Permission)

パーミッションとは、Androidアプリがどのような機能を使用するのかを定義するもので、ユーザの許可のもとに通信やGPSの利用、ストレージへのアクセスなどの権限が与えられます。しかし、開発環境においては、パーミッションを要求せずにアプリを実行しても警告などエラーが何も表示されないので、ただアプリが動作しないように見えます。意外にもOS時刻の取得など許可不要と思われる機能でもパーミッションが必要なので、常に意識したほうがよいと思います。

3-3. エミュレータ

エミュレータが正常に起動せず、「Failed to allocate memory:8」と表示される問題がありました。ネット上で調査した結果を参考に、AVDのメモリサイズを512Mに設定することで解決しました。
また、エミュレータが非常に遅かったのですが、AVDの設定でGPUの使用をチェックすることによって大幅に改善されました。ただ、それでも高速な処理に間に合わないことがあるので、その場合は実端末を利用すれば良いと思います。

4. 終わりに

今回は、Androidアプリケーションの開発を簡単にご紹介させていただきました。
これからAndroid開発を始める方々にご参考になれば幸いと思います。

(M.S.)

[参考文献]
『Android Developers (http://developer.android.com)』
『MergeDoc Project(http://mergedoc.sourceforge.jp)』

関連ページへのリンク

関連するソフテックだより