Я работаю над приложением android, которое состоит из кода java и небольшой нативной библиотеки jni, конечный выпуск apk составляет около 5 МБ (включая нативную библиотеку). В этом приложении есть возможность создавать видео, и для этого мы используем ffmpeg + несколько дополнительных суффиксов (png-файлы, аудио и т. Д. c), которые добавляют около 30 МБ к размеру apk (для каждого abi). Установленное пространство занимает гораздо больше места.
Собственная библиотека jni lib динамически связана с файлом ffmpeg .so.
Так как это необязательная функция, которую будут использовать не все пользователи, я думаю, что это пустая трата ресурсов, чтобы включить 30 МБ в конечный файл.
Поэтому я подумал о создании отдельного приложения (или служба, не уверенная в именовании), которая не будет иметь пользовательского интерфейса, а будет иметь только собственную библиотеку lib и ресурсы и основное приложение; если пользователю нужны функции видео, приложение откроет магазин Google Play, чтобы пользователь мог установить этот дополнительный apk .
Это было бы хорошим решением? Возможно ли иметь основное приложение для загрузки .so файлов с внешнего apk? Я почти уверен, что при попытке сделать это возникнут проблемы с разрешением. Есть ли такая возможность, как дать разрешение основному приложению сделать это? А как насчет файлов ресурсов?
Я нашел несколько сообщений о динамической загрузке файлов .so, но, похоже, это противоречит политикам магазина воспроизведения, так что это не вариант.