Краткий ответ: "нет" . Собственные двоичные файлы будут упакованы в APK и извлечены в исполняемые файлы после установки, если их имена будут соответствовать шаблону lib… .so .
Обратите внимание, что эти библиотеки будут извлечены в файлы в соответствии с ABI целевой системы. Установщик не проверяет фактические свойства файла. Решение основано на имени папки в lib в структуре APK.
Если вы добавите атрибут extractNativeLibs = false в тег приложения в AndroidManifest.xml вашего APK, установщик (на Android Nougat и выше) не будет извлекать нативные библиотеки.
Вы можете обмануть систему и получить файлы, которые не следуют вышеупомянутому правилу, в папку lib APK, но в этом нет особого смысла, поскольку они никогда не будут извлечены загрузчиком. ( также может извлекать файл gdbserver , если файл существует ).
Обычная практика - помещать произвольные файлы в папку assets вашего APK и извлекать их программным способом при первом запуске приложения после установки. Вы не можете извлечь эти файлы в безопасное место, куда попадают обычные собственные библиотеки. Не следует извлекать нативные библиотеки в sdcard (например, getExternalFilesDir () ), поскольку система может не разрешить выполнение файлов там, независимо от выполнения флаг доступа к файлу. Убедитесь, что вы используете правильный вкус ABI.
Вы можете посмотреть исходный код встроенного загрузчика библиотек Nougat, который может загружать собственные библиотеки из APK без извлечения, и использовать его для загрузки пользовательских библиотек прямо из папки assets вашего APK.