Форум jimm.net.ru

  • Вы не зашли.

#1 2009-08-09 20:26:18

van
модератор
Зарегистрирован: 2008-05-19
Сообщений: 411
Модель телефона: Sony Ericsson K750i, NOKIA N8
Профиль

Как собрать джим из исходного кода

в этой теме попробую подробно и с примерами освятить сборку джим из исходного кода, это своего рода практическое дополнение к теме Часто задаваемые вопросы по исходникам Jimm (FAQ)


делай, что должен, и будь, что будет...

Неактивен

 

#2 2009-08-09 20:29:36

van
модератор
Зарегистрирован: 2008-05-19
Сообщений: 411
Модель телефона: Sony Ericsson K750i, NOKIA N8
Профиль

Re: Как собрать джим из исходного кода

способ I (классический)

"необходимый софт"
1 качаем  Java Development Kit (JDK) комплект разработчика приложений на языке Java http://java.sun.com/javase/downloads/index.jsp
2 качаем Wireless Toolkit Kit (WTK) java-эмулятор http://java.sun.com/products/sjwtoolkit/
3 качаем Apache Ant утилита для сборки программ из исходного кода http://ant.apache.org/
4 качаем Proguard обфускатор для уменьшения размера результирующего jar-файла http://proguard.sourceforge.net/
5 качаем TortoiseSVN приложение для работы с SVN http://tortoisesvn.net/downloads
1, 2 и 5 устанавливаем, 3 и 4 кладем в удобную для нас папку.
"подготовка исходников"
после того как все установили и положили делаем правый клик по «мой компьютер», в контекстном меню выбираем пункт «свойства», «дополнительно», «параметры среды», в «системные переменные» ищем переменную PATH (могут быть и такие названия path или Path), нажимаем «изменить», в «значение переменной» ставим точку с запятой ";" и дописываем путь к Apache Ant (до директории bin), сохраняем.
возможно так же понадобится положить ant-contrib.jar в папку lib Apache Ant'а, взять его можно прямо в исходниках (\util\ant-contrib\ant-contrib.jar)
создаем папку для исходников, даем ей имя и переходим в её. правый клик, в контекстном меню выбираем «SVN извлечь», в графе «URL в хранилище» вписываем http://jimm-fork.googlecode.com/svn/trunk/ больше ничего не меняем, жмем «ОК» и ждем конца извлечения.
в нашей папке появится папка jimm-fork, заходим в её, находим там файл build.xml, открываем его блокнотом и ищем следующие строки:
   <property name="DEFAULT/midp"     location="здесь пишем путь к нашему WTK" />
   <property name="MIDP2/midp"        location="здесь пишем путь к нашему WTK" />
   <property name="RIM/midp"            location="CHANGE ME" />
   <property name="SIEMENS1/midp"   location="CHANGE ME" />
   <property name="SIEMENS2/midp"   location="CHANGE ME" />
   <property name="MOTOROLA/midp" location="CHANGE ME" />
чуть ниже ищем еще эти:
   <property name="proguard"         value="здесь пишем путь к нашему proguard"    />
   <property name="proguard/lib"    value="${proguard}/lib/proguard.jar"      />
идем в папку config (jimm-fork\config), отрываем там блокнотом файл sysdirs.properties и редактируем:
DEFAULT/midp= здесь пишем путь к нашему WTK
MIDP2/midp= здесь пишем путь к нашему WTK
RIM/midp=CHANGE ME
SIEMENS1/midp=CHANGE ME
SIEMENS2/midp=CHANGE ME
MOTOROLA/midp=CHANGE ME
чуть ниже ищем :
proguard=здесь пишем путь к нашему proguard
"возможно так же понадобиться"
-создать переменную JAVA_HOME, в системных переменных, в переменной прописать путь к JDK (просто к директории jdk, не к bin как в случае с ant'ом)
"сборка"
теперь возвращаемся к build.xml, левый клик на нем, «открыть с помощю», «выбрать программу», «обзор», идем в папку WINDOWS\system32 и ищем там cmd.exe им и ставим открыть, откроется консоль где  уже будет прописан путь к нашей папке, пишем ant dist-all (команда для сборки) и ждем окончания процесса.
"пример build.xml с изменениями"
   <property name="DEFAULT/midp"     location=" C:/dev/WTK2.5.2" />
   <property name="MIDP2/midp"        location="C:/dev/WTK2.5.2" />
   <property name="RIM/midp"            location="CHANGE ME" />
   <property name="SIEMENS1/midp"   location="CHANGE ME" />
   <property name="SIEMENS2/midp"   location="CHANGE ME" />
   <property name="MOTOROLA/midp" location="CHANGE ME" />

   <property name="proguard"         value=" C:/dev /proguard/"    />
   <property name="proguard/lib"    value="${proguard}/lib/proguard4.4.jar"     />
или можно так:
   <property name="proguard"        value=""    />
   <property name="proguard/lib"    value="C:/dev /proguard/proguard4.4.jar"  />
"пример sysdirs.properties с изменениями"
DEFAULT/midp= C:/dev/WTK2.5.2
MIDP2/midp= C:/dev/WTK2.5.2
RIM/midp=CHANGE ME
SIEMENS1/midp=CHANGE ME
SIEMENS2/midp=CHANGE ME
MOTOROLA/midp=CHANGE ME

proguard= C:/dev /proguard/proguard4.4.jar


делай, что должен, и будь, что будет...

Неактивен

 

#3 2009-08-09 20:32:29

van
модератор
Зарегистрирован: 2008-05-19
Сообщений: 411
Модель телефона: Sony Ericsson K750i, NOKIA N8
Профиль

Re: Как собрать джим из исходного кода

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

настройка бинса для работы с исходниками джим (тем кому интересно) (на примере MIDP2 сборки)
"необходимо иметь"
JDK, netbeans, netbeans mobility pack
"создание проекта"
в choose project выбираем
categorie: mobility
projects: mobile project from existing MIDP sources
sources location: папка исходников\src
jad manifest location: папка исходников\res\MANIFEST.MF
project name и project location любые (называем, допустим jimm, project location оставляем предложенные )
emulator platform: wireless toolkit 2.5.2 for CLDC
device: default color phone
device configuration: CLDC-1.0
device profile: MIDP-2.0
finish (если снизу пишет warning: platform does not support ###MIDP-PROFILE### нужно поправить манифест (MANIFEST.MF), хотя можно и потом или просто взять из готового джимм)
"настройка проекта"
правый клик по проекту и в самом низу пункт properties
general: оставить как есть
platform: создать профиль MIDP2 и оставлял галочки на file Connection and PIM optional packages 1.0, mobile media API 1.1, wireless messaging API 2.0
abilities:все что есть+modules_TRAFFIC, modules_HISTORY, modules_FILES, modules_SMILES, modules_PROXY, modules_XSTATUSES, modules_SERVERLISTS, modules_SOUND, modules_TRANSLITERATE, modules_CLIENTS, modules_MAGIC_EYE, modules_ANTISPAM, protocols_ICQ, protocols_JABBER, protocols_MRIM, SMILES_IN_XSTATUS с value (значением): true или false (нужен-true, не нужен-false), а так же device_configuration с value (значением): CLDC-1.0
compiling: галку на compile with optimization
libraries & resource: \res\TARGETS\MIDP2, хотя это толком не работает и лучше просто указать папку со звуками, графикой и нужными текстовиками (themes.txt,  replaces.txt,  smiles.txt).
"подготовка исходников"
заменить в исходниках (или просто добавить ниже) команды препроцессора (с существующих - на команды netbeans'а).
пример:
как сейчас  // #sijapp cond.if modules_ANISMILES is "true" #
как надо    //#if modules_ANISMILES=="true"
как сейчас  // #sijapp cond.end #
как надо    //#endif
как сейчас  // #sijapp cond.if target isnot "MOTOROLA" #
как надо    //#if !MOTOROLA
кое-что про команды препроцессора написано в справке netbeans (help/help contents/about preprocessor directives)
"проблемы данного метода"
проблема: файлы .lang не поддаются обфускации и введению в .jar архив в виде уже измененных в .lng файлы, скомпилированный проект лишен языковых файлов.
решение: хоть и плохое, но пока так: добавить в папку исходников (src) уже готовые .lng файлы (взять из готового джимм, иногда срабатывает, а иногда и нет).
"сборка"
правый клик по проекту, затем run, run with, debug если все правильно, появится эмулятор в котором нужно нажать launch (верхняя правая кнопка), запустится созданный джимм.
получившиеся .jar и .jad файлы будут лежать: \мои документы\netbeansprojects\jimm\dist\MIDP2

да кстати:

van написал:

проблема: файлы .lang не поддаются обфускации и введению в .jar архив в виде уже измененных в .lng файлы, скомпилированный проект лишен языковых файлов.

возможно эту проблему поможет решить "прикручивание" к проекту LangsTask.java из исходников официального (\util\langs\src\langs)


делай, что должен, и будь, что будет...

Неактивен

 

Board footer

Powered by PunBB 1.2.14
© Copyright 2002–2005 Rickard Andersson
Модифицирован PunBB.ru
А находится на jimm.net.ru