- 締切済み
Android開発でデータベースについて
初めまして。NativeのAndroidApp開発を初めて数か月たった学生プログラマです。 今回より実用的なものを目指すために 「アプリの入った端末」が 「一つのデータベース」に対して 「追加、読み込み」をする、という処理をしてみたいのですがよくわかりませんでした。 調べてみてわかったことは HTTP通信によりデータベースにアクセスする。 その方法は二種類あってメジャーなのはHttpURLConnectionライブラリを用いる。 ここまではサンプルなどもありわかったのですがデータベースはどのようなものを用意すればいいのでしょうか? 何かおすすめのサイトやDB。また、間違った認識があれば指摘していただきたいです。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- krokrokro123
- ベストアンサー率13% (3/23)
>NativeのAndroidApp開発を初めて数か月たった学生プログラマです。 C言語の質問? Javaでの開発の場合、ネイティブアプリではないけどそうなるとJavaのHttpURLConnectionは使えない。 (本体はネイティブでCで書いたとしてそこだけJavaで実装する?) >ここまではサンプルなどもありわかったのですがデータベースはどのようなものを用意すればいいのでしょうか? なんでもいいよ。使うレンサバなりにWebのサーバサイドで使えるデータベースならなんでも 後、http通信で最新のデータを取得するにしてもキャッシュしてデータとしてAndroid端末に保存を考えているならAndroid上で使えるDBはSQLiteになる。
- hue2011
- ベストアンサー率38% (2801/7250)
どうもピントを外しているようにみえます。 アプリの入った端末が一つのデータベースに対して追加、読み込みをする、っておかしいでしょう。 論理名と物理名がごっちゃになっていますよ。 端末に入ったアプリが、一つのデータベースに対して、追加書き込みをするのですよね。 あるいは、端末に入ったアプリを構成するプログラムが、フレームワークごしに一つのデータベースに対し追加書き込みを実現する、ということですね。 その一つのデータベースは、サーバー機のようなところにある、公開されているものだと思うべきでしょうね。 ま、単純に、端末はどうでもいいのです。 Android開発をしたいのであれば、最終のテストはスマホを使うことになります。 しかしプログラム開発としてはスマホは別に必要ありません。むしろ邪魔です。 データベースは、フレームワークごしに触るものですから、なんでもいいでしょう。 というか、何でなければならない、は通りません。 そもそも、Androidのアプリ開発をするのに、自分でデータベースを設定することなんてないのじゃないでしょうか。 おすすめのDB、という発想があったらそれは間違っていますよ。 商品マスタ、とか顧客マスタ、が最初から存在しているサーバーと会話をするのですよね。 既存のものをスキャンしたり新データをコミットしたりしたいのですよね。 それがスマホのアプリ開発ですよね。 だったら、プロバイダのサーバーのインターフェースを調べてやってみればいいのです。 GoogleだとかYahooとか、Niftyとか。 追加書き込みをやってみたいのなら、スケジュールの登録みたいなものを自分のIDでログインした状態にしてやればいいのじゃないでしょうか。 実用的、ではなくやっぱり練習だお稽古だというところならば、自分のPCにOracleのVirtualBoxというものをインストールします。 それは自分とは別のマシンという形を作ってくれるものです。 同じアドレス空間内に別のIPアドレスを設定できます。これで別マシンになります。 その上にゲストOSという、別OSを入れられます。 まあcentOSをインストールしましょう。無料のLinuxです。 そして、Apacheをインストールし、DNSには適当に考えたドメイン名(公開しないから大丈夫)をIPアドレスにつなぎましょう。 このHTTPサーバーの入口に、hello worldかなんかを表示するだけのHTMLのファイルをindex.htmlとして置いておきます。 ポート番号80はデフォルトで空いているはずなので、ブラウザでそのドメイン名叩いてください。 hello worldと表示されたら、ホームページはおしまいです。以後何もやらなくていいです。 ここにMySQLでもpostgreSQLでも、とにかく無料のDBを導入します。 SQLiteが一番楽でいいのですけど、なぜかSQLiteはこけるひとが多いので、MySQLが一番悩まなくていいんじゃないですか。 まさかとは思いますけど、Windowsにこだわって、ゲストOSもWindowsにして、ACCESSを置こうとしたらそれは思い切り間違ってます。 MicrosoftのものでもSQLサーバーなら問題ありませんけど、ACCESSはコネクションを一つしか張れませんから、サーバーに置くべきしろものではありません。 create database とcreate tableをします。 架空のデータを考えるのは疲労しますから、すでに自分の持っているデータを格納するように考えましょう。 友達の住所一覧でもいいし、持っているCDのリストでもいいです。すでに作ってあることが条件です。 それを格納するtableをクリエイトするのです。そして、すでに持っているデータをCSVにでもしてインポートしてください。 このDBが起動されていたら、PCからここのIPアドレスのその名前のDBに対してコネクションが張れる試験をします。 これが重要です。本なんかには、127.0.0.1とかlocalhostで繋ぐように例示してあるものがありますが、オレオレ接続ですから、VirtualBoxでは通用しません。だからしっかりとそのIPアドレスで接続できることを確認します。 もちろん、VirtualBoxのOSは、起動後すぐにDBが起動し、次にApacheが立ち上がるというシーケンスで立ち上がりシェルを構築します。 さてコネクションが張れるなら、アプリからデータ一覧全部取得をやってみます。select * です。 それを画面に表示するのはプログラムでやるのです。 大体うまく行くはずです。 あとは、InsertでもUpdateでもdeleteでも、やってみてください。 もちろんプログラムに書いてやるんですよ。 PC一台でやっていますけど、自分とは別のサーバー上にあるリソースに会話をするという経験をここでしているのです。