AndroidはJavaの著作権を侵害? 今後はどうなる?
2010年8月12日、米オラクルは突如「AndroidプラットフォームはJavaの著作権を侵害している」として米グーグルに対して提訴を起こしました。
連載第1回で説明しましたが、Androidは米サン・マイクロシステムズ(米オラクルに買収された)が開発したJavaVMではなく、独自に開発した「Dalvik」というVM(仮想マシン)を使用しています。
これまでも、独自のJavaVMを開発したベンダや団体は数多くありました。(参考:開発者が知っておくべきJavaと仮想マシンの歴史)。米グーグルの場合は、ライセンス契約の交渉が上手くいかなかったようです。
両社の対立が今後どのようになっていくかは、Androidアプリ開発に大きな影響を及ぼします。本連載の読者なら、今後もぜひ追いかけるべき話題でしょう。どのような結果になるにせよ、いままで作ってきたアプリや、今後作成予定のアプリが無駄にならないようにしてもらいたいものです。
大きな心配ごとができてしまいましたが、本連載では変わらず、Java言語を使ったAndroidアプリ開発に役立つ情報を提供していきたいと思います。今回は、“設定画面”についてです。
Androidアプリに設定画面を追加するのは簡単だ
Androidの標準ライブラリには設定専用のPreferenceActivityクラスが用意されています。Androidケータイの設定画面もPreferenceActivityで作成されています。
ここまで複雑な設定を持つアプリはなかなか少ないと思いますが、独自に設定画面を頑張って一から実装するよりも、PreferenceActivityを使用した方が、簡単でバグが入り込まず、ユーザーにとっても使い慣れているインターフェイスであるため、メリットが大きいです。
また、設定項目がアプリを終了しても永続化されるように自動的に保存され、必要な時に自動的に読み込まれるため、その辺の管理に気を使わなくてもよいのが開発者にとってのメリットです。
今回はPreferenceActivityクラスとPreferenceActivityで使用できる設定を見ていきましょう。今回もサンプルアプリを用意してあるので、ダウンロードして動作を確認しながら読み進めてみてください。
Activityの派生クラス「PreferenceActivity」とは
設定画面として使用するActivityはPreferenceActivityというActivityの派生クラスです。残念ながらActivityと一緒に表示させることはできず、設定画面を表示させるには画面遷移を伴います。
PreferenceActivityはActivityの派生クラスなので、Activityと同じようにXMLによるレイアウトとコーディングによるレイアウトが可能です。
今回はXMLとコーディングの両方を解説しますが、実際に使用する際にはXMLのレイアウトを強くお勧めします。理由は以下の2つです。
- コードが複雑になってしまうため
- 依存関係部分が期待通りに機能しないため
1.に関しては、実際にソースコードを見てもらえれば分かると思いますが、設定画面はカテゴリの中に設定項目がネストする形になるため、生成しなければならないインスタンスの数がとても多くなります。XMLでも条件は同じですが、XMLならネストは自然に表現できますし、数が多くなってもコーディング時のようなインスタンスの命名を心配する必要もありません。
2.に関しては、「コンポーネントの依存関係を決めるには」で詳しく説明します。
Copyright © ITmedia, Inc. All Rights Reserved.