Не экономило, но требовалось…
• Не использовали меню LCDUI: с ними больше мороки, чем выгоды. Курьёз: на Motorola P2K (aka Motorola Triplet) первых прошивок при переходе с холста в LCDUI одна кнопка ухитрялась отработать и на том, и на другом (на холсте при нажатии, в LCDUI при отпускании).
• Как можно больший кусок меню отпечатывали на «экранном буфере». Так что сложные меню были очень отзывчивы.
• Собственный пиксельный шрифт. Шрифты мобильников были великоваты, причём у каждого телефона по-своему велик. К тому же было очень много нерусифицированных трубок.
Прочие методы экономии памяти и архива…
• Мы постоянно мониторили интернет на предмет обфускаторов. Это было архиважно для нас.
• Утилиты pngout и kzip — наше всё.
• Объединяли несколько файлов в один, чтобы посильнее сжалось.
• Составляли персонажей из частей. Малой кровью получали неплохие анимации.
• Не использовали (или мало использовали) ООП. В основном массивы.
• Предвычисленные таблицы (например, тригонометрические) — только в файлах.
Nokia Series 40 (ныне Nokia Asha). Один из самый распространённых мобильников своего времени. Запросто жил неделю.
В версии S40a это было 64k JAR и 215k ОЗУ.
Дрянный монитор и 4-битный видеочип, картинки можно спокойно ужимать. Памяти они расходуют 2 байта/пиксель.
Главная проблема — плиточный буфер. (128+16)·(128+16)·2 = 41,5k памяти. Около 20%. Неплохой процессор, без проблем можно сделать игру на 12 fps. Не подумайте ничего такого, на постоянном fps игра чувствуется немножко не так, как на переменном. И абсолютно безглючный. Звуки — одноголосые, через классы Nokia.
В первую очередь под нож шла неигровая графика — меню и заставки. Затем — косметические части игры (например, меньше декораций).
Всё в ME было направлено на то, чтобы программа ненароком не переполнила ППЗУ мобильника и не потратила ХЗ на что хозяйские деньги. И сейчас доступ к файловой системе — нестандартное API, а не CLDC.
И методы обхода разрешений были интересные: игра заставляла игрока долбать ключевую кнопку, а потом ненароком выкидывала запрос: разрешаешь?
Java — это достаточно стандартизованная платформа. И никаких отличий, кроме слабой машины, кастрированной базовой библиотеки (CLDC) и особой библиотеки пользовательского интерфейса (MIDP), для программиста нет. CLDC, несмотря на кастрированность, всего лишь подножество стандартной Java-библиотеки. И даже шаблонами на ME можно писать (это функция языка, не машины — правда, надо смотреть, поддерживает ли целевой мобильник ArrayList<> и прочее).
Давным-давно, в бытность ME’шником, я был обучен не закладываться на функции MIDP2, делая свои прослойки, работавшие то через Nokia UI, то через MIDP2, то через предварительно подготовленные повороты. А «звуковые классы» — это было рутинное дело; по звукам фрагментация ME была колоссальная. Сейчас, наверно, эту функцию взяли на себя шаблонные классы и New I/O.
Заодно тут вот что. Операции && и || т.н. «экономичные»: если первый операнд 0, && говорит, что результат 0 и не рассчитывает второго. Если первый операнд не 0, || также не рассчитывает второго.
Поэтому можно писать что-то наподобие if (p != NULL && p->field != 0) {} — при нулевом указателе он не разыменовывается.
Будет. Intel Core i3 ≈20% быстрее AMD в одном потоке. Внешняя nVidia процентов на 40 быстрее встроенной в Core i3 (и, соотвественно, Radeon R5). Да и шейдерных модулей побольше — а значит, картинка получше.
…но, если уж говорить о GPGPU, обоим конкурентам выгодно объединиться вокруг OpenCL или DirectCompute. Насколько поддерживается софтом — снова-таки, не знаю.
> А вообще intel core i3 считается мощнее amd a8?
Да, процентов на 20 как минимум.
> В Intel Pentium 3556U меня 2 ядра по 1.7ггц смущают.... это же хуже 4х по 2.2ггц amd?
Незначительно (<10%) быстрее в одном потоке и на те же процентов 20 (± в зависимости то задачи) слабее в многопоточном.
> вообще поиграть/поработать с графикой не получится?
Безымянный Intel HD (Pentium) для игр малопригоден; у него, насколько мне известно, низкая частота и кастрированные шейдерные модули.
5500 (Core i3) незначительно (<10%) быстрее R5. Плюс драйверы у Intel стабильнее.
Если в программе есть GPU-ускорители (как в том же ФШ) — ну, может, слегка лучше с хорошей видяхой. Может, в трёхмерной графике черновой рендеринг быстрее. А так на работу не бросает никакой тени.
• Не использовали меню LCDUI: с ними больше мороки, чем выгоды. Курьёз: на Motorola P2K (aka Motorola Triplet) первых прошивок при переходе с холста в LCDUI одна кнопка ухитрялась отработать и на том, и на другом (на холсте при нажатии, в LCDUI при отпускании).
• Как можно больший кусок меню отпечатывали на «экранном буфере». Так что сложные меню были очень отзывчивы.
• Собственный пиксельный шрифт. Шрифты мобильников были великоваты, причём у каждого телефона по-своему велик. К тому же было очень много нерусифицированных трубок.