Мое первое предположение заключалось в том, что *.so
(unix) или *.dll
(win) - это общая библиотека. По крайней мере, это мой код записи на использование в C.Что означает «общая библиотека» при разработке в Java для Android? (`* .jar` или` * .so`)
Теперь контекст развивается для Android, который выполняется в стиле Java-> Dalvik.
У меня проблемы с воспринимаемой двусмысленностью термина shared library
. В java кажется, что файлы *.jar
или *.dex
содержат код, который является как обоими, так и совместно используемыми библиотеками.
Есть ли ссылка, чтобы рассказать, что означает shared library
?
очень конкретная проблема заключается в том, что Android разработчики aapt
упаковки вещь, имея возможность --shared-lib
--shared-Lib Сделать ресурс пакета разделяемой библиотеки, которую можно загрузить с помощью приложения во время выполнения, чтобы получить доступ к ресурсов библиотек. Подразумевается --non-constant-id.
, о котором я не знаю, что теперь подразумевается под общей библиотекой. Я знаю, что есть этот интерфейс JNI
, и некоторые вещи Android NDK
могут также иметь файлы *.so
, которые могут иметь смысл, но я действительно не уверен.
Итак, вы хотите сказать, что, например, аргумент '-shared-lib'' aapt'-пакета 'имеет какое-то отношение к родным общим библиотекам? Кроме того, вы не будете ссылаться на файл 'jar' в качестве библиотеки, или вы считаете, что они могут быть источником для импортированных классов, т. Е. Они ведут себя как файл библиотеки * .a в родную« C-программу »? – humanityANDpeace
Файлы Jar, от которых зависит приложение, являются частью кода Java. Ваш Java-код и его зависимости преобразуются в байт-код Dalvik (работает в Dalvik VM). Так что да, с точки зрения Дальвика, они нравятся статически. Общие библиотеки скомпилированы для фактического ISA мобильного устройства, поэтому им не нужна какая-либо виртуальная машина для запуска. Они добавляются в файл apk, как есть. –