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

Разработка Corelet, По русски: корелетов

Valleo
сообщение 22.9.2006, 8:12


Гуру
******

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

Рейтинг: 692.5



Здесь вы можете задавать вопросы по ньюнсам разработки корелетов для телефонов Motorola.

По неофициальной информации Моторола будет внерять synerj классы в новые сотовые телефоны, я даже имею на руках 2ой корелет от Моторолы для новых марок телефонов.
Так что думаю для моторол корелеты - не пройденный этап.
А значит - разработке новых корелетов стоит уделить внимание, особенно мы знаем что многие из них уже и сейчас хорошо пашут на E1, L7, V360.

И так, что для программирования корелетов нужно:
J2SE SDK (ява-платформа, последняя)
Sun Java Wireless Toolkit - для компилирования проектов
Прямая ссылка на WTK для скачивания
ВНИМАНИЕ! Для скачивания WTK требуется регистрация!
Библиотеки:
Прикрепленный файл Библиотеки.rar   ( 185.81 килобайт ) Кол-во скачиваний: 1055

В архиве - [stubclasses, java_extensions](классы моторолы), [motoex, ScalableJPGImage](дополнительные классы)

Для того чтобы заняться программированием CORElet-ов нужно знать хотя бы основы программирования простых MIDlet-ов.
Далее в теме я буду приводить все возможные варианты использования дополнительных библиотек при создании корелетов. Надеюсь на помощь Grafmoto и Vassio, как комрадов в этом деле.
Прикрепленный файл Библиотеки.rar   ( 185.81 килобайт ) Кол-во скачиваний: 1055
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 22.9.2006, 13:07


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



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


Гуру
******

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

Рейтинг: 692.5



И так, теперь я начну постепенно выкладывать свои знания на страницах этой темы.
Начнем с азов.

Все библиотеки надо положить в папку
C:\WTK23\lib\ext
и подключить к вашему проекту.

А теперь подробнее о настройке проекта и подключения дополнительных библиотек:
Прикрепленное изображение
Пояснение к скриншоту:
Не обязательно ставить все птички в нижней форме, здесь это почти не имеет значения.
Прикрепленное изображение
Пояснение к скриншоту:
Key: SynerJ-CoreApp-0
Value: путь к ГЛАВНОМУ, стартовому, классу корелета, который берет на себя нагрузку запуска корелета
(связки Key-Value может быть несколько, только нужно изменять цифру 0 в key на 1, т.е. 0,1,2... Например в iTunes так реализованно 2 корелета в одном - сам iTunes и фоновый режим iTunes(не удивляйтесь))
Прикрепленное изображение
Пояснение к скриншоту:
должны быть поставлены птички на ВСЕ библиотеки, кроме "sm-ui-api".
Прикрепленное изображение
Пояснение к скриншоту:
Поле Name - имя корелета
Поле Icon - путь к иконки корелета
Поле Class - ВНИМАНИЕ! - здесь пишем com.motorola.synerj.fw.FrameworkMIDlet

Примерно в jad файле после сохранения должна быть такая картина:
Код
MIDlet-1: MediaViewerApplet, /mvgraph/ic_smalllogo.png, com.motorola.synerj.fw.FrameworkMIDlet
MIDlet-Icon: /MediaViewer/mvgraph/ic_smalllogo.png
MIDlet-Jar-Size: 170289
MIDlet-Jar-URL: MediaViewerApplet.jar
MIDlet-Name: MediaViewerApplet
MIDlet-Vendor: Valleo
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.0
SynerJ-CoreApp-0: MediaViewer.MediaViewer


А теперь распишу основные классы synerj, которые позволяют корелетам работать на телефоне.
И так:

(com.motorola.synerj.ui.PrimaryDisplay)
PrimaryDisplay - основной класс-переключатель, который и выводит все на экран телефона (прототип Display в простых MIDlet). Через него именно мы выводим информацию на экран, но информация должна быть обязательно представленна в стандартизированном виде через наследования следующего класса...
Пример использования:
Код

//Создаем объект Display типа PrimaryDisplay для дальнейшей работы с ним
PrimaryDisplay Display = PrimaryDisplay.getPrimaryDisplay();
//Устанавливаем этот объект "слушателем" событий телефона и корелета, для дальнейшей обработки этих событий
Display.setListener(this);
//А теперь проталкиваем информацию на дисплей...
//View - наследуется от PrimaryView (читаем ниже)
Display.pushView(View);
//И запускаем отображение
Display.start();


