Как стать автором
Обновить

Комментарии 47

С j2me вообще можно было гораздо проще поступить, на github есть форки phoneME, со всеми базовыми классами и под оба профайла cdc и cldc

Ага, действительно. ссылка Ну ладно, в принципе, и без исходников больших проблем не было.

Я не программист, но как пользователь до сих пор очень люблю J2ME. У меня и сейчас ява-телефон в роли mp3-плеера и для звонков (Sony Ericsson W995, бывший флагман), а на случай его смерти лежит новый Sony Ericsson j10i2 Elm. Если бы под яву были современные мессенджеры (вацап, телеграм, клиент VK) — я, пожалуй, до сих пор бы ходил без смартфона.
Но увы, под J2ME сейчас реально сидеть только в джаббере и, может, в каких-то местечковых редких сетях. Ну и поздние Оперы Мини ещё вроде работают. Всё остальное, связанное с интернетом, умерло (был клиент Jimm для ICQ и несколько очень крутых его клонов с крутыми доп.возможностями, был текстовый клиент скайпа, был Шазам и его аналог от Сони «TrackID», был клиент ютуба и много чего ещё).
Мне очень нравилось, что при скромных потребностях ява-программы очень чётко работают, при этом полностью контролируется их деятельность (прога не может просто так получить вечный доступ в интернет, к файлам, к камере, к отправке СМС и пр). Проги никогда не лезли в телефонную книгу, не могли сами по себе менять никакие настройки.
Думаю, даже на железе 2008-2010 года (поздних ява-телефонах) вполне можно было бы реализовать почти все возможности того же вацапа или телеграма, ну разве что понадобился бы сервис, перекодирующий видео в lo-res .3gp и жмущий картинки. Конечно, телефоны 2003-2005 годов были послабее, многие из них не поддерживали mp3 и видео, некоторые были даже монохромные. Среди дешёвых ява-телефонов было немало уродцев, когда телефон вроде поддерживает яву, но никакого интерфейса, чтобы залить файлик .jar, нет (только качать через родной мега-убогий вап-браузер), а встроенной памяти мегабайт-два (не каждая программа даже одна сможет поставиться). Были телефоны с закрытой файловой системой (дешёвые моторолы), когда ява вроде работала, но, скажем, сделать экспорт истории переписки в ICQ в .txt файлик я не мог. На некоторых телефонах просто очень криво и нестабильно работала ява (всякие ранние самсунги).
Круче всего года до 2006 были сименсы, там всё работало как надо. Потом сименсы умерли, а вперёд вырвались Сони Эриксоны и Нокии. Но поздние Нокии были по сути симбиан-смартфонами (S40 и S60), обычная ява работала, но их родная стихия была .sis-приложения). Они как-то дольше грузились, больше тупили, а вот поздние сони эриксоны переваривали яву на пять с плюсом. Я на W995 и Эльме мог одновременно запустить аську, оперу мини мод с несколькими вкладками, джаббер (клиент «Bombus mod», mp3-плеер или клиент интернет-радио и ещё какую-нибудь игрушку, и на всё это хватало оперативки.
А сейчас на яве скучно. Почти все сетевые программы сдохли. А главное — операторы поубирали тарифы, где интернет был по трафику (например, 5,50 р за мегабайт с округлением в 50 кб), теперь или покупай конские для такого телефона пакеты по большой цене (зачем мне пакет трафика 6 Гб, если я на просмотр новостей с Оперы Мини трачу 20-50 кб?), или отключай интернет совсем). Остаются только игры.
НЛО прилетело и опубликовало эту надпись здесь

Мобильная опера умела картинки не загружать, да и всякие посторонние скрипты скорее всего тоже не грузила. Curl считает, что размер страницы 239 кб.

Мобильная опера (опера мини) же пережимала контент на своей стороне, грубо говоря рендерила страницы на стороне сервера.

