開発環境
Eclipse | 3.7(Indigo) |
Java | >java -version |
java version "1.7.0_09" | |
AndroidSDK | 4.2.2(API17) |
エミュレータ | |
実機1 | 4.0.4 |
実機2 | |
実機3 |
必要なもの
- JDK
- Eclpse
- Android SDK
- Eclipseのandroidプラグイン
- ADB/USBドライバ
- 実機がSONY製の場合、PCにPC Companionをインストールすればよい
- デバイスマネージャで、ADB Interface DriverがあればOK
用語
- adb/Android Debug Bridge
- Android SDKに含まれる開発支援ツールの1つ。
- adbクライアント 開発機上で動く
- adbサーバ 開発機上でバックグラウンドプロセスとして動く
- adbデーモン エミュレータ/実機でバックグラウンドプロセスとして動く
- シェルコマンドの発行、ファイルの転送などが行える
- avd/Android Virtual Device
- Androidエミュレータ
- EclipseのAndroid仮想デバイス・マネージャで好きなものを作れる
- アクティビティ
- ユーザが「何か」を行うための画面を提供するコンポーネント
- 複数の画面があるアプリには、複数のアクティビティがある
- 各アクティビティがウィンドウ(=ユーザインターフェース)を持つ
- Androidのアプリケーションは、複数のアクティビティの起動・終了の連続ってことか。
- 新しいアクティビティが起動すると古いアクティビティはバックスタックに詰まれる
- android.app.Activityを継承して作る
- AndroidManifest.xmlでアクティビティを管理する
- Activityクラスのメソッド
- onCreate() アクティビティのオブジェクトが作成される時に呼ばれるメソッド
- setContentView() 画面(アクティビティ)に部品(ビュー)を配置するメソッド。onCreate()の中で呼ばれる
setContentView(int layoutResID) ←引数がXMLで作成したレイアウトを表すID setContentView(View view) ←引数がViewクラスのオブジェクト setContentView(View view, ViewGroup.LayoutParams params)
- ビュー(ウィジェットとも言う)
- TextViewクラス 画面上に文字を表示する
- EditTextクラス 画面上に編集可能な文字列を表示する(こっちはTextViewの子クラス)
- Buttonクラス 画面上にボタンを表示する(これもTextViewの子クラス)
- ビューグループ
- 複数のビューを1つのグループにまとめて配置するためのビュー
- LinearLayoutクラス ビューグループのビュー(ウィジェット)を縦に並べる
- TableLayoutクラス ビューグループのビュー(ウィジェット)を表形式で並べる
- ビューグループの中に別のビューグループを追加することもできます
- サービス
- ブロードキャストレシーバ
- インテント
- アプリケーションを構成するコンポーネント(アクティビティなど)を起動するメッセージ
- 「主要コンポーネントの実行時例とバインディングを実現する仕組み」←なんじゃそりゃ。intentは「意思」って意味だが。
- 明示的インテント・・・コンポーネント(アクティビティなことが多い)の名前を明示的に指定する
- 暗黙的インテント・・・コンポーネント名を指定せず、表示したいデータと実行したいアクションを指定することで、システムがアクティビティを選択する
- インテントの使い方例
- Intentクラスのインスタンスを作り、startActivity(Intentクラスのインスタンス)を実施してアクティビティを起動
- インテントフィルター
- AndroidManifest.xmlで各アクティビティに設定する
- インテントフィルターに設定したアクション・カテゴリ・データの組み合わせが来たときに、このアクティビティを利用できますよ、とシステムに教える
- システムがインテントフィルタを使ってアクティビティを選択する処理過程をインテント解決という
- (インテントの)アクション
- 「何をしたいか」を表す
- アクティビティアクション・・・・あるアクティビティが他のアクティビティを起動する際、「何をしたいか」を指定する(以下は例)
- ACTION_VIEW データをユーザに表示するためにアクションを起動する。
- AVCION_SEND 別の人にデータを送信する。データの宛先は指定しない。このインテントを受け取ったアクションが、ユーザに宛先を問う。
- ブロードキャストアクション・・・何らかのイベントが発生したことを他のコンポーネントに通知する際に指定する(以下は例)
- ACTION_VATTERY_CHANGED 充電中かどうかや電池残量が変わった時に送られる
- ACTION_BOOT_COMPLETED システムの起動が完了したことを示す
参考サイト
初心者のためのAndroidアプリ開発Android入門
Androidプログラマへの道
ANDROIDのド肝←概要をまとめたページではないけど説明が丁寧
Yahoo!スマホマネージャーヘルプ(USBデバッグするための設定)
Androidプログラミング入門←いまいち説明が足りん
トラブルシューティング
- USB接続した実機が認識されない
>adb devices ←実行 >List of devices attached ←結果 >実機が表示されない
- 解決方法:上記のADB/USBドライバのインストール確認
- apkをUSB接続した実機にインストールできない
下記のように出る場合 >adb install -r XXX.apk ←実行 > error: device not found ←結果
- 解決方法:上記のADB/USBドライバのインストール確認