Forums.Avtograd.Ru: Java 2 Micro Edition - Forums.Avtograd.Ru

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Java 2 Micro Edition Программирование java-приложений для мобильников

#1 Пользователь офлайн   Роман Шувалов

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 198
  • Регистрация: 02 Ноябрь 07

Отправлено 03 Январь 2008 - 11:28

Предлагаю в этой теме обмениваться опытом программирования J2ME (для мобильных телефонов). Это дело немного специфическое, и эти вопросы в общей теме (Java) не очень уместны. Программирование на j2me - занятие очень интересное и полезное (и достаточно простое), надеюсь, найдём собеседников по этой теме :)

Сразу же вопрос, для знающих:
пример из книжки, шарик двигается по нажатию клавиш. ничего сложного. Я решил вывести на экран информацио о состоянии свободной памяти. при каждой прорисовке кадра:
Runtime r = Runtime.getRuntime();
вывожу String.valueOf(r.freeMemory());


и сталкиваюсь с интересным и странным явлением: с каждым кадром свободной памяти становится всё меньше и меньше (память сжирается огромными темпами - около 10 кб/с) и как только цифра доходит до нуля 0 - сразу же вновь свободной памяти становится около 500 кб и обратный отсчёт повторяется. жить можно, но что это за фокусы? никаких объектов не создаётся (кроме Runtime, который должен автоматически удаляться, r = null пробовал) - в чём же дело?
Роман
0


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Другие ответы в этой теме

#2 Пользователь офлайн   TRUTHFUL

  • Пользователь
  • PipPip
  • Группа: Модераторы
  • Сообщений: 412
  • Регистрация: 01 Ноябрь 07

Иконки сообщения  Отправлено 03 Январь 2008 - 13:11

Просмотр сообщенияШувалов Роман (3.1.2008, 11:28):

Предлагаю в этой теме обмениваться опытом программирования J2ME (для мобильных телефонов). Это дело немного специфическое, и эти вопросы в общей теме (Java) не очень уместны. Программирование на j2me - занятие очень интересное и полезное (и достаточно простое), надеюсь, найдём собеседников по этой теме :)

Сразу же вопрос, для знающих:
пример из книжки, шарик двигается по нажатию клавиш. ничего сложного. Я решил вывести на экран информацио о состоянии свободной памяти. при каждой прорисовке кадра:
Runtime r = Runtime.getRuntime();
вывожу String.valueOf(r.freeMemory());


и сталкиваюсь с интересным и странным явлением: с каждым кадром свободной памяти становится всё меньше и меньше (память сжирается огромными темпами - около 10 кб/с) и как только цифра доходит до нуля 0 - сразу же вновь свободной памяти становится около 500 кб и обратный отсчёт повторяется. жить можно, но что это за фокусы? никаких объектов не создаётся (кроме Runtime, который должен автоматически удаляться, r = null пробовал) - в чём же дело?

1 Java у нас знают очень мало народу и если создать две темы, то они обе будут пустовать.
2 Неделю тема без постов и я ее закрываю.
3 Тебе нужно просто напросто ознакомиться с особенностями работы интерпретируемых языков в общем и Java в частности.
4 Соотетственно почитай про сборщик мусора.
5 Кстати возможно null это тоже данные, а вот что-то типа nothing будет более правильно (не уверен).
Истина где-то рядом... Пускай там и остается!
0

#3 Пользователь офлайн   Роман Шувалов

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 198
  • Регистрация: 02 Ноябрь 07

Отправлено 03 Январь 2008 - 13:54

1,2. ну коли так, то очень жаль. посмотрим. если никого и не будет - и правда, тему можно закрыть.
3. мало чего по j2me в инете могу найти. книжка книжкой, но там только основные моменты. удивляет то, что эти фокусы именно в примере из книжки.
4. сборщик мусора можно вызвать, но нельзя его заставить убирать мусор: можно только "посоветовать" (а дальше он уж сам решает). вызывал. видимо, в данном случае он решил меня не послушаться.
5. объект удаляется, когда на него не остаётся ссылок. это происходит либо после выполнения блока (вне блока переменная недоступна, следовательно объект удаляется). object = null это "принудительное" удаление ссылки еще в середине блока, еще одна "рекомендация" яве, мол, как выполнишь присваивание - обрати внимание, на объект ссылки не осталось, не удалишь ли? но это всё просьбы в вежливой форме, которые ява, видимо, игнорирует и только при полном отсутствии памяти одним махом удаляет всё накопленное. попробую поискать инфу, как общаться с явой не просьбами почистить память, а требованиями сделать это.
Роман
0