В том-то и дело, что с пережатием Оперы Мини, особенно старой версии до 3.x (которую уже отключили), да с отключёнными картинками, типичная страничка (новости, Хабр, Баш, какой-нибудь форум на IPB или PhpBB) весила 15-50 кб, ну максимум 150-200, если это что-то очень тяжёлое. Таким образом, я мог один раз открыть GPRS-сессию и почитать новости, баш, заглянуть на пару форумов и потратить около 200-400 кб трафика, то есть 1-2 рубля! Это удобно и дёшево. Но операторы посчтали, что такой тариф никому не нужен, и влепили минимальный пакет гигабайта 4 или 6, а если выйти в интернет на «звонковом» тарифе, то всё равно списывается рублей 15 и даётся мини-пакет на день на несколько мегабайт. Как-то так. Ну и зачем это? В чём сложность была просто не трогать старые тарифы? Я бы и сейчас тратил себе рубль-два в день и читал свои новости с оперы мини, а теперь вообще не хожу в интернет с той сим-карты, а новости читаю или на смартфоне с корпоративной симкой, или дома через домашний интернет.
о да! У сони-эриксонов была классная фича — сворачивать приложения, и отдельная кнопка даже, кажется, для списка запущенных.
На Сименсах сворачивание работало тоже, но очень криво и своеобразно, это было похоже на багоюзерство. Ну а вообще можно было на одном вап-сайте сделать мидлет-комбайн из 2-3-4-… отдельных приложений, тогда в телефон закилыватся один большой .jar-файл, а при запуске появлялась менюшка, где можно было выбрать нужную программу. В принципе выручало, если хватало оперативки. Типичный набор — опера мини и Jimm, чтобы сёрфить в инете, попутно переключаясь на чатик.
Если вдруг всё ещё надо, у меня где-то были декомпилированные исходники Gravity Defied, где всё переименовано в осмысленные названия.

А что до генериков — моё понимание таково, что там никакой поддержки со стороны JVM не требуется. Всякий там ArrayList всё так же возвращает и принимает Object, который всё так же кастуется в нужный тип, просто в случае генериков эти касты генерирует компилятор.
было бы неплохо поделиться ссылочкой)
Тынц
Generics are implemented by type erasure: generic type information is present only at compile time, after which it is erased by the compiler. The main advantage of this approach is that it provides total interoperability between generic code and legacy code that uses non-parameterized types (which are technically known as raw types). The main disadvantages are that parameter type information is not available at run time, and that automatically generated casts may fail when interoperating with ill-behaved legacy code. There is, however, a way to achieve guaranteed run-time type safety for generic collections even when interoperating with ill-behaved legacy code.

На самом деле это правда лишь от части.


Например, когда вы создаете 'new ArrayList<String>()', то тип String в объект не записывается и узнать какого типа пришел List в рантайме нельзя.
Но если у вас, например, поле класса 'private List<String> strings' или параметр функции 'void func(List<String> strings)', то тип String в класс записывается, и его можно узнать через reflection.


Тот же hibernate вполне может связать классы Parent и Child:


public class Parent {
...
@OneToMany(...) 
private List<Child> childs;
}
Да, я знаю, и это не противоречит тому, что я написал ;)

Лично у меня проблема с этим была только один раз, когда хотел по максимуму переиспользовать код в парсере ответов API — там был везде одинаковый формат списков, но с объектами разных типов внутри. Решил так:

public class ListContainer<T> extends ArrayList<T>{
    public final Class<T> itemClass;
    // + конструктор
}

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

А декомпиляторы выводят типы генериков из кастов в местах использования.
О, помню, когда мне в школе передали counter strike для мобилы, но она была с защитой по почте и серийнику и никто не знал комбинацию. Как же просто было её взломать и написать простой кейген… Счастливые времена, сейчас все сложнее. Хотя мне тогда для написания игр не хватало чисел с плавующей точкой и тригонометрических операций, а разложений в ряды Маклорена я в школе не знал.
Упоминание MidletPascal вижу, но ни одной IDE для него не упомянули, коих целых три вышло (две десктопных и одна под Android), довольно странно. Ну и MobileBasic тоже пользовался популярностью. В остальном — большое спасибо за статью.

