====== Лицензионное соглашение ======
Исходный текст программы распространяется под [[http://opensource.org/licenses/gpl-license.php|лицензией GPL v2]].
Copyright (c) 2005-2009 Eugene Stahov (evgs), http://bombus-im.org/
В состав Bombus входят следующие библиотеки:
- [[http://kvmjab.sourceforge.net/|KVMJab]] Copyright (c) 2000,2001 Al Sutton (al@alsutton.com). All rights reserved. ([[http://opensource.org/licenses/bsd-license.php|лицензия BSD]])
- [[http://www.jcraft.com/jzlib/|JZlib]] Copyright (c) 2000,2001,2002,2003 ymnk, JCraft,Inc. All rights reserved. ([[http://opensource.org/licenses/bsd-license.php|лицензия BSD]])
- реализация MD5 и SHA1 из состава [[http://www.ssttr.com/|SSTTR Library]] (лицензии см. в исходных текстах: [[http://svn.xmpp.ru/repos/bombus/trunk/src/com/ssttr/crypto/|com/ssttr/crypto/]])
====== Исходный текст Bombus ======
Исходный текст [[bombus:bombus|Bombus]] доступен через [[wp>Subversion_(software)|Subversion]]:
[[http://svn.xmpp.ru/repos/bombus/trunk]]
или
[[https://svn.xmpp.ru/repos/bombus/trunk]]
**[[bombus:patches|Патчи]]** принимаются по адресу ****
====== Инструменты, используемые для сборки Bombus======
ВНИМАНИЕ!!! Суммарный объём инструментария превышает 200 мегабайт!
* **[[http://subversion.tigris.org|Subversion]]** - система управления версиями. //Версия >= 1.3.1// **([[http://www.collab.net/downloads/subversion/|CollabNet Subversion Command-Line Client for MS Windows]] (3 MB))**
* **[[http://java.sun.com/javase/downloads/index.jsp|J2SE(tm) Development Kit (JDK)]]** - Java-машина + инструменты разработки J2SE. //Версия >= 1.4.2//
* **[[http://java.sun.com/products/sjwtoolkit/|Sun Java Wireless Toolkit (WTK)]]** - инструменты для сборки J2ME приложений и MIDP-эмулятор. //Версия >= 2.2. (Sun Java Wireless Toolkit 2.2 входит в состав NetBeans Mobility Pack 5.5 и выше)//
* **[[http://www.netbeans.org/products/ide/|NetBeans IDE]]** - интегрированная среда разработки. //Версия >= 5.0//
* **[[http://www.netbeans.org/products/mobility/|NetBeans Mobility Pack]]** - модуль среды разработки для поддержки J2ME. //Версия та же, что и у Netbeans.//
* **[[http://proguard.sourceforge.net/downloads.html|Proguard]]** - обфускатор. //Версия >= 3.2//
**ВНИМАНИЕ!** Netbeans Mobility Pack 5.0 содержит старую версию Proguard с серьёзной ошибкой. Без обновления Proguard компиляция release-версии Bombus невозможна. Нормальная сборка гарантируется в версиях Proguard 3.2 и **[[http://bombus-im.org/tools/proguard3.5.zip|Proguard 3.5]]**. При использовании NetBeans Mobility Pack 5.5 обновление Proguard не требуется. Proguard 3.7 из Netbeans Mobility Pack 5.5.1, а также Proguard 4.1 (и может быть другие новые релизы) нельзя использовать из-за кривизны!!
----
Опционально:
* [[http://java.sun.com/javase/downloads/netbeans.html|NetBeans IDE with JDK]] - NetBeans IDE с уже включенным JDK
* [[http://tortoisesvn.net/downloads|TortoiseSVN]] - subversion-надстройка для проводника MS Windows
----
Дополнительные ресурсы:
* [[http://bombus-im.org/tools/]]
* [[http://bombus-im.org/docs/]]
* [[http://netbeans.org/]]
* [[http://proguard.sourceforge.net/]]
* [[http://java.sun.com/]]
* [[http://tortoisesvn.tigris.org/]]
* [[http://subversion.org.ru/]]
* [[http://mindview.net/Books/TIJ4|Bruce Eckel: Thinking in Java, 4th edition]] ([[http://www.mediasense.ru/library/java/thinking_in_java/Content.html/|перевод 2-ой редакции]])
====== FAQ по сборке ======
===== Вопрос 1: Как правильно скачать исходники Bombus? =====
**Ответ 1:** Первое скачивание: svn checkout http://svn.xmpp.ru/repos/bombus/trunk
обновление: svn up
**Ответ 2:** Subversion-клиент интегрирован в Netbeans 6.x.
Первое скачивание: в меню Versioning выбираем пункт Subversion->Checkout..., в поле Repository URL указываем http://svn.xmpp.ru/repos/bombus/trunk, нажимаем Next>, на следующем экране указываем путь, куда хотим сохранить исходники, и нажимаем Finish.
Обновление: в окне Projects выбираем Bombus, в контекстном меню на его значке выбираем пункт Subversion->Update.
===== Вопрос 2: Размер скомпилированного Bombus слишком большой! Дико мигает значок GPRS, телефон попискивает (Siemens)! =====
**Ответ 2.1:** Bombus собран в отладочной конфигурации **DefaultConfiguration**, содержащей полные символические имена и отладочные версии некоторых функций. Для заливки в телефон предназначены конфигурации **ReleaseJZLIB** и **Release**
**Ответ 2.2:** В параметрах конфигурации отключен обфускатор и/или не настроен в IDE вообще (бывает при некорректной замене Proguard 4.2 на 3.5). Необходимо убедиться, что в параметрах проекта Obfuscating Level = High, а в параметрах IDE (Tools->Libraries-Proguard Obfuscator) указан правильный путь к proguard.jar
===== Вопрос 3: Bombus шлет десятки статусных сообщений, зависает (SonyEricsson), не входит в конференции (Motorola EZX), либо как-то иначе странно себя ведёт =====
**Ответ 3:** Часто такие проблемы возникают из-за ошибок обфускатора proguard. Для Netbeans 5.5.1 и выше - необходимо просто заменить файл **netbeans-XX/mobilityX/external/proguard.jar** (где XX - номера релизов Netbeans и Mobility pack) на **proguard.jar** из **[[http://bombus-im.org/tools/proguard3.5.zip|proguard3.5.zip]]**. В случае Netbeans 6.x - воспользоваться меню Tools->Libraries, и изменить путь к Proguard Obfuscator на правильный путь к **proguard.jar** версии **3.5**
===== Вопрос 4: Как в NetBeans сделать кодировку UTF-8 по умолчанию? =====
**Ответ 4:**
Netbeans 5.x: Tools -- Options -- Advanced Options -- Editing -- Java Sources -- Default Encoding: UTF-8
Netbeans 6.x: необходимо в файл конфигурации (Где его найти описано [[http://wiki.netbeans.org/FaqNetbeansConf|здесь]]) в строку **netbeans_default_options** дописать параметр **-J-Dfile.encoding=UTF-8**
//Дополнительно о настройках Netbeans можно почитать [[http://habrahabr.ru/blogs/webdev/70496/|тут]]//
===== Вопрос 5: Почему Bombus не компилируется в NetBeans 6? =====
**Ответ 5:**
* Удалить файл **nbproject/build-impl.xml**
* Изменить файл **build.xml** следующим образом:
Index: build.xml
===================================================================
--- build.xml (revision 1363)
+++ build.xml (working copy)
@@ -118,7 +118,7 @@
-
+
* Открыть полученный проект в Netbeans 6, дождаться автогенерации файла **nbproject/build-impl.xml**, указать WTK и **builtin.ks**
P.S. **build.xml** в SVN уже содержит это исправление
===== Вопрос 6: Netbeans выдает ошибку (или просто ничего не делает) при попытке добавить MIDP-платформу, изменить список Ability в проекте, и т.п. =====
**Ответ 6:**
Судя по [[http://forums.netbeans.org/ptopic9235.html|этой ссылке]], у старых версий Netbeans имеется ряд проблем со свежим JDK, потому при использовании старых версий Netbeans следует использовать JDK не новее чем JDK 6 Update 11, либо использовать актуальную версию Netbeans.
====== Отладка Bombus ======
В общем случае, Bombus можно отлаживать при помощи Netbeans и WTK-эмулятора. Но бывают специфичные для телефонов проблемы (обычно это свидетельствует о багах в java машинах), которые можно поймать только на этих устройствах.
===== WTK =====
==== Данные приложения (RMS) ====
В Netbeans кликните Tools -> Java Planform Manager, выберите ваш WTK, перейдите на Tools & Extensions, нажмите Open Preferences, на вкладке Storage задайте имя папки в поле Storage Root Directory (для каждого приложения желательны разные папки во избежание конфликтов) и Heap Size не меньше 2000 kb. Физически RMS-файлы приложений хранятся тут: **[wtk_home]/appdb/[Storage Root Directory]/**
==== Доступ к файловой системе компьютера ====
В Netbeans кликните Tools -> Java Planform Manager, выберите ваш WTK, перейдите на Tools & Extensions, нажмите Open Preferences, на вкладке Security выберите Security Domain: trusted. Поместите ваши файлы в **[wtk_home]/appdb/[Storage Root Directory]/filesystem/** чтобы иметь к ним доступ из J2ME-приложения.
==== Сенсорный экран (TouchScreen) ====
Bombus поддерживает работу с сенсорным экраноном, активировать который в WTK можно, установив в файле конфигурации вашего устройства
**[wtk_home]/wtklib/devices/[your_favourite_device]/[your_favourite_device].properties** \\
значение опции\\
touch_screen=true\\
Также будет полезно почитать руководство **[wtk_home]/docs/BasicCustomizationGuide.pdf**
===== Motorola =====
Информация для разработчиков под Motorola: http://developer.motorola.com/
Можно получить лог работы Bombus с помощью MidWay 2.8 (выдержка из руководства):
Debug information is provided in MIDway through the "Debug Log" tab. This log is especially useful when a
midlet fails to load and reports an error such as "Application Error". This log may be saved into a text file by
using the "Log->Save Log As..." menu item.
Для получения лога в MidWay нужно в телефоне выполнить **Меню** -> **Параметры** -> **Средства Java** -> **Загрузка Java-приложения**, подсоединить кабель, в MidWay указать порт, перейти на вкладку "Debug Log" и открыть Bombus.
===== Nokia =====
[[http://www.forum.nokia.com/Technology_Topics/Development_Platforms/Java.xhtml|J2ME]] - одна из платформ для разработчика, активно развиваемых и поддерживаемых Nokia. Для отладки работы Bombus можно скачать Java SDK для конкретной модели телефона и получить очень приличную эмуляцию работы Bombus на этом телефоне, включая все ошибки. В состав SDK входит эмулятор, который можно запускать отдельно, либо интегрировать в Netbeans, дополнительные инструменты для запуска отладки прямо на телефоне (On Device Debug), документация по J2ME, включая многие расширения Nokia, примеры кода, и т.п.
Кроме того, Nokia предоставляет [[http://www.forum.nokia.com/Technology_Topics/Application_Quality/Testing/Remote_Device_Access/|online-доступ]] к большому числу реальных устройств, на которых можно испытать работу приложения.
===== SonyEricsson =====
Sony Ericsson тоже достаточно хорошо документирует и предоставляет инструменты разработки. Существует [[http://developer.sonyericsson.com/site/global/docstools/java/p_java.jsp|SDK]], который позволяет эмулировать телефоны SonyEricsson (кастомизированный WTK с поддержкой специфичных Sony-расширений), производить отладку мидлетов непосредственно на телефоне, имеет документацию и т.п.