| kay_man Признанный телефонист
 В миру: Антон
 Откуда: Россия, Ульяновск
 С нами с: 26.10.2003
 Плодовитость: 892
 
 
         Рейтинг 
   Подано 125 (110/15) голосов
 
 |  Пишем на J2ME. Руководство новичкам. Меняем код Java под себя. 
  
 |  
 | 
 
         | Под лозунгом "Даёшь больше мидлетов интерестных и нужных!" создаю эту тему для привлечения народа к программированию на J2ME. На 27.09.04 все ссылки (кроме WTK) работают!
 SOFT
 Для начала необходимо скачать J2SDK. Весит это добро 50 метров.
 j2sdk-1_4_2_05-windows-i586-p.exe
 Потом поверх него ставим Siemens Mobility Toolkit - разработка приложений под Siemens.
 smtk_2_00_3b.exe, 12.2 Мбайт
 На данный момент самая простая среда разработки J2ME приложений это Sun ONE Studio 4 ME. Весит 23 метра.
 ffj_me_win32.exe
 Более продвинутый IDE под win32 - Eclipse. Качаем здесь (82 метра). Этот проект OpenSource, также есть версии и под *nix ситемы. Оффсайт http://www.eclipse.org
 Наконец Вам потребуется эмулятор телефона. Эмуляторы под телефоны ниже 60-й серии можно найти на сайте клуба - http://archive.siemens-club.smpda.com/soft-emul.php
 Прямая ссылка на эмулятор CX65 14.2 Мбайт
 Оффсайт http://communication-market.siemens.de
 Замечу, что последний J2ME Wireless Toolkit 2.2 beta содержит библиотеки для разаботки 3D Java приложений + поддержка операций с плавающей точкой (т.е. поддержка MIDP2.0). Скачать можно здесь. Весит 16 метров.
 
 ДОКУМЕНТАЦИЯ
 Первая программа под J2ME
 
 Статья из Хакера №60 "Твоё первое приложение для мобилы"
 
 Статья из Хакера №52 "Взлом Java-апплетов" (подойдёт и для мидлетов)
 
 Остальные доки по J2ME.
 Part 1 899 kb
 Part 2 444 kb
 
 Картузов А.В. Программирование на языке JAVA
 Thinking in Java, 2nd edition, Revision 11 ©2000 by Bruce Eckel
 
 Также читайте доки, идущие с SMTK:
 smtkdocindex.html
 И смотрите сорсы:
 smtksrc
 
 ВЗЛОМ JAVA
 Скомпилированное Java классы можно легко декомпилировать в Java-код. Для этого существуют соответствующие программы.
 Последнюю версию DJ Java Decompiler можно взять здесь. Эта версия бесплатная.
 Также есть платная программа NMI's Java Code Viewer. 6.0a - последняя версия. Скачать можно здесь или здесь. Keygen ищем здесь.
 
 Переделка игр на заданные соотношения экрана
 Кустарный способ, которым пользуюсь я:
 Распаковываем *.jar, декомпилируем все классы, находящиеся там, и ищем строчки, отвечающие за соотношения экрана.
 Наиболее просто поступает Siemens:
 [code]public int getHeight()
 {
 return 130;
 }[/code]
 Т.е. тут видно, что стандартная процедура getHeight заменяется на подставную.
 Тут возаращается значение Int, значит в WinHEX надо искать строчку 04 11 00 82, где 04 - возвращение значения процедуры, 11 - это тип данных Int, а всё остальное - само значение. Встречаются также тип byte, который  записывается как 10 54, где 10 - тип byte, а 54 - число 84 в HEX. Присваивание можно определить по байту 2A (хотя могу и ошибаться, поправьте если что). Т.е. если мы ищем строчку
 [code]B_int_fld = 130;[/code]
 то нам в WinHEX придётся искать 2A110082 и заменить значение 0x82 (130) на нужное. Таким же образом, если нам недо найти присвоение byte, то надо искать 2A10xx.
 
 Рассмотренный пример предельно прост, так как в других играх встречаются совершенно дикие заточки под определённый экран. Такое ощущение, что программистов не учили пользоваться константами.
 
 В идеале нужно перекомпилировать все классы со всеми изменениями, но при декомпиляции код становится практически нечитабельным и приходится исправлять кучу ошибок.
 P.S. Кто знает другие значения байт - делитесь
 |  | 
 ____________________________
 bfcWorx_v0.28- в помощь копателям BFC.
 Железо на x65, Хотите писать на J2ME? (также учимся ломать J2ME под себя)
 Дрова для DCA-51x (PL-2303), DCA-540, схема DCA-540
 | 
 |