Уменьшите размер файла .apk при использовании собственных библиотек в Android без использования Pro-Guard - PullRequest
1 голос
/ 25 сентября 2019

enter image description here Я занимаюсь разработкой приложения, связанного с PDF, в Android (Java).Для редактирования PDF и преобразования других типов файлов в PDF-файлы я добавляю некоторые нативные библиотеки, и это прекрасно работает для меня.Но после разработки приложения размер выпущенного файла .apk превышает 29 МБ.Если я применяю pro-guard, размер .apk определенно уменьшается до 22 МБ.Но я не хочу применять Pro-Guard, потому что некоторые функции не работают с Pro-Guard.Итак, как я могу уменьшить размер моего файла .apk?

Ответы [ 4 ]

0 голосов
/ 25 сентября 2019

Вы можете уменьшить размер apk следующим образом

  1. Сначала преобразуйте все изображения в формат WEBP из студии Android
  2. Включить сжатие ресурсов

    buildTypes {release {

    //Add the following//
    
            shrinkResources true
               minifyEnabled true
               proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
           }
       }
    }
    
  3. Проверка вашего APK с помощью анализатора APK Android Studio

  4. Вы также можете использовать APP Bundle

0 голосов
/ 25 сентября 2019

одна вещь, которую вы можете попробовать, это Refactor> Remove Unused Resaurces, она удалит неиспользуемые классы, изображения, xml и т. Д., Так что уменьшит размер вашего apk.

И еще одна вещь, которую вы можете сделать, это shrinkResources, добавив shrinkResources true

, как показано ниже в build.gradel

android {
    // Other settings

    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true 

        }
    }
}
0 голосов
/ 25 сентября 2019

Есть несколько способов уменьшить размер apk.Вы можете начать использовать App Bundles , которая разбивает ваше приложение на базовые, конфигурационные и динамические apk-компоненты, основанные на архитектуре (native libs), плотности и языке.При установке он объединяет различные комплекты конфигурации и создает отдельный apk для этого устройства, используя его спецификации.

Это уменьшает размер загрузки (установки) и обновления, но файл окончательного комплекта (.aar) такой же, как и у универсального apkсоздан без пакета.

Другой вариант - создать Несколько APK .Таким образом, вы сами создаете и управляете apks, указывая плотности, архитектуру и язык, который хотите поддерживать или игнорировать.Это будет немного беспокойно, но это определенно уменьшит окончательный размер apk, так как вы используете только необходимые ресурсы и библиотеки.

Обе они работают одинаково, но в случае комплектов вам не нужно управлятьнесколько apks самостоятельно.Вы просто управляете созданием пакета, и магазин игр создаст apks сам в зависимости от устройства, запрашивающего обновление или установку.Но в случае многополюсного apk, вы сами создаете все apk.Например, если вы поддерживаете 3 языка (en, es, fr), 2 архитектуры (x86, x86_64) и 4 плотности (mdpi, hdpi, xhdpi, xxhdpi), вам нужно будет создать 3x2x4 apks.

0 голосов
/ 25 сентября 2019

Вы должны использовать SVG images

VectorDrawable - это векторная графика, определенная в файле XML как набор точек, линий икривые вместе с соответствующей информацией о цвете.Основным преимуществом использования векторного рисования является масштабируемость изображения.Его можно масштабировать без потери качества отображения, а это означает, что размер одного и того же файла изменяется с разной плотностью экрана без потери качества изображения.

Векторные объекты намного меньше, чем растровые изображения.Если у нас есть полноразмерное изображение для обновления, векторный файл может занимать всего несколько килобайт в вашей системе, тогда как это же изображение в растровом формате со средним разрешением может не помещаться на CD-ROM.

FYI

Используйте app bundle вместо apk.

Новая модель обслуживания приложений Google Play, названная Dynamic Delivery, затем используеткомплект вашего приложения для создания и обслуживания оптимизированных APK-файлов для конфигурации устройства каждого пользователя, поэтому они загружают только код и ресурсы, необходимые для запуска вашего приложения.Вам больше не нужно создавать, подписывать и управлять несколькими APK-файлами для поддержки различных устройств, и пользователи получают более мелкие и более оптимизированные загрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...