P.S. А по поводу запуска J2ME кода под Android (именно кода, не джарника) есть целых два решения — это J2MEPolish и AndroidMidpShell.

P.S.S. Я сохраняю проекты MidletPascal в репозиторий, поэтому если у вас что-то осталось, поделитесь пожалуйста)

В те годы тоже ковырялся в MidletPascal и знал только про одну (официальную) IDE. Приятно удивлён тем фактом, что их было несколько :)

Тут рассмотрена относительно простая игра, и это хорошо.
Но я помню мой уровень восторга от фирменного тенниса в 3d (Super Real Tennis 3d) на SE k750… где относительно маломощный телефон воспроизводил не самую плохую 3d графику.

k750, вроде бы, был одним из самых мощных. Во всяком случае, его аналог k810i имел такие фичи, как поддержка многозадачности j2me, около 5МБ оперативной памяти под нужды j2me, возможность запуска jar размером больше 20МБ. Я делал приложение-карту со спутниковыми снимками, в которое зашивал снимки как ресурсы; и всякие словари Мюллера мегабайт на 7. Из 3D я могу припомнить какой-то авиасимулятор (воздушный бой), и гонки Red Out Racer, они были интереснее, чем теннис.

По сравнению с КПК и коммуникаторами тех времён он был всего лишь продвинутым и качественным мопедом. После 750 у меня был 800, а вот следующим был коммуникатор на Windows Mobile.
Не знаю, сколько было памяти у 750-го, но думаю, что меньше, так как он старше на пару лет вашей модели. Но количество ОЗУ все равно было в разы меньше, чем у коммуникаторов или КПК тех времён, и уступало смартфонам на Symbian.
Да, согласен, эти игры тоже были, но я не был их фанатом.

На Симбе и WinMobile и софт был пожирнее и потормознутее. Так что где была выше скорость отклика, удобство и быстрота работы — ещё большой вопрос. Те смартфоны на Symbian и Windows Mobile, которыми я пользовался, мне запомнились своими тормозами и неотзывчивым интерфейсом. А на яве всё летало. Тяжеленный мидлет больше мегабайта весом стартовал за секунды.
Да, но первый плоттер (построитель графиков) я увидел именно на КПК, и купил себе коммуникатор именно с прицелом использовать его для учёбы. И офис там был шикарный по тем временам.

Я там ниже отписывался, напишу еще тут немного про Sony Ericsson.


Почти все из них, под которые доводилось писать были отличными аппаратами. Лучшими из всего, что было на J2ME. Не помню чтобы под них были баги. А еще в них было много оперативной памяти и они были невероятно быстрыми (относительно других J2ME аппаратов).
Они были настолько круты, что под них мы практически никогда не разрабатывали мастер-версий своих игр. Это такие первоначальные версии ПО, которые потом портировались на другие аппараты.
Почему так? Потому что если разработать игру под продвинутое железо, то ее потом не портировать на более слабые аппараты. А поскольку зоопарк девайсов был большой и нужен был максимальный охват аудитории, то смысла использовать все возможности крутых девайсов не было.

А что нужно сегодня, чтобы выпускать актуальные кнопочные Девайсы с j2me? Соглашение с Oracle?
Иногда хочется взять звонилку на всякий случай, но современные телефоны знатно деградировали в плане программной платформы. Иногда кажется, что это знание, как делать приличные телефоны, кануло в лету.

А что нужно сегодня, чтобы выпускать актуальные кнопочные Девайсы с j2me?

