2010年4月15日木曜日

androidアプリ開発勉強中③

今回は、 http://www.atmarkit.co.jp/fjava/rensai4/android03/android03_1.html を参考に進める。

登場するサンプルアプリは、
http://www.atmarkit.co.jp/fjava/rensai4/android03/Dual%20Activities.zip
http://www.atmarkit.co.jp/fjava/rensai4/android03/Intent%20Caster.zip 。

「Dual Activities」の方は、前回と同様に下記を実行すればいいので問題ないが…

    ----------------------------------------
    ダウンロードした Dual Activities.zip を、
    C:\Programming\eclipse-project に移動。

    Eclipse を起動。
    Fileメニュー > Inmport
    General > Existing Projects into Workspace
    Select archive file にZIPファイルへのパスを設定。
    Finish

    対象プロジェクトで右クリックメニュー > Properties
    Android > Android 1.6 にチェック

    src 側にある R.java を削除。

    デバッグ実行。
    ----------------------------------------

「Intent Caster」の方は、そうはいかない。
正確には、Uriとアクションの組み合わせによって実行できたり出来なかったりする。@ITの記事の表3にある組み合わせ全6パターンを上から順に試してみようと思う。

①「ブラウザの起動」は問題なくできた。

②@ITの記事に正常に機能しないと書いているのでskip。

③ 「電話を発信」。ここから。

デバッグ実行すると、

「java.lang.SecurityException
...
requres android.permission.CALL_PHONE」

みたいな感じでエラーが出るので、下記のようにパーミッションの設定をする。

AndroidManifest.xml > Permissionsタブ
Add > Uses Permission
  Name: android.permission.CALL_PHONE
保存

これでOK。
デバッグ実行して確認すると、それっぽい動作をする。


④「電話番号入力画面を起動」。これは問題なし。

⑤「地図アプリケーションを起動」。現状のAVDでは、地図アプリが無いので動作しない。
新しいAVDを作成する。
Virtual Devices > New 
  Name: TestAVD2
  Target: Target: Google APIs (Google Inc.) - API Level 4  


そして、対象プロジェクトで右クリックメニュー > Properties
Android > Google APIs (Platform1.6) にチェック

これでOK。

だが、現在AVDが2個ある状態なので、debug時にどちらのAVDを使用するか設定。
対象のプロジェクト上で右クリックメニュー
Debug As > Debug Configrations...
Debug > Tergetタブ > manual
私はmanualで毎回選択するようにしたが、autoでTestAVD2に固定して問題ないと思う。


⑥「ストリートビューを起動」。動かない。⑤で追加したAVD上でもそのようなアプリが見当たらない。ということで、諦める。

こんなところです。


ここまでで@ITの記事の範囲は終わりだが、
「emulator-5554 disconnected! Cancelling 'com.example.android.dual.Main activity launch'!」
とエラーが出て、アプリを実行できないトラブルが何度かあったので、対処方法を書いておく。

Runメニュー > Debug Configurations
Commonタブ
Launch in background のチェックを外す。


以上!

2010年4月12日月曜日

androidアプリ開発勉強中② Activity のライフサイクルの理解

今回は http://www.atmarkit.co.jp/fjava/rensai4/android02/android02_2.html
Activity のライフサイクルの理解のために、Activity Lifecycle というサンプルアプリを実行する。

まず、サンプルアプリをダウンロード
http://www.atmarkit.co.jp/fjava/rensai4/android02/Activity%20Lifecycle.zip
ダウンロードした Activity Lifecycle.zip を C:\Programming\eclipse-project に移動。

Eclipse を起動。
Fileメニュー > Inmport
General > Existing Projects into Workspace
Select archive file にZIPファイルへのパスを設定。
Finish

これを、デバッグ実行しようとするとエラー。
コンソールに 「... Project has no target set ...」とか出ているので、
対象プロジェクトで右クリックメニュー > Properties
Android > Android 1.6 にチェック

もう一回、デバック実行しようとするとエラー。
×ついてるとこを見てみると、「The type R is already defined」。むう。
src 側にある R.java を削除。

3度目の正直でオッケー。

androidアプリ開発勉強中① 開発環境構築

そろそろandroidアプリの開発でもやってみようかと思う。 
@ITの記事を中心に勉強することにする。 

そういうわけで、以下、環境構築の際のメモ。 
2008年当時とはいろいろ変わっているようで、単純にこの記事通りでは行かなかった。 

①Eclipse のインストール 
http://www.eclipse.org/downloads/ から Eclipse IDE for Java Developers をダウンロードしてくる。 
C:\Programming\eclipse というフォルダを作成。 
ダウンロードしたファイル eclipse-java-galileo-SR2-win32.zip を、先に作成したフォルダに移動して解凍。 

Eclipse を起動(初回)。 
workspace に C:\Programming\eclipse-project を指定。 
「Use this as the default and do not ask again」にチェック。 

③Android SDK のインストール 
http://developer.android.com/intl/ja/sdk/index.html から Android SDK をダウンロードしてくる。 
C:\Programming\android-sdk というフォルダを作成。 
ダウンロードしたファイル android-sdk_r05-windows.zip を、先に作成したフォルダに移動して解凍。 

④ADT のインストール 
Eclipse を起動。 
Helpメニュー > Install New Software... > Add... 
  Name: ADT 
Developer Tools にチェックを入れる。 
Next > Next > 「I accept the terms of the license agreements」にチェック > Finish 
ダウンロード&インストール開始。 
「Warning: You are installing software that contains unsigned content. The authenticity of validity of this software cannot be established. Do you want to continue with the installation?」とか聞かれるけどOK。「Eclipse.org...」にチェック入れてOK。 
「...Would you like to restart now?」と聞かれるのでYes。 
Eclipse が再起動。 
Windowメニュー > Preferences 
Android > SDK Location に③で展開したパス「C:\Programming\android-sdk\android-sdk-windows」を設定。 

⑤AVDの作成 
Windowメニュー > Android SDK and AVD Manager 
Available Packages > 全部にチェック > Install Selected 
Accept All > Install 

Virtual Devices > New 
  Name: TestAVD 
  Target: Android 1.6 - API Level 4 

⑥Hello World!! 
Fileメニュー > New > Project 
Android > Android Project 
  project name: HelloAndroid 
  application name: Hello, Android! 
  package name: to.land.ty.sabine.HelloAndroid 
  creative activity: HelloAndroid 
Finish 

プロジェクトを選択して、debugアイコン > debug as 「android application」 
エミュレータが完全に起動しきるまでかなり時間がかかる。5分ぐらい待つこと。 
menuボタンでロック解除して、hello world の表示が出てたらOK。 

以上。