Создание «упаковочных пакетов» или «дополнения» для Midlets?

StackOverflow https://stackoverflow.com//questions/11710420

  •  13-12-2019
  •  | 
  •  

Вопрос

Как это в настоящее время:

Я делаю небольшое приложение для телефонов с поддержкой Java (Midlet на основе «тупых телефонов», не Android). Приложение структурировано так:

  1. "Инфраструктура", с основной функциональностью
  2. Модули типа A (классы, реализующие интерфейс ModuleA)
  3. Модули типа B (классы, реализующие интерфейс ModuleB)
  4. Модули типа A и B в основном классы, которые создаются в инфраструктуре, основанные на том, что пользователь выбирает из списка, и они делают вещи по своему определенному способу. Подумайте «Стратегический узор». Когда пользователь использует приложение, она исследует экраны, предоставляемые инфраструктурой, затем поступает в список модулей типа A (видит их названия). Затем она выбирает один из модулей, которые создаются и делает что-то для нее.

    Что я желаю

    Мне было интересно, если возможно (и если да, как) упаковывать всю инфраструктуру в файле JAR, но держать модули типа A и модули типа B в других файлах JAR, которые могут быть установлены на устройстве в устройстве будущее (как надстройки для инфраструктуры). Я думаю об этом сценарии:

    1. Пользователь устанавливает инфраструктуру
    2. Пользователь устанавливает дополнение «стартера», которая доступна одновременно, что и инфраструктура
    3. недели спустя, новое дополнение создается разработчиком, например, «специальные рождественские модули», которые пользователь мог установить, поэтому инфраструктуру, уже установленные на ее устройстве , перечислите Модули в дополнении
    4. Один год спустя другой дополнение, содержащий модули с другими функциями и идеями
    5. Во-первых, могут быть установлены такие дополнения на мобильном устройстве? Должен ли они содержать класс Midlet (ничего не делая и не уведомляя инфраструктуру)? Может ли инфраструктуру определить эти банки, которые содержат дополнения для моего приложения? Или может ли инфраструктуру взаимодействовать с классами, упакованными в других банках?

      Примечание: только инфраструктурная банка будет содержать полезный класс Midlet. Кроме того, дополнения будут содержать любую комбинацию модулей типа A и модулей типа B.

      <Сильное> Возможное решение? (неполный, хотя)

      Может быть, добавки могут выглядеть, действовать и пахнуть как приложение Midlet для самого устройства, поэтому их можно установить как любое обычное приложение Midlet. Добавки могут объявить себя частью одного и того же набора, что и инфраструктура, поэтому они могут уведомить свое присутствие в инфраструктуру, написав на его записящее хранилище (я понимаю, что есть запись в Midlet Suite ). Инфраструктура читает новые записи и знает, что у него есть дополнительные модули. Может ли он получить доступ к классам в комплекте в добавлении мидлетных банок и создать их создание?

Это было полезно?

Решение

Что вы описываете для достижения, не поддерживаются спецификациями MIDP.Среди прочего, у вас не может быть несколько банок, принадлежащих к тому же мидлету.

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

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

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

Это будет много работы.Вы можете вполне может в конечном итоге сделать мидлет, которая слишком большой, чтобы быть установлена на много телефонов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top