Чтобы это было экономически выгодным, нужно повернуть вспять экономические процессы. Сейчас j2me и всё с ним связанное (практически) никому не нужно, т.к. есть android, выигравший конкуренцию (т.е. доказавший своё превосходство) некоторое время назад (еще до поглощения Sun Oracle'ом).


Если "актуальные кнопочные Девайсы с j2me" вам нужны только для себя, сегодня вы можете соорудить требуемый девайс на базе arduino, raspberrypi, или чего-то подобного, или самостоятельно спроектировать плату из современных компонентов, заказать, напечатать или выпилить напильником корпус… Возможно, вам потребуются единомышленники, но сегодня подобие телефона прошлого можно сделать и в одно лицо.
Полагаю, есть даже несколько иной путь — взять готовый телефон, готовое ядро линукса, и запилить (или даже кастомизировать готовую) оболочку, плюс виртуалку с требуемыми вам j2me api.

Спасибо, постараюсь изучить вопрос.
Я писал программы для Arduino, но это отличается от j2me. Raspberry pi ест энергию как не в себя, и устройство будет работать часы вместо дней, на элементах 18650. Есть какие-то варианты, на базе которых можно будет сделать относительно автономными?

это отличается от j2me

J2ME — это реализация java-виртуалки + реализация API. Например, эмулятор j2me-телефона представлял собой просто реализацию API, запускаемую вместе с мидлетом под обычной, десктопной, java-машиной.


Есть какие-то варианты, на базе которых можно будет сделать относительно автономными?

Быть может, STM32… Но (как программист) я бы взял готовый телефон и попробовал собрать для него свою прошивку, без shitware.

Всё ещё можно найти новые (или восстановленные) сони эриксоны и рабочие аккумуляторы к ним. Я сам сижу на W995 и про запас лежит новый Elm. Как телефоны для звонков и как плееры они очень хороши. Можно и погонять в какой-нибудь Worms 2007 года. Можно лазить в интернете с Оперы Мини, в некоторых даже есть Wi-Fi 802.11b/g! Но почти все сетевые программы для них сдохли, и актуальных (вацап, телеграм) на J2ME просто не существует. А телефон без интернета и программ для работы в интернете не может быть современным.
Как телефоны для звонков и как плееры они очень хороши.

Разве? Я сильно плевался на старый интерфейс, когда мой андроид-телефон был в ремонте, и я заменял его старым кнопочным. Хотя в своё время интерфейс Sony Ericsson был хорош. Но сейчас, когда SMS принято группировать в диалоги, старое отображение просто списком чертовски неудобно. Плеер, вроде бы, не успел составлять плейлисты… Аналогично и в некоторых других аспектах.

Отображение sms поштучно/чатами настраивается. Хотя мне удобнее работать с sms когда они поштучно. Родной плеер да, местами был неудобен и имел проблемы с кодировками, но можно было подобрать сторонний, я вот пользуюсь "Windows Media Player 11" (плейлист формируется оч.удобно, интерфейс с лёгким закосом под виндовый плеер а-ля Vista).

А что нужно сегодня, чтобы выпускать актуальные кнопочные Девайсы с j2me?
Отсутствие тех самых буржуйских «300%». Ведь это же надо углубиться в разработку, очертить круг решаемых девайсом задач, определиться с ЦА, с учётом этих факторов разработать адекватный дизайн, итд. Но ведь в разы проще же перелицевать корпус, взять готовый дизайн обычного быдлочипсета от MediaTek, придумать бренд-однодневку навроде «Стар-Пауэр-Дестроер ЧиньФэнь 9000», залить слегка изменённую Android-прошивку и выставить на продажу. Главное — быстрее суетиться, потому что чипсет через год-полтора устареет, и надо будет срочно выпустить новый быдлодевайс, потому что старый перестанут покупать. Баги фиксить необязательно — и так купят.
Соглашение с Oracle?
Вот это вряд ли. На Али целая куча самых разных звонилок причудливых форм и размеров. Не думаю, что они что-то там лицензировали у Oracle.

Другой вопрос — если серьёзно подумать о разработке нового девайса, то какие коммерческие, закрытые приложения наш желаемый «нормальный кнопочный девайс» потенциально позволил бы запускать. Не придём ли мы в итоге к дизайну ОС «тот же Android, вид сбоку» (KaiOS)? Если в итоге придём, то смысл всей затеи повисает в воздухе… А кнопочные аппараты с Андройдом и так уже есть.
знатно деградировали в плане программной платформы.
У них и аппаратная не блещет. Многие из них работают только в сетях 2G, поэтому далеко не во всех странах и не со всеми ОпСоСами вообще смогут работать.
Иногда кажется, что это знание, как делать приличные телефоны, кануло в лету.
И не только телефоны. Дивный новый мир победившего постмодернизма.

Как бывший разработчик игр под J2ME (2005-2008гг) могу рассказать обратную сторону.


Итак, compile once run everywhere — это не про J2ME. На практике приходилось делать отдельный билд почти под каждый телефон. И хорошо, если это Nokia. У них там в то время было все просто, Series 40 (128x128), Series 60 (176×208) и может немного более экзотического. Влез в 64кб jar и 215кб heap на S40 — молодец, дальше почти ни одного глюка. Sony Ericsson еще хорош. Берешь 3 почти одинаковых самсунга — у каждого свои глюки. И самсунг еще далеко не самый плохой вариант.


Итак, различия:


  • Экран. Телефоны имеют разные разрешения, под каждое надо отдельные картинки. Хотя бы splash screen (картинка на заставке). А еще некоторые телефоны не могли перейти в полноэкранный режим, для них не надо было рисовать soft-keys, что ломало layout. Да то же расположение кнопки назад (слева или справа) не давало делать универсальные приложения.
  • Нестандартные возможности. Возможность рисовать отраженные картинки не сразу была в стандартной поставке J2ME. Где-то ее не было вообще, а где-то было нестандартное API (привет Nokia). А возможность нужна, нам же а 64кб надо поместиться. Кто-то gif умеет и ему можно картинки получше пожать, а кому-то только png подавай.
  • Шрифты. 3 размера теоретически были везде, но по факту некоторые телефоны имели только один. Хуже другое, все шрифты были разные. Всегда где-то что-то не влазит. Иногда по ширине, иногда по высоте, иногда шрифт слишком мелкий. Надо все просмотреть, какие-то надписи укоротить, где-то перерисовать подложки под кнопки, где-то сделать скролл. Методы работы со шрифтами (например, ширину узнать) глючат на некоторых аппаратах. Выровнять шрифт по вертикали, например, на кнопке нельзя. Метод есть, но разные телефоны рисуют шрифт выше или ниже, надо подбирать для каждой серии телефонов отдельно.
  • Звук. Тут вообще беда. У все производителей все по разному. И форматы файлов и API. А если захотел звук и вибро одновременно, то у QA команды это отдельно дело.
  • Коды клавиш, насколько я помню, тоже отличались.
  • Тормоза. Некоторые телефоны сильно медленнее других. Под них надо переделывать физику игры или делать отрисовку экрана один раз на 2 игровых цикла. Почти нигде не стоило создавать объекты после начала уровня. И даже это не спасало от тормозов garbage collector'а на некоторых телефонах. Были заметные притормаживания, которые вообще никак не лечились.
  • Баги. Они повсюду. Они разные и не совместимые. Nokia (если влез по памяти) и Sony Ericsson отличные аппараты. У остальных все сильно хуже, вплоть до неверного выполнения стандартных методов. Добавляем невозможность дебага (почти на всех аппаратах) и заливку только через GPRS (на многих) и получаем крайне сомнительное удовольствие отладки. Телефон повис до того как ты успел что-то вывести на экран? Не повезло, попробуй сам угадать что поменять.

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

Согласен j2me не была серебряной пулей, слишком много накладных расходов на безопасное исполнение приложения. Особо это чувствовалось на тех телефонах где процессор не поддерживал прямое исполнение java. На моей 5000 нокии я смог запустить эмулятор ZX spectrum, но скорость исполнения была такая что он бы потактовым. Точнее пошаговым, нажал клавишу, игра сделала шаг. Ну и утечки памяти, когда раз и heap кончился, приложение будет закрыто.

Именно утечек памяти я почти не помню. Бывали на каких-то совсем странных телефонах.


Но, возможно, это из-за того, что мы код писали с минимальной аллокацией объектов и без циклических ссылок. Начался новый уровень — старый со всеми расурсами занулили, вызвали System.gc(), подгрузили новый уровень. До следующего уровня ничего не аллоцируем. Но это в идеале, иногда надо выводить количество очков или жизней, тогда строки надо создавать, но это обычно не много.


А еще утечки памяти мы мало ощущали из-за того, что одна из мастер-версий игры почти всегда была под Nokia Series 40. Это были самые порезаные игры, но очень важные т.к. платформа очень распространена. Процессор на этих нокиях был далеко не самый медленный, но по память была очень ограничена, не уверен что где-то было меньше, чем там. И если на каком-то другом аппарате где-то не хватало памяти, то всегда можно было что-то вырезать из игры.


Что еще про память вспомнил. На некоторых телефонах если запускать garbage collector руками каждый кадр, то падение производительности не ощущалось вообще, а если не вызывать, то было ощутимое замирание геймплея раз в несколько секунд. На других же телефонах запуск garbage collector'а каждый кадр опускало производительность до неприемлемого уровня. А если его не запускать, то не на всех телефонах это приводило к ощутимым замираниям в процессе игры. Узнать это заранее нельзя, надо тестировать каждый телефон отдельно и смотреть как лучше.

В мессенжере jimm бывало такое, в агенте МайлРу тоже случалось. Не часто, но бывало. В тяжелых игрушках (для моей нокии 5000) бывало чаще особенно в какихто стратегиях. В опере мини тоже бывало, но редко.

Интересно, у Вас совсем другие сценарии использования телефона и другой опыт.


Перечисленые программы нельзя назвать простыми с точки зрения управления памятью. Там постоянно надо что-то создавать и удалять и иногда что-то идет не так. Не знаю кто виноват, разработчики программ или все-таки прошивка телефона.


При написании простых игр, которыми я тогда занимался (аналоги арканоида, пакмена или примитивные гоночки) утечек достаточно легко было избежать на подавляющем большинстве телефонов.

Так уж получилось :)
Аркадные игры на телефоне не нравились из-за не очень удобного управления и тормознутости телефона. Поэтому и искал пошаговые стратегии. К сожалению аналога классической Цивилизации я так тогда и не нашел. Закос под третью Циву был практически аркадой. MoG (Master of galaxy) был очень похож на MoO (Master of Orion) но битвы флотов проходили на автомате :(
А вот DOOM RPG я прошел до конца ;)