#4 Пользователь офлайн   TRUTHFUL

  • Пользователь
  • PipPip
  • Группа: Модераторы
  • Сообщений: 412
  • Регистрация: 01 Ноябрь 07

Отправлено 03 Январь 2008 - 14:10

Просмотр сообщенияШувалов Роман (3.1.2008, 13:54):

1,2. ну коли так, то очень жаль. посмотрим. если никого и не будет - и правда, тему можно закрыть.
3. мало чего по j2me в инете могу найти. книжка книжкой, но там только основные моменты. удивляет то, что эти фокусы именно в примере из книжки.
4. сборщик мусора можно вызвать, но нельзя его заставить убирать мусор: можно только "посоветовать" (а дальше он уж сам решает). вызывал. видимо, в данном случае он решил меня не послушаться.
5. объект удаляется, когда на него не остаётся ссылок. это происходит либо после выполнения блока (вне блока переменная недоступна, следовательно объект удаляется). object = null это "принудительное" удаление ссылки еще в середине блока, еще одна "рекомендация" яве, мол, как выполнишь присваивание - обрати внимание, на объект ссылки не осталось, не удалишь ли? но это всё просьбы в вежливой форме, которые ява, видимо, игнорирует и только при полном отсутствии памяти одним махом удаляет всё накопленное. попробую поискать инфу, как общаться с явой не просьбами почистить память, а требованиями сделать это.

Нет, ты не понял. Java машина сама решит когда ей наилучшим образом очистить память. Она будет это делать или по времени, или по необходимости, но никак не по требованию программиста. Это просто такая идеология.
Истина где-то рядом... Пускай там и остается!
0

#5 Пользователь офлайн   Роман Шувалов

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 198
  • Регистрация: 02 Ноябрь 07

Отправлено 03 Январь 2008 - 14:41

Вычитал я вот откуда:
http://www.piter.com...va.phtml?fil=14 пишет:

Цитата

Хотя Java не позволяет явно уничтожать ненужные объекты, вы можете непосредственно вызвать сборщик мусора, используя метод gc класса Runtime. Класс Runtime также содержит метод runFinalization для вызова ожидающих блоков завершения (finalizers).


gc() я пробовал, а вот про runFinalization только что узнал. правда не знаю, есть ли он в Micro Edition.

там же написан "полный сборщик мусора":

public static void fullGC() {  <BR>	 Runtime rt = Runtime.getRuntime();<BR>	 long isFree = rt.freeMemory();<BR>	 long wasFree;<BR>	 do {<BR>		  wasFree = isFree;<BR>		  rt.gc();			isFree = rt.freeMemory();<BR>	 } while (isFree >> wasFree);<BR>	 rt.runFinalization();<BR>}


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

_______
P.S. устал бороться с ipb - исправлять код больше не буду, надоело...
Роман
0

#6 Пользователь офлайн   Роман Шувалов

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 198
  • Регистрация: 02 Ноябрь 07

Отправлено 03 Январь 2008 - 22:07

Алиллуя.
просто напросто надо было выполнить gc() в конце блока (перед закрывающей фигурной скобкой).
а runFinalization в j2me нет.
Роман
0

#7 Пользователь офлайн   Roco Loco

  • Активный пользователь
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 754
  • Регистрация: 01 Ноябрь 07

Отправлено 05 Январь 2008 - 22:57

А вот я нифига не знаю j2me, поэтоиу дайте плиз ссылки (желательно в осла) на софт и справочник.
МММ-2011. Помогу зарегистрироваться. Бесплатно проконсультирую.
Сайт: piramida63.ru
Телефон указан на сайте.
0

