Home
Всякая всячина
Свежачок 

Реклама

Настроить
Кто не в курсе, идет сюда: http://www.jetbrains.org/
С девятой версии релизы IDEA делится на Community Edition и на Ultimate Edition. Первое бесплатно, но не содержит поддержки J2EE технологий. Второе платное и является полной версией этой IDE.
Сравнение фичности редакций
Для J2ME полностью хватает бесплатной версии. Ура, товарищи!
А Нетбинс идет лесом как минимум из-за непонятно зачем введенной строгой иерархии каталогов внутри проекта (холиворщики, вперед! :) ). Ему, кстати, предвещают скорый кирдык. Что сильно огорчает.
Очень полезная тема тут: http://forum.juga.ru/showthread.php?s=&threadid=19669
Портал для разработчиков тут: BlackBerry - BlackBerry Developer Zone
JDE (SDK с эмулятором и MDS сервером) тут: http://na.blackberry.com/eng/developers/javaappdev/javadevenv.jsp

Для портирования мидлета ничего переписывать не надо, BB поддерживает CLDC 1.1 и MIDP 2.0 в полном объеме.
Эмулятор в точности повторяет реальное устройство с той же прошивкой (Nokia, SE и другим есть чему поучиться) и содержит хренову тучу настроек вплоть до эмуляции заданного уровня сигнала GSM.
Получить готовый cod файл из мидлета можно так: rapc.exe -import=%path_to_jde%\lib\net_rim_api.jar -codename=%your_codename% -midlet %your.jad% %your.jar%
Если приложение именно J2ME мидлет, то не получится задействовать софт-клавиши. Обычно клавиша 'Q' - это левый софт, а клавиша 'P' - правый.
Для работы с сетью на эмуляторе надо запустить MDS сервер.

Этой информации хватило, чтобы в фоновом режиме за три дня получить работающее приложение для BB из J2ME мидлета. Самое неприятное - это нерабочие софты.
24-Ноя-2009 06:28 pm - О BlackBerry
У компании случилось сильное желание сделать порт J2ME-приложения под BlackBerry, что совпало с моим желанием "позырить", а как там оно.
Первые ощущения:
1)Навороченный эмулятор, который подает надежды, что эмулируется физическое устройство, а не сферический конь в вакууме
2)SDK заточен на идиота. Пока обнаружена только одна консольная утилита, делающая вообще все от компиляции до упаковки и подписывания. И не обнаружено к ней документации.

Если будет пробегать опытный в BB народ - дайте знать, плз.
МТС c 21.03.09 - до 100 Кб за сессию. Плюс округление несколько раз в день (двадцать шесть плюс дополнительно утром и вечером, если верить Сергею Потресову), даже если сессия не завершилась. Типа нефиг аську в бэкграунд вешать. На каждую хитрую жопу каждого хитрого абонента найдется свой член с резьбой МТС с биллингом.
МегаФон - до 100 Кб. Насчет округления трафика при постоянно открытой сессии неизвестно, но вроде отсутствует
Билайн - до 50 Кб. Насчет округления трафика при постоянно открытой сессии неизвестно, но вроде бы тоже отсутствует, как и у МегаФона.

Это касается только "обычных" абонентов. Для интернет-тарифов и пакетов трафика у всей тройки сохранилось нормальное честное округление (на всякий случай стоит уточнять в АС). По корпоративным надо смотреть отдельно по каждому ОСС.
В общем, разрабатывая мобильные сервисы, надо давать возможность поддерживать постоянное соединение. Ну а мобильно-интернетным абонентам выбирать соответствующий тариф.
Жду новую волну жалоб "Деньги со счета стали уходить быстрее, что вы там накрутили?!"

http://developer.sonyericsson.com, если вдруг есть человек, интересующийся J2ME, но не ведающий об этом ресурсе :)
А по теме - не знаю как давно, но галерея телефонов изменилась. Раньше все модели были слева и их увеличение превратило бы страницу в неудобоваримый вид. Редизайн, конечно, был нужен, но за каким фигом превращать описание телефонов из специфического для программистов в универсальный для продвинутых покупателей? Например, перестали писать информацию о хипе, размере хранилища и т.д. Занимает много места? Влом копировать из пдфа? Нокия как-то справляется.
Так что теперь информация для МЕшников есть только в Developers' Guideline. Но он до сих пор лучший среди всей документации по мобильной яве, с этим не поспоришь.