Спасибо за взгляд с "другой стороны". У меня, к сожалению, такого опыта нет, я запускал свои поделки на одном-двух телефонах.

Не могу сказать, что отсутствие такого опыта это "к сожалению" :)
Просто разработка маленькой поделки или proof of concept, особенно на хорошем девайсе, разительно отличается от коммерческой разработки под полсотни разных девайсов.
Уверен, что современные разработчики под Android тоже могут много чего хорошего рассказать, но я практически уверен, что сегодня проблем гораздо меньше хотя бы потому, что в apk можно закинуть почти все, что нужно.

Основной ад был с поддержкой всего зоопарка трубок. j2me жили параллельно c brew и количество портов топовых приложений было запредельным. Но игры приживались. Теперь уже редко, но всё еще приходят просьбы сделать порт некоторых игр с j2me на андроид :)
Я не нашёл, какая производительность была у процессоров, но она явно была очень скромной — не больше 100Мгц частоты


плохо искали, 237МГц у родственной 5300, а отличаются они только экраном и камерой

Из «того» времени (2008-й?) еще вспоминаются упаковщики нескольких J2ME-приложений в одно — многозадачности у таких телефонов не было в принципе (не было ведь?), а сворачивать джавки и держать их в фоне могли тоже далеко не все. А так можно было взять JIMM, какой-нибудь плеер и Opera Mini, запаковать в один jar-ник (прямо на Nokia 6300) и переключаться между ними! Магия, не иначе.


