先日ContentProviderに関して調べるてプレゼンする機会があったから、そのまとめ
★調べた内容
☆ContentProviderってなに
・データベースのデータを複数のAndroidアプリケーションで共有する為に用意されたクラス。
・アプリとデータベース間のインターフェイスのようなもの??
☆使い方
・基本的に用意するものは3つ。アプリケーションプログラム、データベース(もしくはファイル)、ContentProviderを実装したクラス。
・ContentProviderは抽象クラスなので、それを実装することでオリジナルのContentProviderクラスを作る。
・オリジナルのContentProviderを作る場合はマニフェストにその情報を登録することで他のアプリケーションからでもそのContentProviderを特定できるようにしておく必要がある。
☆メリット
・複数のアプリケーション間でデータを共有することができる。
・コードの変更が楽(ContentProviderを通してデータ保存領域にアクセスすることで、もしデータの保存方式が変わってもContentProviderの内容だけ変更すればよい。)
☆何ができるのか
・例えば、電話帳のデータを利用したアプリを開発したい場合でも、電話帳で利用しているContentProviderにアクセスするだけで簡単にデータが取り出せる。
☆参考
http://d.hatena.ne.jp/isher/20090613/1244932235
★プレゼン
☆作ったもの
・プレゼンで使うための簡単なサンプルプログラム(TestProvider,TestProvider2,ProiverTest,ProvierTest2)
☆工夫したこと
・ユーザプログラムが指定するContentProviderを変えるだけで、簡単にデータベースの内容を共有できることをサンプルプログラムで示した。
・聞き手の大半は日本人だったが、中国人と韓国人もいたので、資料は英語で作った。
☆反省
・ContentProviderのメリットをより明確に理解するために、ContentProviderを使わないでデータベースにデータを保存するサンプルプログラムも作った方がよい。
・実際にContentProviderが使われているアプリケーションをいくつか用意しておけば、より楽しいプレゼンになったと思う。
★New and Ref
・エミュレータをeclipseから使えるようにした。
参考:
http://www.adakoda.com/android/000062.html
・adb shellでエミュレータに入って、sqliteを少し触ってみた。
当たり前だが、基本的にはmySQLなどと同じだね。
ただ機能がシンプルになってる感じはした。
ちなみに /data/data ないにデータベースがあった。
・サンプルプログラムでデータベースの内容を表示する際に、SpannableStringBuilderを使った。
データベースからデータを取り出すために、それを文字列に追加していく必要があったから。
参考:
http://d.hatena.ne.jp/androidprogram/20100529/1275086958
★調べた内容
☆ContentProviderってなに
・データベースのデータを複数のAndroidアプリケーションで共有する為に用意されたクラス。
・アプリとデータベース間のインターフェイスのようなもの??
☆使い方
・基本的に用意するものは3つ。アプリケーションプログラム、データベース(もしくはファイル)、ContentProviderを実装したクラス。
・ContentProviderは抽象クラスなので、それを実装することでオリジナルのContentProviderクラスを作る。
・オリジナルのContentProviderを作る場合はマニフェストにその情報を登録することで他のアプリケーションからでもそのContentProviderを特定できるようにしておく必要がある。
☆メリット
・複数のアプリケーション間でデータを共有することができる。
・コードの変更が楽(ContentProviderを通してデータ保存領域にアクセスすることで、もしデータの保存方式が変わってもContentProviderの内容だけ変更すればよい。)
☆何ができるのか
・例えば、電話帳のデータを利用したアプリを開発したい場合でも、電話帳で利用しているContentProviderにアクセスするだけで簡単にデータが取り出せる。
☆参考
http://d.hatena.ne.jp/isher/20090613/1244932235
★プレゼン
☆作ったもの
・プレゼンで使うための簡単なサンプルプログラム(TestProvider,TestProvider2,ProiverTest,ProvierTest2)
☆工夫したこと
・ユーザプログラムが指定するContentProviderを変えるだけで、簡単にデータベースの内容を共有できることをサンプルプログラムで示した。
・聞き手の大半は日本人だったが、中国人と韓国人もいたので、資料は英語で作った。
☆反省
・ContentProviderのメリットをより明確に理解するために、ContentProviderを使わないでデータベースにデータを保存するサンプルプログラムも作った方がよい。
・実際にContentProviderが使われているアプリケーションをいくつか用意しておけば、より楽しいプレゼンになったと思う。
★New and Ref
・エミュレータをeclipseから使えるようにした。
参考:
http://www.adakoda.com/android/000062.html
・adb shellでエミュレータに入って、sqliteを少し触ってみた。
当たり前だが、基本的にはmySQLなどと同じだね。
ただ機能がシンプルになってる感じはした。
ちなみに /data/data ないにデータベースがあった。
・サンプルプログラムでデータベースの内容を表示する際に、SpannableStringBuilderを使った。
データベースからデータを取り出すために、それを文字列に追加していく必要があったから。
参考:
http://d.hatena.ne.jp/androidprogram/20100529/1275086958