motofan logo
9 страниц V  1 2 3 > »         
> 

MIDlet2Corelet - из мидлета в плагин к корелету, Разработка библиотек

Valleo
сообщение 26.4.2007, 2:08 Закрепленное сообщение!


Гуру
******

Группа: Почётные мотофаны
Сообщений: 728
Регистрация: 21.10.2005
Из: Находка
Пользователь №: 55 219

Рейтинг: 692.5



MIDlet2Corelet представляет собой набор классов, которые нужно добавить в jar файл корелета Virtual Corelet.
Эти классы являются неким аналогом MIDP2.0, они нужны для запуска мидлета как плагина для Virtual Corelet
После этого туда же добавляем патченые мидлеты и получаем их как плагины.
MIDlet2Corelet поможет нам иметь:
- ява-приложения в фоне без возможных патчей;
- ява-приложения работающие паралельно;
- больше оперативной памяти (heap'a) для ява-приложений.

Скачать последнюю версию
Вот: Файловый архив MIDlet2Corelet, там выложены файлы с максимально понятными именами. Кроме того, их имена с пояснениями в этой теме. Если пояснение есть, а файла нет, значит, он устарел.
Последняя версия библиотеки MIDlet2Corelet, необходимой для работы мидлетов-плагинов, всегда лежит а архиве под именем midlettocoreletlib.jar. Внутри архива есть файл version.txt с версией библиотеки и изменениями в ней.

Перед тем как отвечать или задавать вопрос...
...в этой теме - прочтите ее. Ну, хотя бы начиная с 4ой страницы, ну хотя бы последние 3 страницы.
Любой повторно заданный вопрос будет удален, автор будет наказан понижением рейтинга от меня (если у меня плохое настроение) и от ds3v (если у него плохое настроение :))

Убедитесь что вы пишете в нужную тему. Вот смежные темы:
Virtual Corelet - тема по VirtualCorelet, корелету на базе которого и работают библиотеки. И стандартным плагинам.
MIDlets to VirtualCorelet - тема создана, чтобы выкладывать рабочие плагины, можете поискать там, можете даже попросить.
VirtualCoreletManager - программа переделывает мидлеты в плагины, устанавливает/удаляет их в/из VirtualCorelet.
MIDlet4Moto - программа переделывает мидлет в корелет. Работает на базе Virtual Corelet Single.
Старайтесь писать в тему, то есть не надо обсуждать глюки звука в джиме в теме VirtualCorelet.
В этой теме запрещены просьбы дать сборки или плагины.


Если мидлет-плагин работает, но не так как мидлет-мидлет...
...пишем сюда, описываем подробно свои действия и результат, что было при этом запущено и т.п.
Лог MIDway приветствуется. Как его снимать написано на первой странице этой темы.

Что такое Form, Item?
Form это контейнер, который хранит и отображает Item's. Например, настройки программы MiniCommander это Form, настройки и окно ввода UIN и Password в Джиме это тоже форма.
Item это элемент формы, например поле для ввода, чекбокс или просто текст, например окно помощи MiniCommander, полоска изменения длительности подсветки в модах оперы.

Раньше мидлет работал, теперь нет. (Или что такое Rms)?
Скорее всего, дело в rms. Rms мидлетов-плагинов не имеет никакого отношения к файлу /с/mobile/kjava/j2meX.rms и хранится кучей (у всех мидлетов) в папки /b/Corelet/Rms (или в /c/ у кого нет флэшки, в момент сохранения!) с расширением .crms (corelet rms) при удалении VC оно ни коим образом не чистится. Удалите вручную.
Форматы файлов *rms и *crms несовместимы. Формат *crms прост, если нужен стучите.
Постоянное развитие библиотек не добавляет стабильности, поэтому не удаляйте старые библиотеки сразу как скачали новые.

У меня текст налезает на фон / проблемы с прозрачностью / появляется расплывчатость.
Дело в скине телефона, либо в DRM. Поставьте стандартный скин, или тот, на котором такого эффекта нет. Например, у меня на HotMixL7 это был скин Moto.
Потом поставил стандартный DRM и скины, работает прекрасно.

Набираю текст в корлете, в это время входящий вызов, после жму ОК и тело перезагружается
Эта ошибка не в библиотеках, это ошибка в самой системе корелетов. Такая ошибка была всегда и везде и она пока не правится ничем.
Valleo ни раз говорил как обойти ошибку "косвенным путем" - нажимаем меню, "вырезать весь текст". отмена, красная кнопка, запускаем обратно, открываем поле ввода, меню, вставить текст -> и продолжай дальше набирать.

Можно ли портировать плагины из/в MediaViewer?
Если это invisible плагины то можно без проблем. Если visible тоже можно (оперу же портировали :)) НО заниматься этим я=Ponemetski и Valleo не будем!

Можно ли запустить одновременно два и более плагина?
Да, ради этого все и затевалось. От, таких вопросов иногда стекаешь под стол.

Как свернуть плагин чтобы потом запустить другой?
От, таких вопросов тоже стекаешь под стол.
Свернуть плагин-мидлет можно длинным зажатием смарт кнопки (та что сбоку). А так же нажатием на метку, по которой открывается корелет (обычно меню+5), правда это скорее глюк чем способ сворачивания.
Стоит заметить, что на стандартных флексах с кнопками проблем не возникало.
Иногда не сворачивается из-за того что закончилась память.
Специально для нестандартных флексов в новых версиях смарт кнопка продублирована с зеленой.

Закончилась память, что делать?
Выгрузить корелет и загрузить снова. Также можно просто перезагрузить телефон.