Крайне ностальгический off-topic: но всё это детский лепет, конечно. Был вот у меня в 2005-м Sony Ericsson T230, что на платформе Mophun (которая на Хабре упоминается в одной статье и в пяти шести комментариях, три из которых мои), игрули можно было скачать с официального WAP-сайта.


Я даже порывался сам этим заняться, но даже если я бы и смог как-то скачать то ли 30, то ли 130 мегабайтный SDK (что в принципе было равноценно проблемным) и изучить C++ за 21 день, то найти data-кабель для подключения «гробика» к моему Compaq Armada 3500 было совершенно невозможным.


Но самое интересное было, что я набрел на некий WAP-форум (возможно http://se-life.ru — естественно, он уже не работает), где умельцы делали для него софт: календарики, читалки (со вшитыми книгами, конечно же, которые могли уложиться в 10 слотов для сейвов игр) и… клиент ICQ, который даже ничего себе работал.


А так как у простых харьковских парней-программистов не было возможности купить цифровую подпись, без которой приложения, маскирующиеся под игры, работали только с привязкой к IMEI, они вручную подписывали сборки клиентскими IMEI-ями всем желающим и просто за спасибо. Спасибо им :) (ну а вдруг кто увидит и узнает).

многозадачности у таких телефонов не было в принципе (не было ведь?)

