Отправлять отчеты о сбоях с низкой памятью с помощью QuincyKit?
Есть ли способ отправлять отчеты о сбоях с низкой памятью с помощью QuincyKit?
Я просмотрел код, и QuincyKit отправляет отчеты о сбоях, найденные в:
/var / mobile / Application / / Library/Caches / crashes
Однако, когда приложение аварийно завершает работу из-за предупреждения памяти, файл не создается в этом каталоге. Я могу просмотреть отчеты о нехватке памяти в органайзере (тип неизвестен ), но где находится файл?
Можно ли быстро изменить QuincyKit на отправить отчеты памяти?
2 ответа:
К сожалению, это невозможно.
Сбои из памяти на самом деле убивает сторожевой процесс. Всякий раз, когда вы убиваете процесс, никакого сбоя не происходит. Отчеты о сбоях для тех, которые вы видите в Organizer , являются произвольными отчетами, написанными процессом watchdog, который совершил убийство. Так что единственная система, которая может предоставить информацию о них, - это сама iOS.
Невозможно восстановить отчеты памяти.
Однако можно было бы заметить:
- что предупреждение памяти было получено и Запишите использование памяти в это время - и
- что X секунд спустя приложение больше не работает (поддерживая простой сторожевой поток).
Затем при следующем запуске вы можете сделать вывод, что приложение , вероятно, было убито из-за состояния нехватки памяти, и вы будет иметь некоторую информацию об использовании памяти в то время. В самом деле, вы можете расширить обработчик предупреждений памяти, чтобы сообщать о размере любых кэшей, которые вы запускаете (а также очищать их одновременно, тем самым уменьшая вероятность сбоя!).