Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > Отладка на девайсе


Автор: redrick 28.2.2006, 01:04
Возможно, эта тема тоже слишком специфчна чтобы словить хотя бы пару ответов, однако имхо довольно актуальна и важна.
Всем известна проблема переноса приложения с эмулятора на реальный девайс. И когда на девайсе чтото не работает нужно как то это ловить и отлаживать. Тут приходят на помощь всякие ухищрения типа писания логов на девайсе и вставление сигнальных алертов - но этож извтрат.

Собственно вопрос : умеет ли кто отлаживать мидлеты на девайсах ?
В свое время тыкаясь в проблему пришел к NetBeans - она в сочетании с какимто пакетом вроде давала такую возможность хотя у меня так и не вышло. Там я так понял прделагалась возможность отладки байт кода(и то хлеб) подсоединяя девайс через COM.

Поделитесь опытом ?

Автор: Dancer 28.2.2006, 10:54
через COM ты можешь выводить всё что угодно.
Вот у меня например есть специальный класс Logger в нём можно указать, хотим выводить в файл в файловую систему телефона (JSR-75), System.out, или и туда и туда.
так же есть возможность сделать вывод лога в COM порт. Для этого используем код в мидлете, который при вызове ждёт, что в телефон будет подключен шнур (который другим концом воткнут в комп, получаем номер порта в телефоне как правило он 0). На компе у тебя свой номер COMX будет. Далее весь System.out направляется в этот поток.
На компе можно пользоваться хоть HyperTerminal (Windows), либо определёное устройство в Linux
Так же не плохо работается на Мотороле при использовании MIDway весь лог как на ладони smile

Автор: redrick 28.2.2006, 11:23
Цитата(Dancer @ 28.2.2006, 10:54 Найти цитируемый пост)
Для этого используем код в мидлете, который при вызове ждёт, что в телефон будет подключен шнур (который другим концом воткнут в комп, получаем номер порта в телефоне как правило он 0)

не подскажешь через какие АПИ это делать ?

да - и еще - собственно логи это хорошо, но хочется всетки отладку. Ну то есть брейкпойнты там всякие. Понятно что можно обойтись эквивалентными логами, но все же.

Автор: Dancer 28.2.2006, 12:32
чтобы тебе дебажить можно было прям с телефона, на сколько я знаю тут JTAG нужен (железяка такая специальная)
Вот здесь я уже приводил код, и есть беседа о работе через COM
http://forum.vingrad.ru/index.php?showtopic=57782&hl=

Автор: redrick 28.2.2006, 12:36
спасибо, буду пробовать

Автор: javastic 28.2.2006, 13:41
Специальной железяки не надо, по крайней мере если установлен SDK от Sony Ericssson.
Там есть виртуальный On Debug Device который если выбрать в эмуляторе, то код через Device Proxy заливается на телефон и выполняется прямо на нём, при этом текст для отладки будет выводится с реального телефона например в среду разработки. Можно ставить точки останова.

Лично у меня есть USB шнурок через который я это всё проделываю. Стоит он 500 рубл., я думаю это копейки в сравнении с мучением. smile


Автор: Dancer 28.2.2006, 14:02
Но я так понимаю это будет лишь для Ёриксонов работать? или вообще для любых производителей?

Автор: redrick 28.2.2006, 15:05
Цитата(javastic @ 28.2.2006, 13:41 Найти цитируемый пост)
Там есть виртуальный On Debug Device который если выбрать в эмуляторе, то код через Device Proxy заливается на телефон и выполняется прямо на нём, при этом текст для отладки будет выводится с реального телефона например в среду разработки. Можно ставить точки останова.

о какой IDE идет речь? ты вроде бы NetBeans пользовался - она?

и еще я чтото не нашел там On Debug Device - логи вижу а точки останова ставить не получается

Автор: javastic 28.2.2006, 15:37
неБинсом пробовал.


Dancer, я думаю это всё зависит от производителя SDK. Может у кого-то тоже есть, честно говоря я просто не обращал внимания.

Автор: redrick 2.3.2006, 10:54
вощем кривизна моих рук оказалась превышающей критическую - On Device Debug на ерике так и не запахал - ну хоть дампы в конслоь буду смотреть =)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)