Подобные вещи не поддерживаются в качестве стандартного средства в Android, поэтому вам предстоит много работы, чтобы создать их самостоятельно.
Первое, что вам нужно знать, это Context.createPackageContext (), который позволяет вам создавать Контекст для другого .apk (и таким образом загружать его ресурсы).Затем вы можете использовать этот контекст для загрузки изображений и тому подобного.Обратите внимание, что эти ресурсы полностью отличаются от ресурсов вашего собственного приложения, поэтому вы не можете использовать стандартные средства, такие как темы или тому подобное, для замены.Вам просто нужно будет вручную разместить код везде, где вы хотите загрузить «тематические» ресурсы, которые явно извлекают его из этого контекста.
Чтобы обнаружить доступные .apks (и, следовательно, имя пакета для использования с createPackageContext ()), вы можете использовать средства PackageManager для выполнения запросов к компонентам.Например, вы можете сказать, что каждая тема .apk будет иметь следующий вид:
<receiver android:name="something">
<intent-filter>
<action android:name="com.mydoman.action.THEME" />
</intent-filter>
</receiver>
Теперь вы можете найти все .apks с такими получателями через PackageManager.queryBroadcastReceivers ():
http://developer.android.com/reference/android/content/pm/PackageManager.html#queryBroadcastReceivers(android.content.Intent, int)
Чтобы выбрать те, у которых есть вышеуказанные фильтры намерений, используйте намерение, созданное с помощью:
Intent intent = new Intent("com.mydoman.action.THEME");