Android: случайный сбой или размер кучи
Я столкнулся со случайным сбоем в моем приложении, разработанном для "GlassDesign"
Цель состоит в том, чтобы продемонстрировать свои очки своим клиентам, а также агентам.
Размер приложения составляет 150 МБ
Когда я прохожу приложение, для которого требуется 10-15 минут сбоя, это не происходит ни на одном конкретном экране, чтобы понять проблему.
Я прочитал несколько сообщений и внес несколько изменений в приложение.
В манифесте я сделал эти изменения
android:largeHeap="true" // in application tag android:allowBackup="false" // for cache
При каждой операции я очищал существующий кеш (это также помогло увеличить сбой до двух-трех экранов, но не всего приложения)
public boolean deleteDir(File dir) { if (dir != null && dir.isDirectory()) { String[] children = dir.list(); for (int i = 0; i < children.length; i++) { if(!dir.getAbsolutePath().contains("/databases")){ boolean success = deleteDir(new File(dir, children[i])); if (!success) { return false; } }else{ return true; } } } return dir.delete(); }
Для загрузки изображений я использовал универсальный загрузчик изображений (внешний файл JAR) для повышения производительности.