Вот такое письмо пришло на днях:
This is your invite to join Samsung Mobile Innovator.

Samsung Mobile is committed to building a developer eco-system that encourages innovation,
collaboration and business development. To do this we understand that you need the
appropriate tools, technical content and accessible support to get your applications
running on Samsung mobile devices, and we promise to provide them.

To deliver on this promise the way we serve Java ME professionals is changing.
The Samsung Mobile "Developer's Club" (developer.samsungmobile.com) will no longer be
the official site for Samsung Mobile's Java tools, resources and forums.
Instead, these will now be located within
the Samsung Mobile Innovator site (innovator.samsungmobile.com).
This site was launched in October 2008 to support the Symbian community and
this support has now been extended to include Windows Mobile and Java.

What does this mean for me?
  - Automatic redirection from developer.samsungmobile.com to innovator.samsungmobile.com
  - An enhanced customer experience, supported by Samsung's dedicated Java Research and
    Development Center, with additional features such as a virtual device area (Lab.dev) and
    business development support (Market.dev).
  - To access these features you will need to join
    Samsung Mobile Innovator using the online registration form*.

             
http://innovator.samsungmobile.com/mbr/individual.mbr.add.do

We appreciate you take the time to register for Samsung Mobile Innovator and
look forward to provide you with an even greater level of service and support.

Kind Regards
Samsung Mobile



Чего неймется? Перенести описание устройств из старых порталов им лень, а налабать новый с более худшим юзабилити почему-то не лень. Сделать просмотр ява-спецификаций только через скачивание xls файла - пять баллов. Челы, похоже, вообще не в курсе, что они делали. Сейчас список телефонов больше похож на раздел сайта "налетай, не скупись, покупай...", чем на ресурс для разработчиков.
Надо побыстрее слить спецификации с developers.samsungmobile.com, пока его не грохнули.
http://innovator.samsungmobile.com - новый ресурс.
Пока писал эту заметку, новый портал успел упасть.
Все-таки есть в этом мире неизменные вещи. Разгильдяйство и тупость конторы "Samsung Mobile" - одна из них.
Вспомнил, что давно написал полезную штуку для логгирования исключений и ошибок, возникших в отлаживаемом мидлете на реальном устройстве. Решил поделиться, может кому будет нужна. В архиве есть небольшое описание, но вроде и так все должно быть понятно - комментарии присутствуют.
Качать тут: rmslogger 1.0.0
Замечания, дополнения приветствуются.

Всё должно быть сделано настолько простым, насколько это возможно, но не проще...
Альберт Эйнштейн

Написал для себя мидлет, который позволяет логгировать в RecordStore всякую информацию по ходу выполнения основного мидлета из Midlet Suite'а (например, информацию об исключениях) и потом просматривать ее.
Решил сделать все "как надо". А именно использовать RecordComparator для определения, которую запись показывать сначала, то есть которая была сделана раньше, а которая позже.
И вот сидел вчера, втыкал, с чего бы это более поздняя по логике запись (тупо в одном потоке пишется позже) оказывается выше, чем более ранняя. "Нашел" ошибку в синхронизации потока, который пишет в хранилище. Сделал настоящую ошибку. Понял это. Вернул все назад. Начал втыкать опять. Догнал, что время записи, по которому идет сравнение, записывается с точностью до секунды без миллисекунд. Поэтому и получается такая фигня - записи оказываются равнозначными и иногда путаются местами.
А что надо было сделать? А надо было не выпендриваться, а тупо сделать последовательное получение записей через цикл при помощи recordStore.getRecord( int index ). Даже если писать миллисекунды (кстати, здравая идея для тестов производительности), то никакие компараторы нахрен не нужны. Потому что: процесс записи синхронизирован, и первый вызов сделает первую запись; фрагментации записей быть не может - если лог удаляется, то целиком, то есть все хранилище сразу.
В общем, если вдруг на пустом месте посетит мысль забабахать мегакрутую и мегауниверсальную вещь, подумайте, а оно точно надо? Чем сложнее конструкция, тем больше шанс допустит ошибку. Но это, конечно, не значит, что надо создавать топорные негибкие решения.

