Создание модульных приложений Android в Eclipse

В настоящее время я переношу фреймворк для создания приложений на J2ME на Android. Этот фреймворк состоит из нескольких проектов, которые компилируются в библиотеки (jars). Каждый отдельный JAR может содержать графические данные (ресурсы, экраны J4ME и т. д.). Каждый проект обычно имеет четко определенную точку входа (модуль). Когда кто-то хочет создать приложение с использованием фреймворка, он должен только создать проект мидлета, добавить зависимости библиотеки и использовать импортированные классы.

Мы использовали тот же подход для разработки платформы Android. В этом случае мы использовали только обычные проекты Java внутри Eclipse, которые компилируются в библиотеки jar. Эти проекты имеют зависимости от Android Framework (android.jar). При создании нового приложения мы создаем проект Android внутри Eclipse и добавляем зависимости.

Наш следующий шаг — создать более продвинутые модули для Android, которые также могут содержать графическую информацию (действия, диалоги, литералы, Drawables и т. д.). До сих пор требовался только проект Android Eclipse (конечное приложение), содержащий все графические классы и ресурсы. Кажется, что при использовании ресурсов (литералов, рисунков и т. д.) единственным подходом является создание приложения Android, поскольку на ресурсы можно ссылаться только с помощью целочисленного обработчика, автоматически создаваемого плагином ADT (R.XXX). Таким образом, создание графических модулей не может быть построено с помощью простых проектов Java jar.

Информация для разработчиков Android объясняет, что модульные приложения возможны, но я не нашел краткого руководства, объясняющего процесс, но некоторые советы, например, как предотвратить возникновение ошибки при приложение вызывает намерение, предоставленное другим приложением. Это допустимо при создании приложений, использующих ресурсы других приложений. Мне нужно не несколько установленных приложений в системе, а одно, построенное из нескольких компонентов.

Есть ли у кого-нибудь опыт разработки с подобными требованиями? Любой хороший учебник или советы для начала?


person Fernando Miguélez    schedule 31.08.2010    source источник


Ответы (1)


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

Решение, однако, довольно новое (оно работает только с последней версией Android SDK для R6, а SDK 2.0.X не поддерживаются). У него есть несколько важных предостережений, над которыми, я надеюсь, Google уже работает:

  • Без привязки бинарных библиотек. Это означает, что основному приложению требуется доступ к исходным кодам (в Eclipse подразумевается, что все проекты связанных библиотек открыты).
  • Имена ресурсов (макеты, чертежи и т. д.) обрабатываются глобально. Это означает, что если у вас есть два макета «main.xml», будет использоваться только наиболее подходящий (самый верхний в списке библиотек).
  • Отсутствуют функции/ошибки. В документации указано, что экспортированные действия проекта библиотеки должны быть объявлены только в AndroidManifest.xml проекта библиотеки. Это не работает в текущей версии. Комментарии внутри примера TicTacToe подсказывают, что это желаемая работа, но для Текущая версия Android Tools использует действия из проектов библиотек, которые должны быть явно определены в AndroidManifest.xml основного проекта приложения.
person Fernando Miguélez    schedule 31.08.2010