Частые ошибки — различия между версиями
Shejko (обсуждение | вклад) |
Shejko (обсуждение | вклад) |
||
Строка 3: | Строка 3: | ||
[[Файл:Memory in application.png]] | [[Файл:Memory in application.png]] | ||
− | Основная куча(RAM, MemSize) - выделяется для вьювера, файлов проекта(лэйаута, файла базы ресурсов, текстовой базы), для видео, для временного хранения графики при загрузке(MB_GRAFICS), для формирования текстовой текстуры. | + | '''Основная куча(RAM, MemSize)''' - выделяется для вьювера, файлов проекта(лэйаута, файла базы ресурсов, текстовой базы), для видео, для временного хранения графики при загрузке(MB_GRAFICS), для формирования текстовой текстуры. |
− | MB_GRAFICS - выделяется для загрузки изображения в видеопамять. В него изображения попадают по одному, то есть должен соответствовать максимальному размеру изображения при учёте того, что изображения автоматически расширяются по каждой из сторон до степени двойки (128,256,512,1024,2048 и т.д.), не используется для конвертируемой графики(PVR, ETC, BC3 и т.д.). Выделяется из основной кучи. | + | '''MB_GRAFICS''' - выделяется для загрузки изображения в видеопамять. В него изображения попадают по одному, то есть должен соответствовать максимальному размеру изображения при учёте того, что изображения автоматически расширяются по каждой из сторон до степени двойки (128,256,512,1024,2048 и т.д.), не используется для конвертируемой графики(PVR, ETC, BC3 и т.д.). Выделяется из основной кучи. |
− | MemSize1 - куча для звуковых ресурсов. В эту область памяти попадают звуки для проигрывания. | + | '''MemSize1''' - куча для звуковых ресурсов. В эту область памяти попадают звуки для проигрывания. |
− | VRam - область памяти в которой находятся изображения. | + | '''VRam''' - область памяти в которой находятся изображения. |
Общее количество памяти зависит от устройства и операционной системы, к примеру, на IPod Touch 4gen с ios 5.x приложение уже может упасть если суммарно занято приложением около 80мб | Общее количество памяти зависит от устройства и операционной системы, к примеру, на IPod Touch 4gen с ios 5.x приложение уже может упасть если суммарно занято приложением около 80мб |
Версия 07:22, 22 июля 2014
Распределение памяти в приложении
Основная куча(RAM, MemSize) - выделяется для вьювера, файлов проекта(лэйаута, файла базы ресурсов, текстовой базы), для видео, для временного хранения графики при загрузке(MB_GRAFICS), для формирования текстовой текстуры.
MB_GRAFICS - выделяется для загрузки изображения в видеопамять. В него изображения попадают по одному, то есть должен соответствовать максимальному размеру изображения при учёте того, что изображения автоматически расширяются по каждой из сторон до степени двойки (128,256,512,1024,2048 и т.д.), не используется для конвертируемой графики(PVR, ETC, BC3 и т.д.). Выделяется из основной кучи.
MemSize1 - куча для звуковых ресурсов. В эту область памяти попадают звуки для проигрывания.
VRam - область памяти в которой находятся изображения.
Общее количество памяти зависит от устройства и операционной системы, к примеру, на IPod Touch 4gen с ios 5.x приложение уже может упасть если суммарно занято приложением около 80мб
Ошибки
Если приложение пытается выделить суммарно памяти больше, чем разрешено системой(загружается много графики), то OС сама закрывает приложение, при этом, чаще всего, никаких ошибок видимых пользователю не появляется.
Так же без видимых ошибок приложение может падать, если произошли проблемы с загрузкой файлов проекта.
Нехватка памяти в основной кучи. Если при переходе, то в следствии фрагментации памяти, если при открытии объекта с текстом, то не хватило памяти для новой текстовой текстуры. Необходимо увеличить размер основной кучи, или оптимизировать размер используемой памяти.
Нехватило памяти для загрузки звука для его воспроизведения. Необходимо уменьшить звук, или увеличить размер кучи для звуков.
Нехватило памяти в буфере для изображения. Или изображение слишком большое, или в следствии фрагментации памяти. Необходимо уменьшить изображение, увеличить размер буфера.
Неправильно указан тип геймцента, или не настроен геймцентр, или не настроен правильно AndroidManifest.xml(отсутствуют разрешения или activity).
Кончился в системе, на которой запускают, режим разработки(Windows 8.1). Включить режим разработки заново.