В Java VM, classloader может иметь несколько доменов , обычно это файлы JAR (которые похожи на файлы APK). Каждый из этих доменов имеет одно пространство имен. То есть каждый ресурс имеет уникальное имя.
Вызов ClassLoader.getResources ("foo") может, следовательно, возвращать несколько URL-адресов. Однако, глядя на Android, сборка, похоже, сглаживает пространство имен ресурса, перезаписывая ресурсы тем же путем. Это приводит к havo c с такими механизмами, как Java ServiceLoader. Также кажется, что любое использование META-INF/MANIFEST.MF
.
аннулируется. Например, если я использую liba.jar
и libb.jar
, и оба имеют ресурс OSGI-OPT/com.example.Foo
, то, по-видимому, только один из них заканчивается в APK.
Задокументированы ли где-нибудь правила, касающиеся этих ресурсов класса?