У машины s40 память лучше для игр, научно-популярных.

Оригинальный постер: 2014000 Просмотры: 322 Ответы: 10 Опубликовано в: 2012-06-09 18:51:45
Существует два основных типа использования памяти: программы и ресурсы. ·Класс программы будет скомпилирован в файл байт-кода класса и загружен в память при запуске мидлета и будет добавлен сразу. То есть, чем больше классов в мидлете, чем длиннее программа одного класса и чем больше строковых констант и данных внутри класса, тем больше будет скомпилированный файл класса и тем больше памяти он займет после загрузки. Я часто использую метод Runtime в конструкторе класса мидлета для проверки объема памяти, занимаемой всей программой после запуска мидлета. //Метод оптимизации: 1. Программа MIDlet разделена на два класса для уменьшения использования памяти, но за счет возможностей ООП Java. Этот недостаток будет особенно очевиден, когда программа относительно велика. Более того, CoCoMo однажды столкнулась с ситуацией, когда один класс был слишком большим, а время загрузки было слишком долгим, что нарушило 6-секундный лимит на логотипе сундука с сокровищами. //2. Постарайтесь писать элегантный код, сократите количество функций, уберите try catch при выпуске программы и минимизируйте количество строк программы. На старой 40 это вообще невозможно, но теперь CoCoMo уже не рассчитывает на это для экономии памяти. //3. Записывайте данные и строки в файлы, загружайте их в память, когда они используются, и устанавливайте для них значение null, когда они не используются. 4. Операция ввода-вывода getClass(). getResourceAsStream(file);, операция базы данных RecordStore. openRecordStore(name, true);, Менеджер создания звука. createPlayer();, создание изображения Image. createImage (файл); займет большой объем памяти за короткий промежуток времени и освободит его позже. Если оставшейся памяти программы MIDlet недостаточно, при частом вызове этих функций произойдет переполнение памяти, что приведет к так называемому пику памяти, который особенно часто встречается в старой версии 40. При повторной встрече OutOfMemoryError используйте Runtime, чтобы найти место, где происходит пик памяти, и попытайтесь вызвать эти операторы отдельно, а также гибко использовать System. gc() для сбора вовремя. //·Ресурсы Картинки: они занимают большой объем памяти, особенно мобильные игры с большим количеством ресурсов изображений. Расчет использования памяти ресурсами изображений стал регулярной задачей для разработчиков игр J2ME. CoCoMo объяснит, как рассчитать использование памяти изображениями: //Использование памяти = ширина * высота * количество пиксельных байтов, где количество пиксельных байтов варьируется в зависимости от модели. //Например, использование памяти картинки 64*64 на 7210 = 64*64*1,5 = 614 4 (байт) = 6К, использование памяти на S60 = 64*64*2 = 8192 (байт) = 8К. Количество пиксельных байтов зависит от модели. Например, 7210 — это модель с 4096 цветами, что означает, что для представления пикселя используются 12 бит, поэтому умножьте на 1,5, а S60 — это модель с 65 536 цветами, а для представления пикселя используется 16 бит, поэтому умножьте на 2. //Метод оптимизации//Ошибочно думать, что сжатие изображений может сэкономить память. Согласно приведенному выше объяснению, после загрузки изображения в память оно связано только с шириной и высотой и не имеет ничего общего с размером данных изображения. Сжатие изображения может уменьшить только размер jar, но не использование памяти. //1. Статический метод: Уменьшите размер изображения. Если ширина и высота меньше, результат будет меньше. На основе этой идеи появились такие инструменты, как редакторы анимации, например, Prince of Persia от Gameloft. После того, как персонажи разделены, части человеческого тела можно использовать повторно. Компактное размещение каждой части призвано уменьшить размер картины и максимально использовать каждый дюйм пространства снимка. //2. Динамический метод: Уменьшите количество изображений, загружаемых в память одновременно. CoCoMo однажды столкнулся с такой ситуацией в проекте «Наруто Самурай». В то время существовало 6 типов монстров. Если бы они были загружены в память одновременно, то на старом 40 она бы обязательно взорвалась. Однако на каждом уровне появлялось только два-три типа монстров, поэтому на каждом уровне нужно было только загружать картинки монстров, появившихся на этом уровне. Теперь, когда я думаю об этом проекте, в старой версии 40 часто возникали переполнения. //Звук//Звук также является относительно ресурсоемким ресурсом. Байты, занятые звуковой дорожкой в ​​звуке, будут преобразованы в поток байтов и загружены в память. Следовательно, уменьшение байтов, занимаемых звуковой дорожкой, может снизить потребление памяти. Текущий подход Gameloft заключается в использовании инструмента преобразования звука для преобразования среднего в ott, а затем изменения его в поток байтов ByteArrayInputStream для создания проигрывателя.
отвечать 🤍 0 📤 делиться собирать
Не понял..
Лень смотреть..
Смотрю и кружится голова..
Есть одна программа размером более 12 МБ, которую можно использовать на моем S40. http://dd9.lexun.com/9xf202/act/20110123/5/49904971.jar Словарь Синьхуа. Будьте осторожны при скачивании на мобильный.
Это всего лишь популяризация науки. Прошу рецепт.
Необходимо знать Java и иметь определённые базовые знания Java.
Лоучжоу понимает ли, переслал…
Эээ, почему нет информации о том, сколько памяти занимают 3D-игры? Обычно 3D-игры очень требовательны к оперативной памяти…
Всё-таки лучше не стоит, посмотрев на это, я тоже не смогу сделать.
Просто знаю немного Java. Знания немного — это нормально, нет необходимости обязательно изучать все до конца. В конце концов...
— Все ответы загружены —

Оставить ответ