2015-07-01 2 views
0

Я не уверен, что можно сделать по этому поводу. Мое приложение - приложение для iPad, и я использую около 300 МБ оперативной памяти. В любой момент времени для игры загружается около 250 МБ текстур.Очень долгое время восстановления на моем приложении

В этом проблема. Когда я сплю свой iPad, если я сплю его на несколько минут и вернусь в свою игру, он снова станет воспроизводиться за считанные секунды. Если я оставлю свой iPad спать после того, как сыграл свою игру, или пока моя игра все еще работает около 1 дня, я возвращаюсь назад, моя игра занимает около 3,5 минут для восстановления. Это не ошибка, я много раз просматривал отладчик, и все работает так, как ожидалось. iOS должен восстанавливать кучу где-то, что занимает примерно в 10 раз дольше, чем загрузка игры с нуля.

Мое настоящее решение состоит в том, чтобы забыть о восстановлении, и я намеренно сбой моего приложения, поэтому он перезагружается после того, как он был в отъезде, что приводит меня к тому же состоянию примерно в 10 раз быстрее. Но мне это не нравится.

У кого-нибудь еще были проблемы? Есть ли api, я должен позвонить или что-то, чтобы уменьшить время восстановления после нескольких часов сна iPad? Является ли эта проблема документирована где угодно?

ответ

1

Мое текущее решение забыть о восстановлении и я намеренно врезаться мое приложение так перезапускается после того, как он был далеко, который получает меня в том же состоянии, примерно в 10 раз быстрее. Но мне не нравится это решение .

Это гарантированный способ убедиться, что ваше приложение не одобрено для распространения в App Store. Существует два решения этой проблемы:

1) Редизайн вашей игры. Для этого существуют различные методы, в том числе:

Разрушение уровней на более мелкие кусочки, поэтому на каждом этапе требуется меньше ресурсов для загрузки.

Сокращающиеся текстуры и активы. Например, используйте 256x256 текстуры вместо 512x512. Одна текстура 512x512 занимает пространство четырех текстур 256x256. Вы предпочли бы загрузить четыре своих текстуры в сцене за несколько секунд или 1?

Сжатие ваших текстур. Сжатые текстуры меньше и быстрее загружаются, чем их несжатые bretheren.

Ваше приложение даже не будет запускаться на оригинальном iPad Mini из-за его RAM - оно имеет 512 МБ, и вы в настоящее время пытаетесь использовать 300 МБ в любой момент времени.

2) Отключите приложение от пребывания в фоновом режиме.

Каждый раз, когда ваше приложение теряет фокус (кроме блокировки экрана, который переключается), он заставляет себя перезагружаться с нуля ... так же, как вы уже делаете сейчас с принудительной катастрофой. См:

Если вы не хотите, чтобы ваше приложение, чтобы ввести фон установить ключ UIApplicationExitsOnSuspend в Info приложения.PLIST файл в YES

How to exit app while enter background

Таковы мои предложения, хотя во всей честности я сделать первый, если вообще возможно. Это больше работает, но вы сможете сделать более любезное приложение iOS, когда дело доходит до управления памятью плюс, вы сможете настроить таргетинг на большее количество устройств.

Смежные вопросы