При установке приложения служба менеджера пакетов будет сканировать .apk и искать любую разделяемую библиотеку вида:
lib/<primary-abi>/lib<name>.so
Если она найдена, она копируется в папку $ APPDIR / lib./lib.so, где $ APPDIR соответствует определенному каталогу данных приложения.
Если ничего не найдено и определен вторичный ABI, служба будет сканировать общие библиотеки в форме:
lib/<secondary-abi>/lib<name>.so
Если что-то найдено, то оно копируется в $ APPDIR / lib / lib.so.
Для основного / вторичного abi,
Система Android во время выполнения знает, какиеABI (s) это поддерживает.Точнее, до двух специфичных для сборки системных свойств используются для указания:
«основного» ABI для устройства, соответствующего машинному коду, используемому в самом образе системы.
необязательный «вторичный» ABI, соответствующий другому ABI, который также поддерживается системным образом.
Например, типичный ARMv5TE-основанное устройство определит только первичный ABI как «armeabi» и не определит вторичный.
С другой стороны, типичное устройство на основе ARMv7 определит первичный ABI для «armeabi-v7a» и вторичныйот одного до 'armeabi', поскольку он может запускать собственные двоичные файлы приложения, сгенерированные для них обоих.
Этот механизм гарантирует, что лучший машинный код для целевого устройства автоматически извлекается из пакета во время установки.