Проблемы с памятью?
Проблемы с памятью есть и 99% будут всегда. Это особенность Java2 Micro Edition. Class файлы распаковываются в heap (память) при первом их использовании. Выгрузить их нет НИКАКОЙ возможности.
Помимо классов туда же в heap загружаются строки, рисунки, и вообще все. Вот это разработчики мидлетов могут почистить, некоторые это делают, называя это "Автоочистка памяти".

Как дела с проектом?
Я (Ponemetski) к большому сожалению не могу больше его продолжать. Исходники я передал ds3v. Если вы хотите продолжить разработку то можете их попросить у него (и у меня, но это менее оперативно). А также прочитайте тему "Разработка корелетов" и этого подфорума.

Сообщение отредактировал Ponemetski - 20.8.2007, 11:23
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ponemetski
сообщение 21.3.2007, 14:00


Мастер
****

Группа: Пользователи
Сообщений: 237
Регистрация: 23.1.2006
Пользователь №: 66 921
Модель телефона: L7
Прошивка: 08.D0 EOR_RB

Рейтинг: 104.5



Вы когда-нибудь хотели чтобы джим и опера стали плагинами к корелету?
Вы когда-нибудь спрашивали об этом?
Отвечаю. Это возможно!

MIDlet2Corelet - это библиотеки мидлета, вручную переписаные под использование их в корелете.
Работает это так: мы заменяем ссылки на некоторые классы в мидлете на свои ссылки к своим классам. То есть проводим минимальную переделку мидлета и получаем готовый плагин к VirtualCorelet. Переделка уже готового мидлета без исходников уже возможна, подробнее: MIDlet2Plugin - переделываем мидлеты в плагины

Трудность заключается в классах из след. пакетов:
javax.microedition.lcdui
javax.microedition.rms
javax.microedition.midlet
они ДОСТУПНЫ из корелета, НО неприменимы в нем.
Соответственно необходимо их написать, чтобы они использовали классы корелета и удовлетворяли профилю MIDP-2.0. То есть наши классы должны содержать тот же набор методов и действовать также.

Теперь перейдем к практике.
javax.microedition.midlet.* уже готов, спасибо Valleo что показал как сделать, чтобы MIDlet запускался как плагин
javax.microedition.lcdui.* многое готово, спасибо Valleo что объяснил многое в работе корелетов
javax.microedition.rms.* тоже готов уже.

Прошу не писать сообщения типа "дайте готовый VC с плагином опера и джим" и заведомо ерунду. Буду ставить -1. (пока еще ни одного не поставилsmile.gif) Вопросы задавать можно и нужно, но после внимательного прочтения по крайней мере 2ух последних страниц темы.

Сообщение отредактировал Ponemetski - 18.6.2007, 10:49
Прикрепленный файл rms.rar   ( 71.48 килобайт ) Кол-во скачиваний: 5453
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Motohobiman
сообщение 22.3.2007, 5:55


Мотофан
*******

Группа: Почётные мотофаны
Сообщений: 1 749
Регистрация: 3.5.2006
Из: Ukraina
Пользователь №: 81 710
Модель телефона: Е1,E2,U9,L6,W510.
Прошивка: Слава Украине!


Настроение:
Вечный мотодроллер;)



Рейтинг: 908



Я скачал,дома буду разбиратся.ВНИМАНИЕ - Кто реально будет помогать дам +5 к рейтингу !
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
kola87
сообщение 23.3.2007, 15:30


Опытный
***

Группа: Пользователи
Сообщений: 122
Регистрация: 25.8.2005
Из: Украина, г. Луганск
Пользователь №: 49 645
Модель телефона: Motorola c380>>>V360
Прошивка: ACR<>B7R мигрант:)

Рейтинг: 15.5



Осторожный вопрос) Реализация джимма как плагина даст ему работу в фоновом режиме?

Ponemetski: да и даже паралельно с другими плагинами-мидлетами :-)

Сообщение отредактировал Ponemetski - 23.3.2007, 17:45
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Motohobiman
сообщение 25.3.2007, 8:38


Мотофан
*******

Группа: Почётные мотофаны
Сообщений: 1 749
Регистрация: 3.5.2006
Из: Ukraina
Пользователь №: 81 710
Модель телефона: Е1,E2,U9,L6,W510.
Прошивка: Слава Украине!


Настроение:
Вечный мотодроллер;)



Рейтинг: 908



Не надо забивать на это дело,ведь своего рода революцию делаете в мире явы моторолы...Ощущение что кодить умеют пять человек на форуме и всё.Друзья помогайте.Вопрос а ВК не может перехватывать(разбирать) и редактировать классы компиленого мидлета или на уровне хекс редактора примитивно править их?

Ponemetski:
можно прочитать по байтам классы с флешки (и скорее всего из jar) поправить асолютно как хочется, но нельзя запустить классы с флешки на выполнение это раз, и нельзя записать правленые классы в jar это два.

правда есть один способ =)
в теме по МВ обсуждали, типа открываем jzipman ом jar корелета
правим его классы в другом мидлете
обратно жмем в jzipman е в jar
заменяем j2me0.jar или переустанавливаем полученый правленый корелет
пользуемся новым корелетом

НО,
этого я (и Valleo) делать не будем! по многим причинам

Сообщение отредактировал Ponemetski - 25.3.2007, 9:21
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ponemetski
сообщение 25.3.2007, 9:36


Мастер
****

Группа: Пользователи
Сообщений: 237
Регистрация: 23.1.2006
Пользователь №: 66 921
Модель телефона: L7
Прошивка: 08.D0 EOR_RB

Рейтинг: 104.5



Забивать конечно не планирую smile.gif Сам очень хочу Оперу (Джимом не пользуюсь почти).
Просто сложно это и каждый маленький глюк отнимает по 3 часа а таких в 100 Кб кода хуча.

например еще 2 дня я хотел заняться List, но написал проверочный мидлет с использованием TextBox и Alert и ахнул...

