やまものブログ

メモ書きブログです (^_^;A

フォトフレームアプリ (4/4)

10日でおぼえる Androidアプリ開発入門教室 Android SDK2.3対応

LESSON 31 フォトフレームの写真を変えよう
を無事に実行できました

フォトフレームアプリは LESSON 28~31 の4回シリーズなので、このアプリを無事に終了したことになります。


LESSON 31 のアプリは、操作については前回の LESSON 30 と全く同じです。
内部で "Service" という仕組みを導入しているのが違いとなっています。

LESSON 31 の後にある付録セクション:
【SUPPLEMENTARY LECTURE】 BroadcastReceiverについて
で、Android アプリは、
Activity
Service
BroadcastReceiver
の3つに分類されると説明されています。こういう全体を俯瞰した説明は有難いです

この LESSON で導入した Service はバックグラウンド処理を実行するものだそうで、Thread とは Context を独自に持つ点が異なるそうです。
ここで、ThreadContext がよく分かりませんでした
ThreadAndroid ではなく、ベースになる Java に備わっている仕組み(クラス?)のようです。Java も勉強しないと
Context は雰囲気的には分かる気がするものの、理解できていません。改めてサンプルコードを見直すと Context というクラスはありますが、それを new で作るステートメントは無く、メソッドに引数として与えられるか、getContext() というメソッドで取り出すことでアクセスしています。Androd システム側で管理されている情報なのかな…(憶測


今回はブログのネタがあまり無いので、SDK 2.3 ベースで Windows 環境で作成されたと思われるサンプルプロジェクトを、SDK 4.2 ベース Linux 環境で動かすために必要なソースなどの変更内容を改めてまとめます。

------------------------------------------------------------
SDK 2.3 サンプルプロジェクトの変更内容まとめ】

1) ファイル名のキャラクタを一部を大文字に変換

1-1) androidmanifest.xml →  AndroidManifest.xml

1-2) Java ソースコードのファイル名
    src/jp/co/se/android/chapter*/*.java
のファイル名をクラス名に一致させる。
例) クラス名 = DatabaseHelper、ファイル名 = databasehelper.java の場合
ファイル名を  databasehelper.java →  DatabaseHelper.java に変更

2) SDKバージョンの変更
default.properties
の下記の行を修正。
【修正前】 target=android-9
【修正後】 target=android-16

3) 不要なファイルの削除
gen/jp/co/se/android/chapter08/r.java を削除

4) Deprecated メソッド対策
4-1) constructor CursorAdapter(Context, Cursor)
4-2) stopManagingCursor(Cursor)
4-3) managedQuery(Uri, String, String, String, String)
 … 対策) 以上3つの対策は 2014/11/9(日) のブログに記載のとおり

4-4) getLastNonConfigurationInstance()
 … 対策) 2014/11/17(月) のブログに記載のとおり

4-5) PreferenceActivity
→ PreferenceFragment を利用するコードに書き換え
 … 対策) 2015/2/(月) のブログに記載のとおり

5) Eclipse/ADT 運用上での問題
5-1) ターゲット API11Android 3.0) にいつの間にか切り替わる
 … 対策) project.properties ファイルの "target=android-11" の末尾を16に書き換え

5-2) Call requires API level 3 (current min is 1) というエラー発生
 … 対策) Project → Clean 実行

5-3) ソースコードのエラー修正候補の提示中に SIGSEGV で異常終了
 … 対策) Eclipse 再起動。きちんと対策したいのだが…
------------------------------------------------------------

次回は「CHAPTER 09 音楽プレイヤーを作ろう」へ進みます。フォトフレームは実際に作って使いたいので踏み込みたいところですが、Android/Java の知識をもっとつけるのが先なので