(com.motorola.synerj.ui.PrimaryDisplayListener)
PrimaryDisplayListener - "слушатель" событий, от этого класса должен наследоваться основной класс корелета.
Пример:
Код

public class MainClass implements PrimaryDisplayListener{
  public MainClass(){}

  //А это как раз сами "слушатели" событий
  //Это событие совершается когда происходит start, или когда просто корелет получает фокус,
  //т.е. становится полностью видимым
  public void gainFocus(PrimaryDisplay PD){}

  //Событие на потерю фокуса, т.е. текущее окно корелета было прикрыто чем-либо другим (например пришла смс)
  public void loseFocus(PrimaryDisplay PD){}

  //Событие возникает когда происходит stop, т.е. PD уничтожается
  public final void destroyed(PrimaryDisplay PD){}
}


(com.motorola.synerj.ui.PrimaryView)
PrimaryView - как раз тот стандарт, который содержит в себе информацию и обработчики графического происхождения.
Должен существовать дополнительный класс, который будет наследоваться от класса PrimaryView, в котором мы уже сами вручную будем обрабатывать прорисовку экрана и т.п. (примера не будет - если что спрашивайте, как пример можно использовать класс от MediaViewer MediaViewer_PV.class).
Об этом классе позже.

(com.motorola.synerj.fw.event.EventHandler)
(com.motorola.synerj.fw.event.EventManager)

EventHandler - "ловец" событий, должен быть наследован главным классом (для главного класса - обязательно, для остальных - как захотите)
EventManager - через этот класс можно ригистрировать и отсылать события, которые при будут получены через EventHandler (т.е. теперь 2 и более любых пользовательских класса могут обмениваться информацией через эти функции, не имея друг с другом никакой связи)
При наследовании класс, который наследует EventHandler, должен содержать в себе метод handleEvent

Расширяем наследование главного класса:
Код

//Добавляем EventHandler
public class MainClass implements PrimaryDisplayListener, EventHandler{
  public MainClass(){}

  //Новый метод, который и будет отлавливать события
  public final void handleEvent(Object String, int Int, Object Object){}

  public void gainFocus(PrimaryDisplay PD){}
  public void loseFocus(PrimaryDisplay PD){}
  public final void destroyed(PrimaryDisplay PD){}
}


Теперь для чего нужен EventHandler. Как раз ОН запускает корелет. Запуск корелета связан с событием запуска корелета.
Приведу пример с описанием:
Код

public class MainClass implements PrimaryDisplayListener, EventHandler{
  public MainClass(){
    //Ригистрируем событие ITUNES_START_DOD (я толком не разобрался для чего оно нужно)
    EventManager.registerEventHandler("ITUNES_START_DOD", this);
    //Ригистрируем событие ITUNES_START_PLAY (запуск корелета)  
    EventManager.registerEventHandler("ITUNES_START_PLAY", this);
    //Ригистрируем событие PROXY_EVENT_RED_KEY (нажатие на красную кнопку)
    EventManager.registerEventHandler("PROXY_EVENT_RED_KEY", this);
  }

  public final void handleEvent(Object String, int Int, Object Object){
   //Перехватываем события для дальнейшей обработки
   if((String)MV_String == "ITUNES_START_PLAY"){

    }  
    if((String)MV_String == "PROXY_EVENT_RED_KEY" && MV_Int != 0){

    }
  }

  public void gainFocus(PrimaryDisplay PD){}
  public void loseFocus(PrimaryDisplay PD){}
  public final void destroyed(PrimaryDisplay PD){}
}


Ну думаю в принципе длжно быть понятно как запускается корелет - т.е. мы отлавливаем ITUNES_START_PLAY и стартуем наш Display с нашим View.
Позже я выложу пример стартового класса, опишу PrimaryView и выложу пример корелета с исходниками.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
KosteT
сообщение 26.9.2006, 15:30


Ветеран
*****

Группа: Пользователи
Сообщений: 361
Регистрация: 8.3.2005
Из: Иркутск
Пользователь №: 38 391
Модель телефона: LG Duos
Прошивка: duos