сейчас все (или не все smile.gif) 4 серьезных глюка подавлены
- мидлеты=плагины нормально работают в фоне
любой мидлет можно свернуть длинным нажатием smart key (-102)
- заработал CharEditorDialog, ну то есть после нажатия в нем красной мидлет больше не виснет наглухо
- и еще кое-что, если я начну писать про это убегут последние читатели темы )

кто хочет может поиграться с прикрепленым VC
там есть пункт меню Integral, но плагина там нет, так что при нажатии ничего не произойдет
поиграться можно с плагином TestMIDlet

тут у людей серьезные проблемы с установкой, якобы прошивка патченая... ) ребят, а у меня какая по вашему?
короче
1 - переименовать VirtualCorelet.jar.zip в VirtualCorelet.jar
2 - поставить МММ через jar
3 - если надо, поставьте атрибт Signed (как у других corelet)

Добавлено позже (25.3.2007, 12:43):
черт побери, когда же это с вложениями кончится...

Добавлено позже (25.3.2007, 12:48):
http://chyvak.fatal.ru/downloads/VirtualCorelet.jar уже переименованый (
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ponemetski
сообщение 26.3.2007, 16:19


Мастер
****

Группа: Пользователи
Сообщений: 237
Регистрация: 23.1.2006
Пользователь №: 66 921
Модель телефона: L7
Прошивка: 08.D0 EOR_RB

Рейтинг: 104.5



Немного тему почистил ))) Надеюсь никто не обидится.

Valleo,
rms не правил пока, обязательно займусь, это не так сложно потомучто это единственное что можно потестить на wtk эмуляторе. Кстати, как я понял, в корне дисков /a/ и /c/ папки нельзя создавать, так?

http://chyvak.fatal.ru/downloads/VirtualCo..._Integral_2.jar - новые lcdui работает получше
http://chyvak.fatal.ru/downloads/Integral_as_VC_plugin.rar - исходный код плагина Integral, если кому интересно, ну и GLP лицензия требует его выкладывать
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Valleo
сообщение 26.3.2007, 16:47


Гуру
******

Группа: Почётные мотофаны
Сообщений: 728
Регистрация: 21.10.2005
Из: Находка
Пользователь №: 55 219

Рейтинг: 692.5



Ponemetski,
Нет, там нельзя создавать папки.
Только в picture/audia/video можно создавать папки.

ЗЫ: сделал бы rms тогда бы и интеграл работал полностью =) так как именно из-за рмс видимо оно не функционирует нормально (так как при остановке песни в rms записывается ее текущее состояние).

Ponemetski: нет при остановке песни он пишет в оперативку а при выходе пишет в рмс и в файл плейлист на диске. Хотя хз. Там и без рмс глюки. Не всегда закрывается не пишет в файл плейлист...

Сообщение отредактировал Ponemetski - 26.3.2007, 18:32
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Imperiuz
сообщение 27.3.2007, 5:25


Опытный
***

Группа: Пользователи
Сообщений: 127
Регистрация: 26.8.2005
Из: Н.Тагил
Пользователь №: 49 742
Модель телефона: C650,E398,E2,myX7-2
Прошивка: MaXx-e2

Рейтинг: 30



А если джим будет в корелете в фоне висеть, и будет запущена опера, хипа хватит на все это дело? или и к примеру собрать с помощью multime джима и оперу и, когда это станет возможным, сделать этот мидлет плагином- хватит ли хипа? И вообще, сколько под корелет отводится памяти?.

Ponemetski:
корелету доступно 1450 к хипа, 200 кушает VC. Но нельзя сказать точно сколько там останется после запуска чего-либо.
ограничение на размер jar 1 мб
multitime нет смысла использовать, они и так одновременно работают

Сообщение отредактировал Ponemetski - 27.3.2007, 6:47
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ponemetski
сообщение 27.3.2007, 13:24


Мастер
****

Группа: Пользователи
Сообщений: 237
Регистрация: 23.1.2006
Пользователь №: 66 921
Модель телефона: L7
Прошивка: 08.D0 EOR_RB

Рейтинг: 104.5



Multitime это offtop, пока :-)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
aT-DeviLru
сообщение 28.3.2007, 9:31


Интересующийся
**

Группа: Пользователи
Сообщений: 82
Регистрация: 22.10.2005
Из: Санкт-Петербург
Пользователь №: 55 373
Модель телефона: Nokia 6120
Прошивка: Symbian 9.2

Рейтинг: 10



-Joker-, пишет что у него всё отлично пашет, а вот я скачал последний интеграл VirtualCorelet_with_Integral_2, так 1й плагин работает на отлично testmidlet, а вот интеграл виснет при перемещениях, при нажатии на клавиши, после конца мелодии, раза 4 перезагружался, потом надоело удалил, видать лаги из-за рмс...

Ponemetski: я знаю там лаги если длинно нажимать

Сообщение отредактировал Ponemetski - 28.3.2007, 9:52
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
GALL
сообщение 29.3.2007, 10:08


Гуру
******

Группа: Почётные мотофаны
Сообщений: 706
Регистрация: 25.12.2004
Из: Барнаул
Пользователь №: 29 674
Модель телефона: Iphone 4s
Прошивка: IOS 7.1.1
Победитель конкурса 2008

Рейтинг: 274



Уважаемые ява-кодеры! Объясните вот что. Как я понимаю, неясным остается взаимодействие плагина VC с файлом настроек rms? Может уже начать переписывать классы той же оперы или Jimm/MIP? Может дать несведующим какие-то задачи по ручному изменению ссылок в классах мидлетов? Или всё тупо упирается в начальные знания по J2ME несведующих, без которых нельзя участвовать в данном проекте?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ponemetski
сообщение 29.3.2007, 11:29


Мастер
****

