約 1MB の JSON ファイルが assets フォルダーに保存されており、アプリを実行するたびに読み込む必要があります。組み込みの JSON パーサー (org.json) によるファイルの解析は非常に遅いことがわかりましたが、一度解析すると、データに非常に迅速にアクセスして操作できます。アプリをクリックしてから Activity1 が起動するまでに 7 ~ 8 秒を数えましたが、Activity1 から Activity2 に移動するのに数ミリ秒しかかかりません。これは、読み込まれたデータから処理されたデータに依存します。活動1.
ファイルをメモリに読み込み、次を使用して解析しています。
String jsonString = readFileToMemory(myFilename)
JSONArray array = new JSONArray(jsonString);
readFileToMemory(String) は次のようになります。
private String readFileToMemory(String filename) {
StringBuilder data = new StringBuilder();
BufferedReader reader = null;
try {
InputStream stream = myContext.getAssets().open(filename);
reader = new BufferedReader(new InputStreamReader(stream, "UTF-8"));
int result = 0;
do
{
char[] chunk = new char[512];
result = reader.read(chunk);
data.append(chunk);
}
while(result != -1);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return data.toString();
}
データの初期読み込みと解析を高速化する方法について何か提案はありますか? ロード画面の背後にあるプロセス全体をマスクする必要がありますか?