AndroidはJavaの著作権を侵害? 今後はどうなる?
- - PR -
2010年8月12日、米オラクルは突如「AndroidプラットフォームはJavaの著作権を侵害している」として米グーグルに対して提訴を起こしました。
連載第1回で説明しましたが、Androidは米サン・マイクロシステムズ(米オラクルに買収された)が開発したJavaVMではなく、独自に開発した「Dalvik」というVM(仮想マシン)を使用しています。
これまでも、独自のJavaVMを開発したベンダや団体は数多くありました。(参考:開発者が知っておくべきJavaと仮想マシンの歴史)。米グーグルの場合は、ライセンス契約の交渉が上手くいかなかったようです。
- Oracle、Googleを提訴――AndroidのJava特許侵害で
- Google、Oracleの提訴に反撃――Androidとオープンソースを防衛へ
- オラクル対グーグル訴訟、Androidへの影響は?〜グーグルは「根拠がない」と反論
両社の対立が今後どのようになっていくかは、Androidアプリ開発に大きな影響を及ぼします。本連載の読者なら、今後もぜひ追いかけるべき話題でしょう。どのような結果になるにせよ、いままで作ってきたアプリや、今後作成予定のアプリが無駄にならないようにしてもらいたいものです。
大きな心配ごとができてしまいましたが、本連載では変わらず、Java言語を使ったAndroidアプリ開発に役立つ情報を提供していきたいと思います。今回は、“設定画面”についてです。
Androidアプリに設定画面を追加するのは簡単だ
Androidの標準ライブラリには設定専用のPreferenceActivityクラスが用意されています。Androidケータイの設定画面もPreferenceActivityで作成されています。
![]() |
| 図1 Androidの無線とネットワーク設定画面 |
ここまで複雑な設定を持つアプリはなかなか少ないと思いますが、独自に設定画面を頑張って一から実装するよりも、PreferenceActivityを使用した方が、簡単でバグが入り込まず、ユーザーにとっても使い慣れているインターフェイスであるため、メリットが大きいです。
また、設定項目がアプリを終了しても永続化されるように自動的に保存され、必要な時に自動的に読み込まれるため、その辺の管理に気を使わなくてもよいのが開発者にとってのメリットです。
今回はPreferenceActivityクラスとPreferenceActivityで使用できる設定を見ていきましょう。今回もサンプルアプリを用意してあるので、ダウンロードして動作を確認しながら読み進めてみてください。
Activityの派生クラス「PreferenceActivity」とは
設定画面として使用するActivityはPreferenceActivityというActivityの派生クラスです。残念ながらActivityと一緒に表示させることはできず、設定画面を表示させるには画面遷移を伴います。
PreferenceActivityはActivityの派生クラスなので、Activityと同じようにXMLによるレイアウトとコーディングによるレイアウトが可能です。
今回はXMLとコーディングの両方を解説しますが、実際に使用する際にはXMLのレイアウトを強くお勧めします。理由は以下の2つです。
- コードが複雑になってしまうため
- 依存関係部分が期待通りに機能しないため
1.に関しては、実際にソースコードを見てもらえれば分かると思いますが、設定画面はカテゴリの中に設定項目がネストする形になるため、生成しなければならないインスタンスの数がとても多くなります。XMLでも条件は同じですが、XMLならネストは自然に表現できますし、数が多くなってもコーディング時のようなインスタンスの命名を心配する必要もありません。
2.に関しては、「コンポーネントの依存関係を決めるには」で詳しく説明します。
| Index | ||||||||
|
||||||||
Androidで動く携帯Javaアプリ作成入門 バックナンバー 連載インデックスへ»
- 第1回 Android Market配布を目指しEclipseでHelloWorld!
- 第2回 Androidアプリ作成の基本“Activity”とは何か?
- 第3回 ブラウザや地図、ストリートビューの基、Intentとは?
- 第4回 簡単でワクワクするAndroidウィジェット10連発!
- 第5回 Androidアプリの使いやすさを左右する5つのレイアウト
- 第6回 AndroidでSQLiteのDB操作をするための基礎知識
- 第7回 常駐アプリが作成できるAndroidの“サービス”とは
- 第8回 アプリを国際化してAndroid Marketから世界へ発信
- 第9回 Netbookにも広まるAndroidで、かつてないWeb体験を
- 第10回 Androidのホーム画面に常駐するアプリを作るには
- 第11回 Android 1.6のジェスチャーとテキスト読み上げを使う
- 第12回 SurfaceViewならAndroidで高速描画ゲームが作れる
- 第13回 iPhoneより多彩なAndroidのセンサをアプリで操作
- 第14回 Android 2.1の新機能で作る、美しく燃える“待ち受け”
- 第15回 Android NDKでJNIを使用してアプリを高速化するには
- 第16回 地図/位置情報/GPSを使うAndroidアプリを作るには
- 第17回 もはやケータイに必須のカメラをAndroidで制御しよう
- 第18回 開発者が知っておきたいAndroid 2.2新機能 12連発
- 第19回 XMLレイアウトでAndroidアプリに“設定画面”を追加
- 第20回 Androidアプリで“アニメーション”するための基礎知識
- 第21回 アニメーションでAndroidに独創的な画面エフェクトを
- 第22回 開発者が知って得するAndroid 2.3の新機能18選
- 第23回 Android 3.0の新APIで簡単ドラッグ&ドロップ実装
- 第24回 Androidの画面の大きさの違いを解決するFragments
- 第25回 Compatibility packageで2.x系でもマルチサイズ対応
- 第26回 開発者が知らないと損するAndroid 4.0の新機能44選
- 第27回 Android 4.0でアプリ開発を始めるための環境構築
- 第28回 Android 4.0で注目の顔認識をアプリに組み込むには
- 第29回 Androidのウィジェットにノーティフィケーションするには
- 第30回 Androidアプリでマルチメディアを扱うための基礎知識
- 第31回 Android 4.0のサービス/プロセス間通信の基本
| ご意見、ご感想は Smart&Social 会議室へどうぞ |
| Smart&Social フォーラム トップページへ |
TechTargetジャパン
- JenkinsでCIすればAndroidアプリ開発はもう怖くない (2012/5/23)
Androidアプリ開発における継続的インテグレーションの重要性やJenkinsの利点を解説し、環境構築の仕方や使い方の手順を紹介します - Open Graphアプリを作りApp Centerに登録するには (2012/5/18)
ユーザーの活動を共有できるFacebookの新機能を使ったアプリの開発方法と新しいアプリストアへの登録手順を解説 - Bootstrap、Hogan.js、FinagleなどTwitter系OSS (2012/5/15)
Twitterのアーキテクチャやオープンソースへの取り組みなどの講演模様をお届け。OpenJDKやStorm、Gizzard、Twitter4Jも注目 - ソーシャルゲーム/スマホ開発イベント記事が人気 (2012/5/11)
4月はソーシャルゲームの開発者向けイベントや、Webとネイティブの対決が熱かった! UnityやPerfumeも見逃せない!?
|
|
キャリアアップ
スポンサーからのお知らせ
イベントカレンダー
- - PR -