Рейтинг: 122



Valleo,
Я конечно извеняюсь, но как подключить библиотеки в wtk 2.2 (2.3 качать не прёт!!!) нормальным способом, т.е. не добавляю вручную в стандартные *.jar ? У меня в папке wtk2.2/lib папки ext нет, а создание её не помогает....
А проблем в netbeans`е 5.0 не будет? т.е. обязательно втк компилить?



Я тут подумал: а может ты обшипся и надо положить в J2sdk1.4.2_08\jre\ext\lib например ?????

Сообщение отредактировал KosteT - 26.9.2006, 15:54
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Valleo
сообщение 26.9.2006, 22:35


Гуру
******

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

Рейтинг: 692.5



2 KosteT:
В WTK 2.2 библиотеки положи в папку lib в самом проекте и ничего подключать уже не надо - они сами заработают. В 2.3 такой метод не прокатывает =)
Скоро продолжу описание классов.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
~Gangs2er~
сообщение 5.10.2006, 14:39


MotoSkinner
****

Группа: Разработчики
Сообщений: 248
Регистрация: 4.8.2006
Из: Екатеринбург
Пользователь №: 93 787
Модель телефона: (M) E398
Прошивка: У вас такой нету))

Рейтинг: 217.5



А в wtk 20 куда класть?

Valleo, в втк 20 вообще нет таких вкладок как на скринах. Кроме вкладки midlets. Пожалусто объясни как настроить втк 20
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
KosteT
сообщение 5.10.2006, 14:57


Ветеран
*****

Группа: Пользователи
Сообщений: 361
Регистрация: 8.3.2005
Из: Иркутск
Пользователь №: 38 391
Модель телефона: LG Duos
Прошивка: duos

Рейтинг: 122



~Gangs2er~,
Смею предположить что в папке с твоим проектом есть папка lib, вот туда и надо класть!

Valleo: да именно в папку lib. Я писал об этом... =)

Сообщение отредактировал Valleo - 6.10.2006, 3:00
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
~Gangs2er~
сообщение 13.11.2006, 17:43


MotoSkinner
****

Группа: Разработчики
Сообщений: 248
Регистрация: 4.8.2006
Из: Екатеринбург
Пользователь №: 93 787
Модель телефона: (M) E398
Прошивка: У вас такой нету))

Рейтинг: 217.5



Valleo, а на мидлет паскале реально подключить эти библиотеки?

Valleo: нет, да и что ты сможешь на МП сделать? =)

Сообщение отредактировал Valleo - 14.11.2006, 2:02
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
CompleteFailure
сообщение 20.1.2007, 19:49


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

Группа: Пользователи
Сообщений: 43
Регистрация: 12.10.2005
Пользователь №: 54 285
Модель телефона: l7

Рейтинг: 1



Valleo, а где ты достал эти классы? Есть ли для них мотороловское описание (девелопер гайд) или ты работаешь с ними вслепую?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Valleo
сообщение 24.1.2007, 6:08


Гуру
******

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

Рейтинг: 692.5



CompleteFailure,
Есть такая тема "проект медуза".
По ней Графмото создавал "пустышки", т.е. вполне работающие при компиляции классы, содержащие только названия функций и переменных.
По этим пустышкам и разрабатывался корелет, пока я не надыбал фулл классы, и не изучил их структуру. Так появился VC и идет его разработка. MV тоже перенял многое из полных классов.
Гайдов нету никаких. Я думаю только на нескольких форумах тебе толком смогут объяснить, что такое корелет... и только Я, Графмото, Тим2005 смогут тебе объяснить саму суть и как оно можно разработать =) Ну и конечно моторола, у них есть 100% гайды, но они не публичны, т.к. корелеты имеют оооооочень огромные права, практически неограниченные (особенно на прошивках от Электро и Ганджафуза).
Так что все в слупею, все методом тыка. Если учесть что я с нуля познавал яву (полгода назад) - то для меня это вообще что то большее =) Мидлеты простые мне писать намного сложнее, чем корелеты =-) Там юзать надо все стандартное, здесь все выдумываешь сам.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Разработка Corelet, По русски: корелетов · iTunes, MediaViewer, Virtual CORElet · Forum
 

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

 



Текстовая версия Сейчас: 29.4.2024, 9:55

Форум живёт: