barteksc/AndroidPdfViewer массивный APK Размер
Мы включили эту библиотеку AndroidPdfViewer для поддержки просмотра отчетов в формате PDF в приложении. Это привело к значительному увеличению размера APK с 4,7 МБ до 20,1 МБ.
Есть ли способ уменьшить этот размер. Дайте мне знать, где и что возиться, чтобы помочь или решить это.
Я знаком с Proguard и настроил его для моего приложения с достаточным успехом.
2 ответа
Почему полученный apk такой большой?
Android PdfViewer зависит от PdfiumAndroid, который является набором собственных библиотек (почти 16 МБ) для многих архитектур. Apk должен содержать все эти библиотеки для запуска на всех устройствах, доступных на рынке. К счастью, Google Play позволяет загружать несколько приложений, например, по одному на каждую архитектуру. Хорошая статья об автоматическом разделении вашего приложения на несколько apks доступна здесь. Самый важный раздел - Улучшение создания нескольких APK и управление версиями кода с помощью APK Splits, но стоит прочитать всю статью. Вам нужно только сделать это в вашем приложении, не нужно разветвлять PdfiumAndroid или около того.
Вы должны создать несколько APK для разных устройств, тем самым вы можете уменьшить размер apk до 10 МБ меньше, чем предыдущий. Добавьте приведенный ниже код в build.gradle (Модуль: Приложение)
android{
.....
splits {
abi {
enable true
reset()
include 'x86_64', 'x86', 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'mips'
universalApk false
}
}
.....
}
ext.versionCodes = ['armeabi': 1, 'armeabi-v7a': 2, 'arm64-v8a': 3, mips: 4, 'x86': 5, 'x86_64': 6]
import com.android.build.OutputFile
// For each APK output variant, override versionCode with a combination of
// ABI APK value * 1000 + defaultConfig.versionCode
android.applicationVariants.all { variant ->
// assign different version code for each output
variant.outputs.each { output ->
output.versionCodeOverride =
project.ext.versionCodes.get(output.getFilter(OutputFile.ABI)) * 1000 + android.defaultConfig.versionCode
}
}
Смотрите видео здесь https://youtu.be/bP05Vpp49hs для подробного объяснения того, как это сделать.
Я также столкнулся с той же проблемой, но на данный момент это очень просто уменьшить размеры apk с помощью пакетов приложений Android. Сначала в build.gradle(Module: app) добавьте эти строки в скобки android { }.
bundle {
abi {
enableSplit = true
}
}
Это будет обрабатывать разбиение apk на основе архитектуры. Также не забудьте добавить эту строку в proguard-rules.pro
-keep class com.shockwave.**
Если вы не добавите эту строку в proguard-rules.pro, ваше приложение выйдет из строя в окончательной версии. Теперь, после этого, перейдите в Build и выберите Generate Signed Bundle / apk. Отсюда сгенерируйте подписанный пакет. Пакеты создаются так же, как и APK. Затем загрузите свой пакет (файл.aab) в консоль Google Play, и вы увидите, что каждое устройство получает разные apks в зависимости от своей архитектуры. Это самый простой способ уменьшить размер приложения, концепция нескольких apk более сложна.
Итак, я предлагаю вам использовать этот способ.
Если кто-то ищет легкую программу просмотра PDF-файлов для вашего приложения, попробуйте эту
Это помогло мне уменьшить размер приложения с 27 МБ до 10 МБ, потому что barteksc-androidpdfviewer требует больше места