В очередной раз на просьбу оставить свое мнение о субже написал, что было б неплохо, если IDEA будет работать быстрее. Не думал, что будет ответ. Однако, через несколько часов пришло письмо, где советовали перейти на 8.0.1, в которой решили некоторые вопросы производительсноти, и дали ссылку на их статью по этой теме.
Но все равно думаю, нафига мне восьмерка дома, если только под J2ME программлю? Пятерка летает, и ее возможностей хватает с головой.
Попытался вчера вечером отладиться на своем W890 (JP-8.2.1). В отличие от Шарика из "Зимы в Простоквашино" мне ничего не нарисовали, а просто сказали, что последовательный интерфейс для этой платформы - не круто, и, мол, не барское это дело таким технологичным устройствам использовать подобную отсталость. В общем, используйте сетевые возможности TCP\IP.
http://developer.sonyericsson.com
вчера вечером отчаянно тормозил, так что добраться до нового SDK и документации для разработчиков не удалось. Пришлось экспериментировать. Первое, что пришло в голову - сеть через Bluetooth (PAN - personal area network), меня всегда интересовало, как это сделать, а тут и случай представился. Потыркав разные кнопки в винде и на мобиле, настроить так и не смог. Vista меня уверяет, что никакого PAN'а на моей мобиле нет. Возможно, это из-за неустановленных драйверов для двух BT-профилей, а может что-то неправильно настраивал. Попытал счастье с USB. Винда тоже напрочь отказалась видеть телефон. Точнее, устройство Ethernet мобилы было видно, но что с ним делать непонятно совершенно. Решил, что утро вечера мудренее. И не зря:
дока от SE, как отлаживаться на JP-8
факу, как настроить PAN
Заодно нашел более новые (надеюсь) блютусные драйвера для висты, а то официальный апдейтер как поставил версию полуторагодичной давности, так и до сих пор считает ее наисвежейшей.
Итог: использовать TCP\IP для отладки правильно, современно и по идее должно быть удобно, но неплохо бы оставлять и дедовский метод. Как говорится, случаи бывают разные, тем более, что на данный момент настройку сети мобила-комп тривиальной не назовешь.

Новость на русском и на английском.
Одно радует, что в России эта компания непопулярна, а большинство моделей, скорее всего, будут бюджетными и, возмжно, без явы (кризис, фигли). Но что-то и нам "перепадет".
Только что скачал приложение, перепаковал его по привычке kzip'ом, чтобы убедиться, какие разработчики лохи, и какой я умный :) И на тебе - мой SE W890 при установке нового jar'а сказал "Нет места. Удалите один или несколько файлов". Текст ошибки по информативности и близости к истинной причине очень напомнил мне контору Samsung, не ожидал такого от SE.
Оказалось, что именно это приложение надо перепаковывать с ключиком -zl121, который предназначался для билдов под старые мобилы с версией zlib 1.2.1, реализованной с какой-то ошибкой, и поэтому она иногда не могла распаковать архивы, созданные более поздними версиями этой библиотеки. При этом все мои проекты идут на W890 без этого ключа на ура.
Блин, теперь всегда буду выставлять этот ключик, и свою антенну пересоберу, чтобы он был включен по умолчанию, а не как сейчас. Благо размер с его использованием увеличивается всего на несколько байт.
Оригинал документа от Касперского читать не стоит.
Статья на Mobile-Review это можно, сконцентрированный бред из оригинальной статьи туда скопирован.
Вкратце, Касперский обнаружил целых 40-45 различных вредоносных программ для платформы J2ME, разделив их на 9 семейств. Интересно, сколько сам написал?

