Фон
У меня есть приложение ( здесь), которое среди других функций позволяет обмениваться файлами APK.
Чтобы сделать это, он достигает файла, обращаясь к пути packageInfo.applicationInfo.sourceDir(docs link здесь) и просто делится файлом (используя ContentProvider при необходимости, поскольку я использовал здесь).
Проблема
Это прекрасно работает в большинстве случаев, особенно при установке файлов APK из Play Маркета или из автономного файла APK, но когда я устанавливаю приложение с помощью самой Android-Studio, я вижу несколько файлов APK на этом пути, и ни один из них являются действительными, которые могут быть установлены и запущены без каких-либо проблем.
Вот скриншот содержимого этой папки, попробовав образец из "Alerter" github repo:
Я не уверен, когда эта проблема началась, но это происходит, по крайней мере, на моем Nexus 5x с Android 7.1.2. Может быть, и раньше.
Что я нашел
Это, по-видимому, вызвано только тем фактом, что мгновенный запуск включен в среде IDE, так что он может помочь обновить приложение без необходимости его повторной сборки:
После его отключения я вижу, что есть один APK, как и раньше:
Вы можете увидеть разницу в размере файла между правильным APK и разделенным.
Кроме того, кажется, что существует API для получения путей для всех разделенных APK:
Вопрос
Какой должен быть самый простой способ поделиться APK, который должен быть разделен на несколько?
Нужно ли как-то сливать их?
Кажется, это возможно в соответствии с docs:
Полные пути до нуля или более разделенных APK, которые в сочетании с базовый APK, определенный в sourceDir, образуют полное приложение.
Но каков правильный способ сделать это, и есть ли быстрый и эффективный способ сделать это? Может быть, без создания файла?
Возможно, есть API, чтобы получить объединенный APK из всех разделенных? Или, может быть, такой APK уже существует в любом другом пути, и нет необходимости слияния?
EDIT: только что заметил, что все сторонние приложения, которые я пытался, должны совместно использовать установленное приложение APK, в этом случае не могут этого сделать.