0

Androidアプリのデータの約30kのキー値ペアを持つドキュメントを解析する必要があります。これらのキー値を保存するための最良の(最も速い、または最も単純な)方法は何ですか?それはハッシュテーブルですか?、android sharedpreferences?またはandroidsqlite?

読んでくれてありがとう、そしてどんな提案もいただければ幸いです。^^

4

3 に答える 3

0

それらすべてを同時にメモリに入れたくない場合は、sqlliteを使用します(最速かどうかはわかりませんが、実行時のメモリ消費量を少なくとも削減します。これは、Androidが各プロセス/アプリで使用可能なメモリを制限するため、非常に重要な要素です) 。

于 2012-11-05T20:30:27.117 に答える
0

を使用できますSharedPreferences。Map to fileを介して書き込むこともできるserializationので、入力ファイルがHashMapにロードされると、次のようなことができます。

    FileOutputStream fStream = openFileOutput("saved-map", Context.MODE_PRIVATE) ;
    ObjectOutputStream oStream = new ObjectOutputStream(fStream);

    oStream.writeObject(map);        
    oStream.flush();
    oStream.close();

SQLLite常に優れたオプションですが、上記の2つは高速で簡単に実装できます。

于 2012-11-05T20:32:37.667 に答える
0

これらのストレージタイプの間には、いくつかの極端な違いがあります。そして、それはすべて、どちらを使用するかによって異なります。

SharedPreferencesここではおそらく悪い呼び出しです。これらすべてのキーを管理し、設定ファイルでそれらを反復できないことは、ほとんど望ましくありません。

ハッシュテーブルはデータをメモリに保存するだけであり、Androidがアプリを終了するか、メモリを解放するたびに失われます。さらに、これは、保存しているデータの種類によっては、メモリに大きな負担がかかります。(int, int地図はそれほど悪くないかもしれません。)

ほとんどの場合、これを行うための最良の方法は、バックグラウンドスレッドでSQLiteを使用することです。私が言ったように、それはあなたのユースケースに依存しますが、速度の低下または過度のメモリ使用なしに30kキーを管理することはできません。これは、今日のテクノロジーに対する制限にすぎません。

于 2012-11-05T20:33:47.287 に答える