Было. SonyEricsson k810i, кажется, 2006 года разработки, точно имел многозадачность.


А так как у простых харьковских парней-программистов не было возможности купить цифровую подпись, без которой приложения, маскирующиеся под игры, работали только с привязкой к IMEI, они вручную подписывали сборки клиентскими IMEI-ями всем желающим и просто за спасибо.

Такого вообще не помню. Обычно приложение из jar-файла просто устанавливалось и работало. Или скачивалось, устанавливалось и работало. Ну или не работало из-за несовместимости, но это скорее исключение. Цифровая подпись нужна была только для более удобной настройки разрешений приложения. Наверно, T* — чуть более старые модели, чем я видел, и тогда ещё были проблемы.

SonyEricsson k810i
Ну это были крутые дорогущие аппараты. Стоил, наверное, тысяч 10 (!), так что не удивительно.

Обычно приложение из jar-файла просто устанавливалось и работало.
Стоп-стоп, это продолжение ностальгического оффтопика про Mophun. На T2* никакого J2ME не было и впомине
Такого вообще не помню. Обычно приложение из jar-файла просто устанавливалось и работало. Или скачивалось, устанавливалось и работало.

Реч шла о Sony Ericsson T230. На нем не было Java, была платформа Mophun.
Был у меня такой аппарат. Из-за слабой распространенности платформы на него найти софт было сложно. Не знал, что у платформы такие заморочки с цифровой подписью были уже тогда.


Помню, что в T230 было дико тормознутое меню, но игры бегали довольшо шустро. Интересно, почему так? Скорее всего, Mophun выполнялся нативно и работал быстро. Но как можно было меню телефона сделать таким медленным?

многозадачности у таких телефонов не было в принципе (не было ведь?)

На ограниченной серии телефонов Nokia (S40v5-v6) был хак, позволяющий сворачивать приложения. ЕМНИП, работало не совсем корректно, но сколько радости то было, что сворачивало хоть что-то) Да, манипуляции для активации хака напоминали шаманство темных вуду, ввиду чего ощущаешь себя чуть ли не богом после осиливания подобных извращений) Навеяло ностальгию :)
На телефонах Sony Ericsson писал свои первые программы на C (пытался реализовать динамическое меню — привет, утечки памяти ввиду моих кривых рук). Для меня именно SE были маст-хевом, ввиду разнообразия того, что можно было модифицировать в родной прошивке (в отличии от Nokia, где все в основном сводилось к модификации иконок меню и подобного).

На моей 6300 (у нее, кажется, S40v3) сворачивание сработало один раз на определенной версии прошивки. И то, возможно, это было плацебо.


Да и вообще, как вспомню это Phoenix, так вздрогну. То ли дело fastboot flash bootloader да fastboot flash system

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории