その中にjsonオブジェクトを含む9 MBのtxtファイルがあります.gsonストリーミングを使用して解析する必要があります。
AssetManager assetManager = activity.getAssets();
InputStream inputStream;
inputStream = assetManager.open(fileName);
JsonReader reader = new JsonReader(new InputStreamReader(inputStream,
"UTF-8"));
JsonElement json = new JsonParser().parse(reader);
JsonArray array = json.getAsJsonArray();
Gson gson = new Gson();
String interationString;
for (JsonElement jsonElement : array) {
interationString = jsonElement.getAsJsonObject().get("drug")
.toString();
Log.d("drug", interationString);
Drug drug = gson.fromJson(interationString, Drug.class);
Log.d("drug", "" + drug);
DatabaseManager.getInstance().saveDrug(drug);
}
jsonファイルをassestに入れました。ただし、4.0 のデバイスでは動作しますが、エミュレータ 2.3 では動作せず、ログが表示されます
05-29 11:19:41.290: D/dalvikvm(164): GC_EXPLICIT freed 74K, 46% free 3344K/6151K, external 1323K/1554K, paused 84ms
05-29 11:19:46.330: D/dalvikvm(373): GC_EXPLICIT freed 2K, 51% free 2718K/5511K, external 716K/1038K, paused 87ms
05-29 11:19:51.370: D/dalvikvm(203): GC_EXPLICIT freed 15K, 51% free 3083K/6215K, external 716K/1038K, paused 102ms
05-29 11:19:56.391: D/dalvikvm(573): GC_EXPLICIT freed 53K, 51% free 2771K/5639K, external 964K/1467K, paused 79ms
次に停止します。小さなファイルを解析してみましたが、正常に機能していました。すべてのAndroidデバイスで動作するように、Androidで長いファイルを解析するのを手伝ってくれる人はいますか?
ありがとうございました。