1

携帯電話を使用して地元の公共交通機関のスケジュールを表示するための小さな J2ME ユーティリティを開発する予定です。これらのデータ部分は、バスが到着または出発する時刻を表す数字の集まりです。

私が理解しようとしているのは、そのデータを保存する最良の方法は何かということです。表現は

  1. かなり小さい(携帯電話の永続的なストレージ制限のため)
  2. 単一のファイルに収まる (後で HTTP 経由でスケジュール データベースを簡単に更新できるようにするため)一定routes.datのファイルに収まりtimes.datます。agencies.datschedule_111.datschedule_112.dat
  3. ランダムアクセス機能を持っています(データオブジェクト全体をメモリに非シリアル化することは、携帯電話には多すぎます:))
  4. そのデータ形式にアクセスするためのライブラリがある場合、Java 実装が存在する必要があります

言い換えれば、GTFSのようなデータの大部分をモバイル デバイスに詰め込む必要があるとしたら、どのようにそれを行いますか?

Google Protocol Buffersは、データを定義するための良い候補のように見えましたが、ランダム アクセスはありませんでした。

何を提案しますか?

4

3 に答える 3

2

J2ME での永続ストレージは扱いにくいビジネスです。より一般的な背景については、この関連する質問を参照してください: J2ME を使用して大量のデータを保存するためのベスト プラクティス

私の経験では、J2ME 永続ストレージは、いくつかのモノリシック レコードよりも多くの小さなレコードで最適に、または最も確実に機能する傾向があります。プログラムがデータにアクセスする方法を考えてから、J2ME 永続ストアにそれらの増分でデータを格納してみてください。

デバイス上のストレージ形式から更新をダウンロードするために、クライアント サーバー プロトコルを分離することをお勧めします。コードを更新するたびに後者を変更することはできますが、古いクライアントを外に出したい場合を除き、クライアント/サーバー プロトコルを永遠にサポートすることはほとんどありません。

最後に、 Transit Developers グループには、J2ME でオフラインの交通アプリを構築した人がいることを知っています。そのため、そこにヒントを求める価値があります。

于 2009-11-08T22:03:24.193 に答える
1

このようなアプリを作成し、phpで生成されたxml-sを使用しました。これにより、次の3つのプレゼンテーションレイヤーに対して単一のプロバイダーを使用できるようになりました。

  • j2meアプリ
  • 携帯電話用ウェブサイト
  • 通常のウェブサイト

xsltを使用してウェブサイトとkXMLでxmlをhtmlに変換しました-j2meアプリでそれを行うための非常に軽いプルパーサー。これは、白黒画面と少量のメモリを備えた非常に古い電話でもうまく機能しました。

j2me以外に、ファイルの概念はありません。情報を保存できるデータベースがあります。これは「モバイル」ウェブサイトへのリンクです。 http://mobi.krakow.pl/rozklady/

そしてここでアプリに: http ://www.mobi.krakow.pl/rozklady/j2me/rjk.jar

これは洗練されていますが、これとあれが何であるかを理解するのは難しいことではないと思います。

あなたが望むなら、私はあなたにもっと助けとアドバイスを提供することができます、あるいはこれが商用製品であるなら、私たちは何かを理解することもできると思います;)

于 2009-11-01T21:11:12.220 に答える
1

あなたの問題は要件2だと思います。

ファイルの途中で 4 桁が変更されたという理由だけで 10MB のデータを更新するのは、非常に非効率的です。

データを複数のファイルに分割することで、コードの複雑さが増すだけの価値のある更新の粒度が向上します。

リアルタイムの公共交通機関のスケジュールは、通常、一度に 1 つのバス、電車、トラムの路線で変更されます。

于 2009-11-02T12:12:58.603 に答える