1

PHP を使用してデータベースにアクセスし、XML ファイルをオンラインで生成します。次に、私の Android アプリはその XML ファイルを取得して解析し、そのデータを SQLite データベースに挿入します。

これは問題なく動作しますが、めちゃくちゃ遅いです。iOS アプリと Android アプリの両方が同じことをしています... Android アプリは、ユーザーがデータの更新を要求するたびに 7 ~ 10 秒かかりますが、iOS アプリはせいぜい 2 ~ 3 秒しかかかりません。

レコード数は多くありません - 平均で 30 ~ 50 件です。多くのコンテンツがあります - いくつかの大きな記事があり、それぞれに 2 ~ 10 枚の写真が含まれています (写真をダウンロードするのではなく、URL、サイズなどをインポートするだけです)。

私は、Sax を使用して XML をインポートする方法の例に従いました (おそらく最速の方法です)。

TLDR:
データをフォーマットして、現在行っている方法よりもはるかに高速にするより良い方法はありますか? CSV? PHP を使用して SQLite Insert ステートメントを生成しますか? これの「標準」および/または「最良」は何ですか?


編集: 読めば読むほど、JSON と XML の違いはごくわずかであり、JSON ではなく大きなデータ (記事など) の場合は XML の方が高速になる可能性があるように思えます。これが正しいかどうかはわかりません。詳細はさらに読んでください。

4

3 に答える 3

0

JSON代わりに使用してみてください。それを使用XMLする方がはるかに高速であると思います。これは Android でサポートされており、私が知る限り、iOS も同様に処理できます。

于 2012-07-25T14:36:43.987 に答える
0

XMLまたはJSONを使用する代わりに、Google のProtobufを調べます。

https://developers.google.com/protocol-buffers/docs/overview

http://code.google.com/p/protobuf/

あなたは PHP を使用しているので、自分に合った実装を見つける必要があります。リストは次のとおりです。

http://code.google.com/p/protobuf/wiki/ThirdPartyAddOns

今後、これはデータを転送およびマーシャリングするための非常に優れた方法になります。これがうまくいくかどうかお知らせください。

于 2012-07-25T14:48:05.360 に答える
0

以前は SQLite db ファイルを作成して gzip し、デバイスで解凍して直接使用していました。(確かに良い方法ではありません)

後でデータを更新するために、json を使用してデータを転送しました。JSON は確かに大きな記事を処理できますが、必要に応じて記事への URL を JSON に配置し、後続の転送でそれらをフェッチすることもできます。

于 2012-07-25T14:48:31.197 に答える