Тот же проект, но настроенный и устанавливаемый вместе?

1

У меня есть небольшой Android-проект, который я использую в качестве основного проекта. Из этого основного проекта я хочу иметь возможность делать настройки.

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

Это я знаю, как это сделать. (У меня будут два отдельных файла apk, оба с тем же кодом, но с разными ресурсами)

Однако я хочу иметь возможность одновременно устанавливать основной проект и настройку на одно и то же устройство. В настоящее время один будет перезаписывать другой.

Я попытался изменить пакет в манифесте, но это, в свою очередь, означает, что мне придется также изменить все импортные данные для R.java в моих файлах Java, этого я хочу избежать.

Можно ли изменить только что-то в xml, что позволит мне иметь два проекта, используя одни и те же файлы Java, но с разными ресурсами?

Теги:

2 ответа

2
Лучший ответ

Вы должны использовать Android-библиотеки.

Поместите весь свой код приложения в одну библиотеку Android, а затем создайте два приложения для Android, у которых есть пользовательские значки и разные имена пакетов. Ресурсы, определенные в окончательных Android-приложениях, переопределяют все уже существующие ресурсы в библиотеке Android.

Один недостаток: вам нужно будет иметь почти идентичные копии файлов AndroidManifest.xml в вашем приложении для Android (но они все равно должны иметь разные имена пакетов).

Для получения дополнительной информации:

  • 0
    Это единственный вариант? Кажется, это немного излишне для того, что я хочу, у меня уже есть разделение в VSS, которое позволяет мне легко создавать два проекта, моя единственная проблема заключается в том, что они запускаются поверх друг друга при установке. Если библиотека - мой единственный вариант, это будет связано с разделением всего этого по внешнему виду. Но я полагаю, это лучше, чем менять весь импорт R
  • 1
    Вы можете заставить класс R находиться в пакете, который не зависит от пакета, определенного в AndroidManifest. Но это потребует некоторого кодирования (как ant-скриптов, так и пользовательских Java-задач для ant). С другой стороны, Android-библиотека не так уж и беспокоит. Это на самом деле очень легко и интуитивно понятно, когда вы к этому привыкнете. Кроме того, Android Library может быть преобразована в Android-приложение (и наоборот) за секунду.
2

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню