Установка разных версий одного и того же apk во время выполнения

У меня следующая ситуация, у меня есть кодовая база Android, где я читаю данные из БД на SD-карте. Теперь предположим, что у меня есть две папки mnt/sdcard/folder1, в которых есть 1.sqlite, и mnt/sdcard/folder2, в которых 2.sqlite. Есть ли способ собрать и установить два 1.apk and 2.apk apk для чтения из соответствующих папок и баз данных во время выполнения? Кодовая база такая же - только во время выполнения - один из apk называется 1.apk, который знает, что он должен читать из первой папки, а второй - из второй. И то и другое можно установить одновременно.

OR

есть ли лучший способ добиться этого?


person Vrashabh Irde    schedule 18.11.2012    source источник


Ответы (1)


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

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

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

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

ИЗМЕНИТЬ. Другой подход состоит в том, чтобы иметь отдельные значки запуска для двух вариантов поведения, каждый из которых привязан к разному действию в вашем приложении. См. эту ветку для получения дополнительной информации об этом подходе.

person Ted Hopp    schedule 18.11.2012
comment
Под двумя версиями я имею в виду одну и ту же кодовую базу, скажем, V 1.0 для обоих apk, но одна версия читает из папки 1 и называется 1.apk, а другая - из папки 2 и называется 2.apk. Изменится ли ваш ответ с этой информацией? Благодарность - person Vrashabh Irde; 18.11.2012
comment
@Slartibartfast - Я добавил к своему ответу еще одну идею. - person Ted Hopp; 18.11.2012