大規模な XML を解析し、アプリケーション全体でシリアル化されたデータにアクセスできるようにするアプリを設計しています。データを保存し、各コンポーネント (すべてではありません) がデータにアクセスできるようにするデータ オブジェクトを用意するつもりです。
このデータを非永続的なものにして、アプリケーションが XML を解析し、データをメモリに保持するようにしたいと考えています。このデータは大きくなります (XML ファイルは 2 MB を超えます)。また、ユーザーが別のアプリに切り替えたときにデータがそこにあることを望みます。
次のような可能な解決策を調べました。
- 静的オブジェクト
- シングルトン
- アプリケーションの拡張
- サービスの利用
- SQLite データベースの使用 (これはやりたくありません)
シングルトンとアプリケーションの拡張などの果てしない議論には入りたくありませんが、単体テストも行いたいと思っており、シングルトンと静的オブジェクトはテストが難しいと聞いています。
誰でもこれに光を当てることができますか?それを行う最もエレガントな方法は何ですか?
編集:データを永続化する必要がありますか? 永続化するということは、理論的には、XML の 1 つの解析があり、それをシリアル化し、データをデータベースに格納し、オブジェクトを使用してコンポーネントからそのデータにアクセスできることを意味します。それはどのように聞こえますか?
編集 2: アプリケーション全体でデータにアクセスできるようにする方法は、データを格納する SQLite データベースを使用することだと思います。
XML ファイルを使用して、データを解析し、作成した SQLiteOpenHelper のサブクラスを使用して、最初の起動時にデータベースに配置します。データが必要な場合は、読み取りアクセスを使用してサブクラスを使用してデータベースにクエリを実行します。各コンポーネント (Activity/Service/etc.) には SQLiteOpenHelper の独自のインスタンスがあり、データベースにクエリを実行してデータにアクセスできます。これはどのように聞こえますか?