Группа: Пользователи
Сообщений: 237
Регистрация: 23.1.2006
Пользователь №: 66 921
Модель телефона: L7
Прошивка: 08.D0 EOR_RB

Рейтинг: 104.5



Взаимодействие плагина и файла j2me0.rms совершенно ясно. Они уже не связаны (со вчерашнего дня smile.gif)
Переписывать классы оперы и др не надо. Это будет уже не запуск мидлетов.
Ручная работа будет потом когда все библиотеки будут готовы.
По поводу начальных знаний:
например для переписывания рмс нужно хорошо знать яву, знать англ, иметь опыт написания мидлетов.
а для остального надо знать еще структуру корелетов и иметь развитую интуицию smile.gif
зы еще раз спасибо Valleo за то что растолковал некоторые вещи

Добавлено позже (29.3.2007, 14:33):
То есть для написания рмс нужны были начальные знания а я бы объяснил остальное. А теперь я уже не смогу объяснить так как сам вижу многое первый раз

Сообщение отредактировал Ponemetski - 29.3.2007, 11:37
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ponemetski
сообщение 29.3.2007, 13:30


Мастер
****

Группа: Пользователи
Сообщений: 237
Регистрация: 23.1.2006
Пользователь №: 66 921
Модель телефона: L7
Прошивка: 08.D0 EOR_RB

Рейтинг: 104.5



rms готов!
Обширных тестов еще не было, но интеграл теперь нормально сохраняет настройки.
Качаем в файловом архиве проекта файл VirtualCorelet_Integral_rms1.jar
Ссылка у меня в подписи.

Добавлено позже (29.3.2007, 16:58):
Глюки интеграла остались как я и предполагал...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Valleo
сообщение 29.3.2007, 14:24


Гуру
******

Группа: Почётные мотофаны
Сообщений: 728
Регистрация: 21.10.2005
Из: Находка
Пользователь №: 55 219

Рейтинг: 692.5



Даже странно настройки сохраняются корректно но вот при окончании песни и при длительном зажатии клавиши навигации глюки остались... Ты до сих пор не разбирался почему возникает глюк при длительном зажатии?.

Ponemetski:
не было времени я разбирался с List и rms. Глюк похож на deadlock то есть два потока ждут друг друга. Системный поток вызывает keyDown и ждет его завершения а внутри идет ожидание например события keyUp которое произойдет только после завершения keyDown... В общем круговорот. Это скорее всего проблема моего Canvas хотя не точно. Теперь про List. В общем нужна *горячая замена* listItem и listItem с картинкой причемони могут *стоять рядом*. Такое возможно?

Сообщение отредактировал Ponemetski - 29.3.2007, 15:14
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ponemetski
сообщение 29.3.2007, 17:46


Мастер
****

Группа: Пользователи
Сообщений: 237
Регистрация: 23.1.2006
Пользователь №: 66 921
Модель телефона: L7
Прошивка: 08.D0 EOR_RB

Рейтинг: 104.5



Посмотрите размер рмс файла интеграла b.Corelet.Rms.Options.crms or c.Options.crms у меня он 0 байт смотрел мини командером. Хотя настойки сохраняются именно в нем... ???
у меня лежит на кингстон на 512

Добавлено позже (29.3.2007, 20:59):
Valleo, он жрет хип как танк хотя у меня вроде gc стоит в конце. Это моя ошибка? У мв вроде стабильно около 850 свободно вне зависимости ну плагинов. А когда в вк нажимаешь heapinfo там gc вызывается?

Добавлено позже (29.3.2007, 21:01):
Я помню ты говорил про push но там же не 200 push

Добавлено позже (29.3.2007, 21:11):
Это мини ком глюхит опера показывает 411 байт. Голова уже болит это всего этого

Сообщение отредактировал Ponemetski - 29.3.2007, 17:47
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Valleo
сообщение 29.3.2007, 18:15


Гуру
******

Группа: Почётные мотофаны
Сообщений: 728
Регистрация: 21.10.2005
Из: Находка
Пользователь №: 55 219

Рейтинг: 692.5



Ponemetski,
b.Corelet.Rms.rms.Options.crms - 0 байт
b.Corelet.Rms.Options.crms - 422 байт (мну кажется сохраняет сюда)
c.Options.crms - нету такого
Смотрел через МВ.


Цитата
А когда в вк нажимаешь heapinfo там gc вызывается?

Да вызывается. Если в VC запустить все родные плагины а потом их остановить - хип восстановится в пределе 1.2мб -> идет вычищение памяти в destroy(). В плагинах на основе мидлетов мне кажется нереально будет сделать вычищение памяти (обмунление векторов, остановка таймеров и их обнуление и .т.п) - так что это будет та еще проблемка =)

Кстати советую сохранять не в
b.Corelet.Rms.Options.crms
а хотя бы
b.Corelet.Rms.{PluginName}.Options.crms

Сообщение отредактировал Valleo - 29.3.2007, 18:18
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ponemetski
сообщение 30.3.2007, 6:33


Мастер
****

Группа: Пользователи
Сообщений: 237
Регистрация: 23.1.2006
Пользователь №: 66 921
Модель телефона: L7
Прошивка: 08.D0 EOR_RB

Рейтинг: 104.5



стоило сразу написать:

midlet2corelet.rms - v0.4 от 27,03,07

К сожалению мы получаем сильную путаницу, когда два мидлета используют
RecordStores с одинаковым именем. Поэтому рекумендую в начале названия
RecordStore указывать уникальную информацию о мидлете:
RecordStore.openRecordStore("OperaMod125_history", true);

