Objective-C を Android に移植しています。ソース アプリは構造配列に多くのデータを格納し、ユーザーがグラフ上でポインターをドラッグすると、グラフ上のポイントのほぼリアルタイムの分析を提供するために、結果セットの配列と計算を検索するためのいくつかの高パフォーマンスのメソッドを備えています。彼らの指。計算結果は、グラフを囲むさまざまなビューの値を更新するために使用されます。
これは、約 7.5k の構造を含む例です。
structDataFeedReduced gFeedData[7662] = {
1233,@"",12.466667,26.166667,@"AARS",0,0,0,1.000000,-1,1,1,
6760,@"",15.816667,41.033333,@"DCTT",1,1,1,12.000000,-1,1,2,
8117,@"",44.016667,144.283333,@"SKDD",2,1,2,9.000000,-1,1,1,
8666283,@"WS",42.676666,40.006668,@"DLCC",3,2,3,-5.000000,-1,1,6,
...
...
...
};
私の質問は、このデータを静的に Java に格納する最良の方法は何ですか?
ロード時または実行時の計算にデータを提供するために、十分なパフォーマンスが得られない次のことを試しました。
- SQL ライト。
- アセットに保存されているファイルからの読み取り。
- 文字列配列として静的に格納し、Objective-C 構造をミラーリングするクラスを使用して、オブジェクトへの初期化でそれらを処理します (たとえば、文字列データから int、bool、double などに変換します)。
- arrays.xml に格納し、オブジェクトへの初期化でそれらを処理する
私が試すことができる他のパターンはありますか?何もない場合は、上記の 3 または 4 を優先します。実行時の応答を良好にするために、読み込みと初期化のパフォーマンスをいくらか犠牲にするからです。
私のバックストップは、JNI を使用してこれをネイティブ コードにプッシュすることです。おそらく、これが理にかなっている唯一のオプションですか?
ありがとう...