====== Лицензионное соглашение ====== Исходный текст программы распространяется под [[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-расширений), производить отладку мидлетов непосредственно на телефоне, имеет документацию и т.п.