基礎というか、Androidアプリの概要に触れて、開発関連のソフトウェアをインストールした。
Android アプリの基礎知識
Androidのアーキテクチャ
アーキテクチャ(基本設計)はアプリケーション、アプリケーションフレームワーク、ライブラリ、Androidランタイム、Linuxカーネルに分類される5つのレイヤーに分かれたコンポーネントで構成されている。
Android アプリの構成要素
Android アプリは、アクティビティ、ブロードキャストレシーバ、サービス、コンテンツプロバイダの4つで、これらの組み合わせ(複数利用もある)で構成される。
- アクティビティ : アプリ内の画面(UI、イベント処理など)
- ブロードキャストレシーバ : ブロードキャストインテントの受信(ほかアプリやOSからのメッセージの受信)
- サービス : バックグラウンドで動作するプロセス
- コンテンツプロバイダ : 他のアプリとのやりとりで利用するデータベース
インテントは、アクティビティやサービスがやりとりをする際に利用されるメッセージオブジェクトのこと。アクティビティにはライフサイクルがある。
Android アプリ制作の流れ
ソースコードの.javaファイルを作成、画像やサウンドなどのリソースファイルを用意する。Android アプリの属性ファイル(アプリ名、バージョン番号、セキュリティ情報が含まれる)であるAndroidManifest.xmlを作成する。EclipseではAndroidアプリの実行ファイルである.apkファイルに変換する。端末でアプリを実行する場合は署名の.keystoreファイルも必要になる。
Android アプリのクラスライブラリ
Javaの標準APIのサブセットとAndroidの独自のAPI(端末のUI関連のクラスなど)がある。Androidのクラスライブラリは、Google のAPIリファレンスを参照する。
開発ツールの準備
- JDK(Java Development Kit)
- Eclipse
- Android Development Tool(ADT)
- Android SDK
JDKとEclipseはインストール済なので、そこは割愛。
今回はAndroid Development Tool(ADT)のインストールから。ADTとADK(Accessory Development Kitだから全然違うんだけど)がごっちゃになる。さらにAndroid SDKとADTの違いもよくわかってないから余計混乱した。
Macの場合は、ヘルプ→ソフトウェアの追加からAndroid Development Kit(ADK)を追加して、しばし待っていると、インストールが開始される。このへんはEclipseに新規でソフトウェアをインストールする際の手順と同様。
その後、Android SDKを自動でインストールするか?など聞かれるが、今回はSDKをダウンロードして(なんとなく教科書にしたがってバージョンの異なるSDKをカスタムインストールしたいからなのかもしれないが)、手動でインストールしてみた。ADTが予め同梱されてるEclipseも配布されてるみたいだし、そっちつかえばかなり至れり尽くせりな感じはする。
Android SDK | Android Developers
上記URLの「VIEW ALL DOWNLOADS AND SIZES」から、該当OSのSDKのみをダウンロードする。ダウンロードして解凍したSDKファイルを、自分の場合はすでにインストールしていたEcliseのフォルダに置いて、環境設定から、Androidの項目へ移動して、先ほど置いたSDKファイルのロケーションを指定する。
SDKマネージャは再起動後に、ウィンドウから、Android SDKマネージャから呼び出せる。書籍で指定されている、「2.3.3」、「3.2」、「4.0」、「4.2.4」のライブラリ、あとはToolsをインストール。
次はAndroid Virtual Device(AVD)を追加する。エミュレーション用の設定のようだ。指定の項目で起動してみた。Nexus5用の設定も作ってみたのだが、そっちもしばらく待ってたら起動した。AndroidのCPUは古くからARM、2012からIntelのx86があるようだ。まだよくわかってないけど割とARMがメジャーらしい。
コマンドライン用のパスの設定、まだあるのかー。これ開発環境構築だけで放り出す人もいるレベルじゃなかろうか。.bash_profileがなかったので作成して、以下の内容を自分の場合記述した(Android SDKをEclipseのフォルダにバージョンを記載したままコピーしている状態)。
っと、その前に、Terminal.appから.bash_profileにアクセスするために(あるか確認くらいの意味なんかな)不可視ファイルを表示するコマンドを入力した。終わったらTRUEをFALSEにして再度不可視に。
defaults write com.apple.finder AppleShowAllFiles TRUE
killall Finder
```
```shell-session:.bash_profile
export PATH=$PATH:/Applications/eclipse\ 4.4/Android_SDK_r23.0.2/platform-tools:/Applications/eclipse\ 4.4/Android_SDK_r23.0.2/tools
```
パスが通っているか、`printenv PATH`で確認。OK。