На счет безопасности, ее нет. любое приложение с правими может
прочитать и отправить (скажем по инету) все ваши /c/mobile/kjava/*.rms
и, естевственно, /b/Corelet/Rms/*.crms

особенности:
- файлы RecordStore хранятся в папке /b/Corelet/Rms/ с расширением .crms
- у телефонов без флешки в корень /c/ с расширением .crms
- файлы *.crms не имеют ничего общего и моторольными *.rms
(если у кого-нибудь есть формат моторольных, можно их сделать совместимыми, в лучшие времена)
- String[] listRecordStores()
возвращает список всех .crms файлов всех мидлетов=плагинов, лучше ее не использовать
имена записей, возвращаемых этой функцией могут отличаться от оригинала в случае
употребления в них спец символов, спец символы заменятся на "_"
- openRecordStore(String recordStoreName, String vendorName, String suiteName)
все равно что: openRecordStore(String recordStoreName, false);
- openRecordStore(String recordStoreName, boolean createIfNecessary, int authmode, boolean writable)
все равно что: openRecordStore(String recordStoreName, boolean createIfNecessary);
- в остальном работает так же как и javax.microedition.rms.RecordStore

todo:
- использовать системный путь, в который класть папку Rms/ а не просто /b/Corelet/

Valleo, сохранить в /b/Corelet/Rms/{PluginName}/ я не моу потому что RecordStore открываес так:
RecordStore rs = RecordStore.openRecordStore(String recordStoreName, boolean createIfNecessary);
внутри openRecordStore я не могу узнать каой класс меня вызвал из какого пакета... провда можно вместе с кадым плагином класть свой rms (package Plugins.Some.midlet2corelet.rms) и тогда он сможет определить где находится и сохранить в свою папку, но проще проследить чтобы recordStoreName не совпадали.

По поводу памяти, у мидлетов "The destroyApp() method shall release all resources held and perform any necessary cleanup so it may be garbage collected." провда слово shall вместо MUST ) в общем это серьезная проблема, но с ней жить можно, пускай разработчики мидлетов нормально их разрушают.
В самом худшем случае у нас будет по мидлету на один корелет + родные плагины. Но это в худшем )
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ponemetski
сообщение 30.3.2007, 10:01


Мастер
****

Группа: Пользователи
Сообщений: 237
Регистрация: 23.1.2006
Пользователь №: 66 921
Модель телефона: L7
Прошивка: 08.D0 EOR_RB

Рейтинг: 104.5



мне удалось побороть еще 2 глюка,
1 теперь интерал доиграв песню спокойно играет следующую, а не умирает
2 при длинном нажатии он ведет себя как задумано автором, а не умирает )
добавив это к тому что он
3 нормально сохраняет настройки
4 и сворачивается по длинному нажатию smart клавиши, то есть можно пользоваться другими плагинами слушая музыку интегралом
мы получим вполне стабильную работу

глюки были связамы с синхронизацией serviceRepaints() у Canvas, пока решено топорно, в планах сделать номально. Код интеграла менять не пришлось, однако исходник перезалит в файловый архив.

качаем файл VC_Integral_3_stable.jar из архива в моей подписи и тестируем

зы. проблема с памятью актуальна, так что пробуем запустить интеграл посмотреть сколько он съел, еще раз запустить еще посмотреть. может она очистится когда дойдет до 0...

зы2. будет еще VC_Integral_3_final где будут исправлены меню "О программе..." и "Системный журнал..." и другие найденные баги

слова "глюк интеграла" следует читать как "глюк библиотеки midlet2corelet, проявившийся в плагине интеграл" сам по себе интеграл почти безглючен

вот
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Valleo
сообщение 30.3.2007, 10:28


Гуру
******

Группа: Почётные мотофаны
Сообщений: 728
Регистрация: 21.10.2005
Из: Находка
Пользователь №: 55 219

Рейтинг: 692.5



Ponemetski,
Ну вот теперь интеграл реально работает нормально, т.е. Cancas ты почти полностью завершил - это уже огромный плюс wink.gif
Ну с РМС - да бог с ним, если что при переделке классов можно искать строки openRecordStore и искать в них имена, и заменять на новые уникальные (например сделать такую программу).

Ты главное сейчас разберись с текущими глюками (рмс, канвас) а потом уже приступай к лист и форм - чтобы у тебя голова была свободная =)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ponemetski
сообщение 30.3.2007, 10:43


Мастер
****

Группа: Пользователи
Сообщений: 237
Регистрация: 23.1.2006
Пользователь №: 66 921
Модель телефона: L7
Прошивка: 08.D0 EOR_RB

Рейтинг: 104.5



Alert и TextBox тоже готовы )))

осталось:
List
Form
Item и потомки

ты прав вначале нормально разберусь и Canvas
rms нормально работает скорее всего это его финальная версия
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Valleo
сообщение 30.3.2007, 10:48


Гуру
******

Группа: Почётные мотофаны
Сообщений: 728
Регистрация: 21.10.2005
Из: Находка
Пользователь №: 55 219

Рейтинг: 692.5



Ponemetski,
Кстати поэскперементировал с памятью.
Запустил раз 10 интергал - "сожралось" около 300 КБ. Причем первые 200 КБ сожралось при первом запуске. Ну тут уже понятно - корелет грузит в память твои новые классы m2c и не выгружает их оттуда потом, используя их уже при новых запусках.
Собственно можно так сказать - килобайт 400-500 будут выжирать классы-основа (сам M2C) остальное будет предоставленно под нужды плагинов...

ЗЫ: уже задумываюсь начать адаптировать VC именно под твои классы, избавляясь от других видов плагинов - если так будет с памятью то лишние килобайты нам не помешают =) Собственно когда будет все более менее готово необходимость в типовых плагинах (такие как SMS@Sender или плеер) отпадет...
ЗЫЫ: только мне надо точно знать какие классы из UIbase и Modules ты используешь (если используешь).
ЗЫЫЫ: так что напиши их сюда =)) или мне в аську... а я начну потихонечку избавляться от них wink.gif
ЗЫЫЫЫ: хотя фиг с ним - думаю такие простенькие плагины тоже не помешают (например не слушать музыку из громоздкого Интеграла а из встроенного плеера-плагина wink.gif )

Сообщение отредактировал Valleo - 30.3.2007, 10:53
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ponemetski
сообщение 30.3.2007, 11:02


Мастер
****

Группа: Пользователи
Сообщений: 237
Регистрация: 23.1.2006
Пользователь №: 66 921
Модель телефона: L7
Прошивка: 08.D0 EOR_RB

Рейтинг: 104.5



package midlet2corelet.midlet;

class MIDlet

import UIBase.UIInterface;
import VirtualCorelet.Plugin.PluginLoader;

----
package midlet2corelet.lcdui;

class Display

import VirtualCorelet.CoreletState;
import VirtualCorelet.DisplayListener;

----
копия UIDecorator лежит в midlet2corelet.lcdui - планировалось сделать из нее что-то типа добавления/удаления нижней софт полосы в горячем режиме. но пока лежит копия

----
все smile.gif

ps. я знал что будем избавляться smile.gif

ps2. мне кажется нужно оставить возможность запускать плагины от UIBase, я уже подсел на synerj классы, возвращаться к javax.microedition скучно smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Motohobiman
сообщение 30.3.2007, 11:03


Мотофан
*******

Группа: Почётные мотофаны
Сообщений: 1 749
Регистрация: 3.5.2006
Из: Ukraina
Пользователь №: 81 710
Модель телефона: Е1,E2,U9,L6,W510.
Прошивка: Слава Украине!


Настроение:
Вечный мотодроллер;)



Рейтинг: 908



Буквально сегодня думал спросить мастера Valleo,кто будет делать плагины к ВК,теперь вопрос уже решается в сторону м2к.Маладца опять на высоте !Скачал мидлетБейскик:-))),как я смеялся долго...Да и серйозно как подцеплять будете плагины мидлеты ,принцип МВ ? Нужна консоль для этого нормальная.Имхо.

Добавлено позже (30.3.2007, 15:19):
Допустим один мидлет ещё увяжется,а если их 5 штук тогда как делать смертным,вариант ренейма классов не пройдёт наверное?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ponemetski
сообщение 30.3.2007, 11:34


Мастер
****

Группа: Пользователи
Сообщений: 237
Регистрация: 23.1.2006
Пользователь №: 66 921
Модель телефона: L7
Прошивка: 08.D0 EOR_RB

Рейтинг: 104.5



Мы тут посовещались с Valleo, решили оставить оба типа плагинов :)

Motohobiman, подцеплять я буду только оперу125, джим052, minicom22, для других мидлетов напишу методику (примерно как ты делал Integral, немного расширенную). Думаю появятся программы которые делают это автоматом.
Увязать можно сколько угодно мидлетов лишь бы памяти и размера jar хватило

Добавлено позже (30.3.2007, 14:37):
причем джим052 из исходников
а оперу и миником попрошу перекомпилировать авторов, надуюсь не откажут

Добавлено позже (30.3.2007, 14:41):
НО это обсуждать пока рано
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
sader
сообщение 30.3.2007, 15:03


Интересующийся
**

Группа: Пользователи
Сообщений: 53
Регистрация: 19.1.2007
Из: Р-ка Карелия, г. Сегежа
Пользователь №: 117 834
Модель телефона: e398

Рейтинг: 8



Я тоже экспериментировал с памятью, так вот: после того как ее стало меньше 600K появились глюки: Интеграл стал сильно тормозить и начал обрабатывать короткие нажатия, как длинные (при коротком нажатии джоя вверх-вниз перескакивал на 2-3 строчки, а при нажатии кн. Меню вылезала надпись "Метки запрещены"). После ~40 запусков, когда памяти не осталось, VC полностью завис.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ponemetski
сообщение 2.4.2007, 16:15


Мастер
****

Группа: Пользователи
Сообщений: 237
Регистрация: 23.1.2006
Пользователь №: 66 921
Модель телефона: L7
Прошивка: 08.D0 EOR_RB

Рейтинг: 104.5



VC_M2C_Integral_4_final.jar в архиве
переработал некоторые вещи в Displayable Canvas

+
похоже теперь интеграл работает полностью
при выходе происходит очистка памяти в Display

-
теперь при каждом запуске он есть 50 kb а при первом 200 (раньше было 20 и 200)
не знаю почему .( пока

смотрим, тестируем, пишем
перед установкий нужно будет удалить VirtualCorelet, так я теперь компилирую его полностью из всех исходников...
когда все это будет нормально работать разберусь с названием

Добавлено позже (2.4.2007, 20:38):
Там еще второй плагин, выход из него кнопка громкость вниз. У кого ее нет не запускайте. Он память не кушает вроде
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Motohobiman
сообщение 2.4.2007, 18:02


Мотофан
*******

Группа: Почётные мотофаны
Сообщений: 1 749
Регистрация: 3.5.2006
Из: Ukraina
Пользователь №: 81 710
Модель телефона: Е1,E2,U9,L6,W510.
Прошивка: Слава Украине!


Настроение:
Вечный мотодроллер;)



Рейтинг: 908



Ponemetski, скажи пожалуйста какой плагин идёт вторым,и если не трудно выкладывай и подпись,что-то у меня траблы без нее..

Ponemetski: второй плагин просто фигня рисует весь экран черным и все. Вроде он с подписью... Если не работает можно заменить в jar manifest.mf на старый

Сообщение отредактировал Ponemetski - 2.4.2007, 18:55
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Motohobiman
сообщение 5.4.2007, 10:12


Мотофан
*******

Группа: Почётные мотофаны
Сообщений: 1 749
Регистрация: 3.5.2006
Из: Ukraina
Пользователь №: 81 710
Модель телефона: Е1,E2,U9,L6,W510.
Прошивка: Слава Украине!


Настроение:
Вечный мотодроллер;)



Рейтинг: 908



Ponemetski, Как дела на СофтФронтах ,чем занимаеться уважаемый разработчик ?(сори за флуд)

Ponemetski: опера wink.gif если все пойдет хорошо то ко вторнику... только тихо об этом smile.gif
Сказать можо одно - Круто !

Сообщение отредактировал Motohobiman - 5.4.2007, 14:14
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Valleo
сообщение 5.4.2007, 14:28


Гуру
******

Группа: Почётные мотофаны
Сообщений: 728
Регистрация: 21.10.2005
Из: Находка
Пользователь №: 55 219

Рейтинг: 692.5



Цитата
опера если все пойдет хорошо то ко вторнику... только тихо об этом Сказать можо одно - Круто !

Ну если ты сделал все возможные формы, которые она использует... =)).


Ponemetski: я делаю официальную miniopera2... Она не использует Form. A List уже почти готов. Это конечно не навороченый мод но все же опера smile.gif

А чтож сразу не 3-ю? =) Лист там вроде нигде я посмотрел не используется... Только текст боксы и канвас. Собственно это будет самый лучший вариант - использовать стандартную, не навороченную, версию - почти полный заменитель встроенного броузера =)

Сообщение отредактировал Valleo - 6.4.2007, 14:45
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ponemetski
сообщение 7.4.2007, 7:33


Мастер
****

Группа: Пользователи
Сообщений: 237
Регистрация: 23.1.2006
Пользователь №: 66 921
Модель телефона: L7
Прошивка: 08.D0 EOR_RB

Рейтинг: 104.5



3 часа переделывал оперу javabite ом. Падает vc при вызове getAppProperty с ClassFormatError: bad method signature
скорее всего из за криво переделаного класса

короче нужен исходный код оперы желательно с минимальным моддингом

Сообщение отредактировал Ponemetski - 7.4.2007, 11:35
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Motohobiman
сообщение 7.4.2007, 14:29


Мотофан
*******

Группа: Почётные мотофаны
Сообщений: 1 749
Регистрация: 3.5.2006
Из: Ukraina
Пользователь №: 81 710
Модель телефона: Е1,E2,U9,L6,W510.
Прошивка: Слава Украине!


Настроение:
Вечный мотодроллер;)



Рейтинг: 908



Ponemetski, блин западло,буду пробовать сейчас к DS достучатся или это не нужно ?

Ponemetski: нужно... Лучше если это будет первый мод самый простой...

Регистрируюсь на форуме буду просить официльно.

Сообщение отредактировал Motohobiman - 7.4.2007, 19:59
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ponemetski
сообщение 7.4.2007, 20:22


Мастер
****

Группа: Пользователи
Сообщений: 237
Регистрация: 23.1.2006
Пользователь №: 66 921
Модель телефона: L7
Прошивка: 08.D0 EOR_RB

Рейтинг: 104.5



Заранее спасибо. Скажи что мне не нужны его фишки из модов. Если хочет пусть зарубит фм загрузку. Главное сам каркас. Идеальный вариант это родные исходники офиц 1 ой 2 ой или 3 ей
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Tim2005
сообщение 7.4.2007, 20:31


Мастер
****

Группа: Пользователи
Сообщений: 177
Регистрация: 18.3.2005
Из: Ижевск
Пользователь №: 39 009
Модель телефона: MotoROKR Duo
Прошивка: 4ER Mod

Рейтинг: 230



А че если эти классы декомпилировать с помощью DJ Java Decompiler, исправить и снова откомпелировать. Зачем с javabite'ом мучаться.

Ponemetski: там 3 класса по 50 кб и 10 по 1 му. Первые три очень трудно будет декомпилить причем на одном из них dj виснет.
Tim2005 если есть возможность попробуй капни в этом направлении

Сообщение отредактировал Ponemetski - 8.4.2007, 6:19
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ponemetski
сообщение 9.4.2007, 10:13


Мастер
****

Группа: Пользователи
Сообщений: 237
Регистрация: 23.1.2006
Пользователь №: 66 921
Модель телефона: L7
Прошивка: 08.D0 EOR_RB

Рейтинг: 104.5



List готов (был уже в субботу).
Кстати он используется во всех операх (полседние url, серектор выбора домена на маил ру)

до четверга нет времени вообще, но есть пару идей почему падает,
в любом случае наличие исходников сильно ускорит и поможет.

в архиве mini_opera_2.jar у меня не декомпилируются a.class и b.class, они весят примерно по 50 Кб) пробовал DJ Java Decompiler 3.7
буду рад если кто-нибудь сможет декомпилить и выложит сюда
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Valleo
сообщение 9.4.2007, 10:59


Гуру
******

Группа: Почётные мотофаны
Сообщений: 728
Регистрация: 21.10.2005
Из: Находка
Пользователь №: 55 219

Рейтинг: 692.5



Вот декомпил оперы.
Декомпилир другим декомпилером =)

Ponemetski: спасибо

Сообщение отредактировал Ponemetski - 9.4.2007, 12:41
Прикрепленный файл opera_mini_2.zip   ( 71.84 килобайт ) Кол-во скачиваний: 128
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ponemetski
сообщение 10.4.2007, 6:43


Мастер
****

Группа: Пользователи
Сообщений: 237
Регистрация: 23.1.2006
Пользователь №: 66 921
Модель телефона: L7
Прошивка: 08.D0 EOR_RB

Рейтинг: 104.5



интересная задачка:

Код

AMS_SetAccCableMode. mode = 2. Current mode = 3. Result mode = 2
AMS: Serial: port[1] Connection established.
com.motorola.synerj.fw.FrameworkMIDlet@ea0ef881 100

csState set: 4

----- APP JK_VMEVENT_APPSTARTED callback begin.

AMS: VM_APPLICATION_STATE_CHANGED, 20
----- APP JK_VMEVENT_APPSTARTED callback end.

[AMSDLG] : AmsDlgExit by event=8220 route id=46.
[AMSDLG] : AmsDlgGainFocus route id=43.
[AMSDLG]: process event_list code=20 route id=43..
JTOOLS : Event 0x14 has come
[AMSDLG] : AmsDlgExit by event=31 route id=43.
DATAFLOW ERROR: 20, 64
csState set: 2

KJAVA ssc_SoftkeyCallback: 0; 1
[VMPROXYKeyEventRegister]: index: first = 6 last = 6
Initialization Opera!Mini2 is finished

pushDisplay()

getDisplay(): new midlettocoreletlib.lcdui.Display@84aee8b

pushDisplay(): Splash-screen pushed

pushDisplay(): Displayable pushed: null

Call launch

getDisplay(): midlettocoreletlib.lcdui.Display@84aee8b

getAppProperty: applet

getAppProperty: Operette-UA

getDisplay(): midlettocoreletlib.lcdui.Display@84aee8b

getDisplay(): midlettocoreletlib.lcdui.Display@84aee8b

getDisplay(): midlettocoreletlib.lcdui.Display@84aee8b

ALERT: java/lang/NoSuchMethodError: No such method getGraphics.()Lmidlettocoreletlib/lcdui/Graphics;.

[b]//  касяк в том что при вызове функции класса javax.microedition.lcdui.Image
//  getGraphics() она возвращает javax.microedition.lcdui.Graphics
//  а мы ждем midlettocorelet.lcdui.Graphics
//  решением может быть возврат к midlettocorelet.lcdui.Image
//  но тогда будет касяк с com.motorola...ScalableJPEGImage
// ?[/b]

kvm_main return code = 127

----- JB_VMEVENT_VM_STOPPED callback begin.

AMS: VM_APPLICATION_STATE_CHANGED, 4
----- JB_VMEVENT_VM_STOPPED callback end.

core exit status: 127

AMS: AMS_VM_START_RETURNED, -127
[ProxyMan] NET_NetworkDisconnect NetworkDisconnect(vmId:0)
AMS: VM_APPLICATION_STATE_CHANGED, 26
[FGP] Destroyed: proxyId = 0x00000003
[VMproxyExit]: entering
AMS: AMS_SUITE_DATA_SIZE, 266548
AMS: MSM_ST_WRREC


ps. да да Initialization Opera!Mini2 is finished

Добавлено позже (10.4.2007, 9:51):
"midlettocoreletlib".length() == "javax.microedition".length()

Сообщение отредактировал Ponemetski - 10.4.2007, 6:45
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Valleo
сообщение 10.4.2007, 7:21


Гуру
******

Группа: Почётные мотофаны
Сообщений: 728
Регистрация: 21.10.2005
Из: Находка
Пользователь №: 55 219

Рейтинг: 692.5



Ponemetski,
Насколько я понял придется переписывать еще Image класс для этих целей, так?
Цитата
"midlettocoreletlib".length() == "javax.microedition".length()

Но как видно ты уже это сделал =)?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ponemetski
сообщение 10.4.2007, 9:24


Мастер
****

Группа: Пользователи
Сообщений: 237
Регистрация: 23.1.2006
Пользователь №: 66 921
Модель телефона: L7
Прошивка: 08.D0 EOR_RB

Рейтинг: 104.5



Он был переписан изначально я его убрал. Если добавить можно но тогда надо запретить мотороловский ScalableJPEGImage

я пока просто заменил имена пакетов на midlettocoreletlib чтобы легко править class файлы
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Valleo
сообщение 10.4.2007, 11:10


Гуру
******

Группа: Почётные мотофаны
Сообщений: 728
Регистрация: 21.10.2005
Из: Находка
Пользователь №: 55 219

Рейтинг: 692.5



Ponemetski,
а что его запрещать? Не могу вникнуть...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ponemetski
сообщение 10.4.2007, 12:15


Мастер
****

Группа: Пользователи
Сообщений: 237
Регистрация: 23.1.2006
Пользователь №: 66 921
Модель телефона: L7
Прошивка: 08.D0 EOR_RB

Рейтинг: 104.5



Valleo, вот смотри

так работает ScalableJPGImage:
ScalableJPGImage jpegImg = ScalableJPGImage.createImage("/image.jpeg");
javax.microedition.lcdui.Image javaImg = jpegImg.getImage();

а у нас в мидлете нет больше javax.microedition.lcdui.Image extends Object
есть только midlettocoreletlib.lcdui.Image extends Object
(в том случае, если я перепишу класс Image)

в результате имеем (нас имеет) NoSuchMethodError и падение VC

+ midlettocoreletlib.lcdui.Image extends javax.microedition.lcdui.Image сделать не получится так как у javax.microedition.lcdui.Image private конструктор

я бы не волновался если бы в опере не было строк
getClass().forName("com.motorola.ext...ScalableJPGImage");

off: скачал наконец русский VC, поставил туда интеграл, не удаляя остальные плагины (обычно удалял для тестов), запустил и понял... вот оно... будущее... просто и гениально... с иконками смотрится СУПЕР!

------------------------

Проблему удалось решить с другой стороны, теперь удален еще и
midlettocoreletlib.lcdui.Graphics

off: у меня контрольная точка в четверг, надо еще выучить кучу всего, но не могу себя заставить...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
MIDlet2Corelet - из мидлета в плагин к корелету, Разработка библиотек · iTunes, MediaViewer, Virtual CORElet · Forum
 

9 страниц V  1 2 3 > » 
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28.7.2025, 3:44

Форум живёт: