Каков правильный способ вставки активности в другой проект?

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

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

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

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

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

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

Затем включите этот модуль во все используемые им проекты.

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

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

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

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

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

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

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

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

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

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

Intereting Posts
Родос: Ошибка !!! Неверная версия Android API Room Persistence @Relation работает на Java, но не в Колине Как нарисовать анимацию на холсте? (Android) Кордова: Как установить разные имена пакетов на платформу с помощью cordova-cli? Не удается заставить Android SDKcontroller работать 'Не удалось загрузить RSSupport: findLibrary возвратил null' при использовании RenderScript на эмуляторе 2.3 Среда разработки Android в Docker Android Wear Error ConnectionResult {statusCode = SERVICE_VERSION_UPDATE_REQUIRED, разрешение = null} Как удалить серый бар внизу моего приложения для Android? Не удалось выполнить команду aapt Tool. Не удалось установить файл android-res.jar. При создании в flex 4.6 для Android-планшета Являются ли метки и значок взаимоисключающими в TabHost TabSpec setIndicator? SaveAllInBackground не работает внутри deleteAllInBackground по желанию Android Изменение размера изображения в зависимости от размера экрана? Автоматически конвертировать код между Xamarin iOS и Xamarin Android Не найден ресурс, который соответствует указанному имени: attr 'android: keyboardNavigationCluster'. При обновлении до Support Library 26.0.0