Фон
Иногда при создании резервной копии некоторых APK-файлов приложения вы можете заметить, что они состоят из нескольких APK-файлов, то есть разделенных APK-файлов (AKA app-bundle).
Проблема
Я хочу знать, когда кто-то отправляет пользователю файл APK, если он действительно автономный или является частью разделенных файлов APK.Причиной является другая процедура и даже предупреждение о такой вещи, потому что разделенные файлы APK не предназначены для установки как нормальные.
То, что я пробовал
Учитывая PackageManager
class ( здесь ), я не могу найти способ для getPackageArchiveInfo , чтобы получить такую информацию.
Существует splitNames
и splitRevisionCodes
, но оба значения равны нулю.
Мой вопрос
Возможно ли, учитывая один файл APK, проверить, является ли он частью несколькихразделить файлы APK?
РЕДАКТИРОВАТЬ: так что благодаря здесь , я нашел, как это сделать для основного APK файлов разделения APK ("base.APK"):
val packageInfo = pm.getPackageArchiveInfo(apkPath, PackageManager.GET_META_DATA)
val isSplit = packageInfo.applicationInfo.metaData.getBoolean("com.android.vending.splits.required", false)
Но, как и для остальных разделенных apk-файлов, использование getPackageArchiveInfo
для них просто вернет null.Я не могу найти, как разобрать манифест их, чтобы найти атрибут "split".
Так что мой вопрос сейчас:
Учитывая остальные файлы APK, как я могупроанализируйте их, чтобы убедиться, что они действительно являются разделенными файлами APK, которые принадлежат файлу base.APK?