从Web应用程序下载到Android客户端的大数据出现内存不足错误



我正在向运行在Tomcat上的Web应用程序发送以下请求:

connection = (HttpsURLConnection) url.openConnection();
writer = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream()));
writer.write("email_addr=" + URLEncoder.encode(email_addr, "UTF-8") + "&" + "passwd=" + 
    URLEncoder.encode(password, "UTF-8") + "&" +
    "cmd=" + tmp + "&" + "parms=" + URLEncoder.encode(parms, "UTF-8"));
writer.close();

并且读取如下响应:

rdr  = new BufferedReader(new InputStreamReader(connection.getInputStream()));
tmp = rdr.readLine();

只要返回的数据小于5MB左右,一切都很好。然后我在readLine()上得到一个错误:

04-02 16:51:34.232:E/dalvikvm堆(3907):10309582字节分配内存不足

有512 MB的RAM,我不明白为什么它会耗尽空间。有人知道为什么会发生这种情况以及如何解决吗?

512MB并不适合您。根据设备的不同,您的应用程序将获得16MB、24MB和32MB。如果设备有512MB的内存,那么您的应用程序的内存将为24MB。

最新更新