#8 Пользователь офлайн   Роман Шувалов

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 198
  • Регистрация: 02 Ноябрь 07

Иконки сообщения  Отправлено 08 Январь 2008 - 10:53

я учу по книжке Горнакова С.Г. "Программирование мобильных телефонов на Java 2 Micro Edition". она есть в осле, но очень плохого качества (ищи по слову "Горнаков"). так что я ее купил в обычном виде. рублей 200 стоит. к ней же прилагается диск со всякими полезностями, часть из которых я выкладываю в осла (последние версии всего этого можно скачать и с www.sun.com).

Инструменты:

с головой хватит вещички под названием Wireless Toolkit (WTK). для его запуска понадобится Java Runtime Environment (JRE).

послений Wireless Toolkit (2.5.2).
раньше его основная панель называлась KToolbar, но сейчас она так и называется - Wireless Toolkit. в нём же - целая туча примеров.
ed2k://|file|sun_java_wireless_toolkit-2_5_2-windows.exe|38886222|4F66557D7C95109548AFF8855C09F507|

(далее - достаточно старые, но рабочии версии)

java 2 sdk
ed2k://|file|j2sdk-1_4_2_03-windows-i586-p.exe|50646389|3336C66CBBF3CB68CD4BE62FA811E41A|

java 2 runtime environment - необходим для wtk и прочего
ed2k://|file|j2re-1_4_1_02-windows-i586.exe|8273304|667501DBB75812C7BB2755F4A587127D|

старый wireless toolkit (версия 2.1) - за существованием новой версии неактуален
ed2k://|file|j2me_wireless_toolkit-2_1-windows.exe|15025756|5F68B5B8B01F9E7B48F5296CE09960EB|

это не знаю что такое
ed2k://|file|ffj_me_win32.exe|24412675|160D40AF84B4BBF858604500F55CD827|

----
P.S. подправил ed2k-ссылки, всё после h=... надо было стереть.
Роман
0

#9 Пользователь офлайн   Demin Max

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 13
  • Регистрация: 11 Ноябрь 07

Отправлено 09 Январь 2008 - 21:04

Полная версия (со всеми плагинами, включя MobilityPack) Netbeans 6.0:

Windows:

ed2k://|file|netbeans-6.0-windows.exe|175683615|165D5CC68C894E235C8E0F54464520F7|/

Linux:

ed2k://|file|netbeans-6.0-linux.sh|176884736|EB8E68D1B4D632DC9B1469B836746E52|/

Исходники (староваты - качались летом):

ed2k://|file|netbeans-6.0-200711261600-src.zip|298952190|FD322F4953CA9C840B7D01DE5AE12F3A|/
0

#10 Пользователь офлайн   Роман Шувалов

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 198
  • Регистрация: 02 Ноябрь 07

Отправлено 11 Январь 2008 - 09:32

Demin Max, за NB спасибо (качаю...), скачал его без MobilityPack и уже так лень было перекачивать с ним. теперь хоть посмотрю.

а с WTK работал? я поставил wtk 2.5.2, перекидываю проект из \wtk21 в \wtk2.5.2 - а он при первом запуске мне его копирует в C:\Documents and Settings\...\j2mewtk\2.5.2\apps\ - что же, мне с ним там и работать?
Роман
0

#11 Пользователь офлайн   Demin Max

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 13
  • Регистрация: 11 Ноябрь 07

Отправлено 14 Январь 2008 - 23:02

Просмотр сообщенияШувалов Роман (11.1.2008, 9:32):

Demin Max, за NB спасибо (качаю...), скачал его без MobilityPack и уже так лень было перекачивать с ним. теперь хоть посмотрю.

а с WTK работал? я поставил wtk 2.5.2, перекидываю проект из \wtk21 в \wtk2.5.2 - а он при первом запуске мне его копирует в C:\Documents and Settings\...\j2mewtk\2.5.2\apps\ - что же, мне с ним там и работать?


С WTK не работал. Да и вообще с J2ME еще не работал, только облизываюсь всё. Времени не хватает. Я под саму платформу Netbeans кое-что пишу с использованием Visual Library. Отличная вещь (вообще платформа Netbeans).
0

#12 Пользователь офлайн   Demin Max

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 13
  • Регистрация: 11 Ноябрь 07

Отправлено 14 Январь 2008 - 23:14

Кстати, вот несколько screencasts по теме Netbeans:

ed2k://|file|netbeans6-screencasts-editor2-flv.rar|9815259|A6A64A3258AC6FA0E47CF5234D2FAF08|/

Этот конкретно по теме Mobility Pack:
ed2k://|file|netbeans6-screencasts-mob-flv.rar|10344289|C8AF83A57B6C5D57EC1944A651CBC9DD|/

ed2k://|file|netbeans6-screencasts-profiler-flv.rar|11705866|0865838F525011492AD23FEF9E977A20|/

ed2k://|file|netbeans6-screencasts-si-flv.rar|6831166|574D1F174096A88C9CD16AB8C9195468|/

ed2k://|file|netbeans6-screencasts-296-2-flv.rar|10339507|26BBAB26BC61AD5494467716526275DF|/

Все конечно же на английском, но, даже если с языком трудно, может и так будет понятно. ;)
0

#13 Пользователь офлайн   Роман Шувалов

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 198
  • Регистрация: 02 Ноябрь 07

Отправлено 15 Январь 2008 - 20:47

С языком не трудно, мануалы же читаю на английском :) в нашем деле без него никак. Спасибо!

P.S. не дублируй сообщения из общей темы JAVA - там я тоже смотрю.
Роман
0

#14 Пользователь офлайн   5bukv

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 27
  • Регистрация: 11 Июнь 08

Отправлено 11 Июнь 2008 - 11:46

Тема должна жить!
Как найду время так сразу все это изучу!
Надеюсь влиться в Ваши ряды!
0

#15 Пользователь офлайн   up-mobile

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 147
  • Регистрация: 23 Май 08

Отправлено 20 Август 2008 - 18:17

как png для иконки в проект добавить в нетбеансе?
рисую
0

#16 Пользователь офлайн   TRUTHFUL

  • Пользователь
  • PipPip
  • Группа: Модераторы
  • Сообщений: 412
  • Регистрация: 01 Ноябрь 07

Отправлено 20 Август 2008 - 21:59

Просмотр сообщенияup-mobile (20.8.2008, 19:17):

как png для иконки в проект добавить в нетбеансе?

Я точно уже не помню, но разве нетбеанс относится к ME? Ты на экзешник хочешь иконку в PNG? Если да, то никак, если нет, то посмотри примеры, понятно станет я думаю.
Истина где-то рядом... Пускай там и остается!
0

#17 Пользователь офлайн   up-mobile

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 147
  • Регистрация: 23 Май 08

Отправлено 20 Август 2008 - 23:58

с мобилити пак отностися =)

дело довольно хитро оказалось. надо было создать отдельный source packeg и добавить туды png 16х16. а потом в опциях проекта выбрать из списка.


http://narod.ru/disk...nsport.zip.html - вот шаблон нахимичил =)

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

#18 Пользователь офлайн   Ben-S

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 81
  • Регистрация: 01 Ноябрь 07

Отправлено 21 Август 2008 - 09:33

NetBeans - это не просто IDE, это платформа из которой можно сделать все что угодно (если написать свои модули :) ). Посмотрите презентацию от Sun
0

#19 Пользователь офлайн   Curt

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 198
  • Регистрация: 01 Ноябрь 07

Отправлено 19 Апрель 2009 - 20:51

Кто нибудь может сейчас поделиться средой разработки под j2me, хочу попробовать, а не в чем :-)
Те ссылки что выше уже устарели, по ним скачать ничего не удается...
0

#20 Пользователь офлайн   3.14

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 195
  • Регистрация: 01 Ноябрь 07

Отправлено 21 Апрель 2009 - 16:00

Подойдет даже Eclipse+ плагин к нему для соответствующей модели телефона. Хотя подойдет любая среда для Java (j2me - это стандарт для разработки приложений на основе языка программирования Java.). Сам стандарт + пример приложения есть на сайте sun.java.com
0

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

2 человек читают эту тему
0 пользователей, 2 гостей, 0 скрытых пользователей