2016-03-30 4 views
5

У меня есть проект студии Android , который состоит из активности входа с относительным style, manifest, IntentService и прочего.Каков правильный способ вставки активности в другой проект?

Я хочу вставить этот маленький проект во многие другие приложения, что является лучшим способом для продолжения? Правильно ли модуль?

Конечная цель еще простота в обслуживании, например, если один день сервер должен изменить URL, я бы не вносить изменения в любое приложение, которое использует эту регистрационную деятельность :-)

ответ

6

Вам нужно извлечь эти компоненты в отдельном module:

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

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

Затем include that module во всех проектах, использующих его.

Фактически, вы можете создать модуль самостоятельно, независимо от его собственного "library" project. И add it as a dependency для всех его проектов.

Идя дальше, вы можете опубликовать выходные данные проекта библиотеки с открытым исходным кодом как .aar или .jar на центральном, jcenter и других общедоступных хранилищах maven. Тогда другие люди также смогут использовать ваш модуль.

Некоторые важные моменты, чтобы помнить при создании андроида проектов библиотеки:

  1. ресурсы (струнные, макеты, XMLs, изображения) из библиотеки будут объединены с результатами окончательного проекта по сборке. Тем не менее класс вашего R останется под именем вашего модуля.

  2. Некоторые атрибуты из файла манифеста библиотеки могут быть объединены с атрибутами окончательного проекта (например, <application>). Таким образом, библиотечный модуль должен иметь минимальный файл манифеста, в котором, самое большее, имя пакета.

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

+0

спасибо! Отличное объяснение, отлично работает – marco

0

Я думаю, что вам нужно сделать, это экспортировать первоначальный проект первого:

Файл >> Экспорт

Затем перейдите в новый проект и импортировать оригинал , Не забудьте изменить метод setContentView(), чтобы указать на свое первоначальное действие (тот, который вы импортировали)

и, наконец, не забудьте свой метод намерения! если у вас есть какие-либо вопросы, дайте мне знать, и я создам подробный ответ для вас, но я думаю, что с вами все будет в порядке!