Особо понравившиеся места:

Если говорить о J2ME-троянцах, то абсолютное большинство их имеют следующую структуру: jar-архив, в котором есть несколько class-файлов.
Очень хочу увидеть мидлет с другой структурой.

Один из этих файлов и осуществляет отправку платного SMS-сообщения на короткий номер (естественно, не спрашивая разрешения владельца телефона об отправке и не уведомляя его о стоимости такого сообщения)
Просто вранье. Даже если мидлет подписан, пользователь лично и явно должен выставить параметр "Не спрашивать об отправке СМС", причем я уверен, что многие просто не знают, как это сделать.
Неподписанный мидлет спросит разрешение на использование сервиса SMS в целом и будет спрашивать дополнительное разрешение на каждую отправку сообщения, причем нормальные телефоны (SE, Nokia, Motorola, короче не Samsung и не LG) обязательно покажут номер получателя.

Остальные class-файлы служат лишь для маскировки.
Зачем врать в таких малозначительных технических деталях непонятно. Наверное, просто некомпетентность "эксперта".

а также manifest-файл, который в некоторых случаях также используется вредоносной программой для отправки сообщений.
Вообще отвал башки :)) В лучшем случае манифест можно использовать для хранения номера, куда слать SMS. Интересно, что подразумевал автор писанины? 

Если в телефоне (именно в телефоне, не обязательно в смартфоне) есть встроенная Java-машина, то на таком устройстве Trojan-SMS.J2ME сможет функционировать без всяких проблем.
Угу, если постоянно выползающее системное окошко с предпреждением об отсылке сообщения не считать за проблему.

Так, после запуска пользователем Trojan-SMS.J2ME.Swapi.g на дисплее телефона появляется приветствие с предложением посмотреть картинку порнографического содержания. Для этого нужно успеть нажать на кнопку «ДА», пока звучит короткий музыкальный сигнал. (В jar-архиве программы хранится и png-файл с картинкой, и midi-мелодия.) Стараясь успеть нажать кнопку вовремя, пользователь не догадывается, что каждое нажатие (неважно, вовремя или нет) приводит к отправке SMS-сообщения на короткий номер и к списанию определенной суммы с его счета.
Опять вранье. Хотя уже несколько ближе к реальному положению вещей. Программа теоретически может сделать свое окошко с интерфейсом, как у системного запроса телефона. Но:
1)На разных телефонах разный вид окошек
2)В окошке прямым текстом пишется, что приложение хочет отправить SMS на такой-то номер. Спутать довольно трудно. И даже если пользователь случайно разрешит отправку, то навряд ли несостыковка текста программы и действия, которое оно на самом деле выполняет, не вызывет подозрений.

Простота создания и распространения таких приложений может привести к дальнейшему росту вредоносных программ поведения Trojan-SMS во втором полугодии 2008 года. Будем следить за развитием ситуации.
Обязательно следите и радуйте нас новыми "исследованиями". Думаю, даже стоит создать отдельный комитет по данной проблеме и предложить включить в бюджет РФ новую статью расходов. Не забудьте упомянуть слово "нано" в названии комитета.


У меня есть нехилое предположение, что Касперский больше наносит вреда, чем приносит пользы. Его прошлые десктопные продукты были предметом анекдотов, а попытка поднять шум вокруг почти несуществующей проблемы уважения никак не добавляет.
Статья с мнениями других участников рынка антивирусов. Материал хоть и двухлетней давности, но гораздо ближе к истине даже сейчас.
Мое мнение, что проблемы вирусов на обычных телефонах с Java просто нет. Отдельные пользователи, которые могут двадцать раз разрешить подозрительную отправку SMS на короткий номер, являются проблемой сами для себя, примерно как дети, которые лижут дверную ручку в мороз. Наверное, на школьников начальных классов эти трояны и рассчитаны. Но они и сами могут неплохо отправлять нужные SMS на обещания картинки без помощи дополнительных программ.
На смартфонах все несколько хуже. Возможности платформ гораздо больше, безопасность гораздо меньше, чем в J2ME, так что устанавливать все подряд действительно не стоит. Но единственный увиденный за мой "мобильный" пятилетний стаж вирус распространялся примерно так: "Да ну, не верю, что вирус! А что делает? Кинь мне на мобилу."
19-Июн-2008 02:09 pm - W890, теперь позитивное
Получилось странно, я мобилой очень доволен, но первые впечатления изложил так, как будто в этом девайсе ничего хорошего нет. Двое даже сказали спасибо, что отговорил от покупки, и друг спросил, мол, чего так мрачно всё описываешь.
На самом деле, мобила отличная, так что буду исправлять положение, и в этом посте будет только позитив (весь негатив я уже описал в первом).


Жмак )
Ура, на RSDN выложена полная версия статьи, так что все желающие велкам, комментарии, исправления, вопросы приветствуются! :)
11-Апр-2008 06:33 pm - Дал слабину
Кратковременно сдался.
Взял у коллеги Rover M1 с VM "Jblend" от 050728, там мидлет отказался то ли скачиваться, то ли устанавливаться с многоговорящей ошибкой "errorno -xxxx", и я забил на этот девайс. Ну его нахрен в пятничный вечер.
В понедельник может выясню, что за говноява там работает.
Может у кого какие идеи есть? Настройки интернета, по идее, должны использоваться такие же, как и в браузере - обычная точка доступа Internet GPRS.
А смартфон тормознутый по самое не хочу - это относится не к яве, а вообще к интерфейсу, работе программ и т.д.
Уведомление о проблемах не на высоте. При использовании неправильной точки доступа вместо нормального сообщения, что нет GPRS связи, IE тупо выведет "Почему-то не могу показать страничку".
Сеть ловит очень плохо. Причём при двух палках из четырёх GPRS в принципе перестаёт работать. Что именно показывает индикатор доступности сети неясно.
... или кто просто в Питере будет.
Я сегодня отправляюсь - выбил командировку.
Если что, звоните, пишите или тут откомментарьте, можно будет пересечься
То есть, не совсем вышла, пока доступна лишь через форум RSDN: http://rsdn.ru/forum/message/2876004.flat.aspx
Скоро должен выйти бумажный номер журнала, где она будет полностью, а месяца через два будет выложена целиком и в интернете, насколько я понимаю.
14-Мар-2008 02:58 pm - ProGuard 4.x - гадость
За последние две недели нашёл три бага, причём два из них через чур гадкие. Сначала 4.2 beta валился на стадии компиляции с stack size become negative, но это фигня. Стал использовать 4.1. После пары часов выяснил, что теперь опция assumenosideeffects действует не только на методы указанного класса и унаследованные от него классы, но и на все суперклассы! Переписка через баг-трекинг с автором ни к чему не привела. То ли он меня не понял, то ли ещё что.
Позавчера на двух мобилах приложение стало валиться с IllegalMonitorStateException. На эмуляторе всё нормально, на других двух мобилах всё нормально, дебажная версия везде идёт нормально. Перекопал весь код, как исходники, так и декомпилированный и дизассемблированные получившиеся классы, на предмет левых вызовов wait и notify, только вчера вечером дошло попробовать другую версию обфускатора. На 3.11 всё пошло нормально.
В общем, хоть четвёка и оптимизирует лучше как минимум по размеру jar, но пока нафиг.
Остаюсь на 3.11.
Если кому инетерсно, баг-трекинг тут Ошибка с assumenosideeffects уже в состоянии Closed, но что решил автор пока не ясно.
11-Мар-2008 07:00 pm - HP iPAQ 514 и RMS
Как просил Алексей - про J2ME :)
Так вот, смартфон HP iPAQ 514 не может создать хранилище, редиска. Что делать - хз, если есть мысли, не стесняйтесь :)


Да и вообще HP расстраивает, то хорошей знакомой КПК ремонтируют год (кстати, суд то хоть и постановил починить и выплатить бабло, но на деле закончилось ничем), то заместо JVM какую-то херню поставят...

Реклама

Настроить
This page was loaded Дек 4 2009, 6:04 pm GMT.