После добавления больших изображений в формате png создается SO, что приводит к увеличению размера приложения. - PullRequest
1 голос
/ 08 июля 2019

Я заменил некоторые изображения PNG в своем проекте, и пакет приложений не был успешно собран, так как файлы PNG были слишком большими каждые 2-3 МБ.Затем я изменил изображения с несколькими jpegs размером несколько сотен килобайт на файл.После этого, когда я собрал приложение, его размер вырос с 9 до 27 МБ.Я проанализировал apk, и большая часть его размера связана с некоторыми файлами lib

apk analysis

Я удалил папку build, чтобы удалить все старые файлы, но это не такhelp.I исключил все .so файлы, но apk не устанавливается без них.Я попытался сделать пачку, но это тоже размер.Что я должен сделать, чтобы вернуться к старому размеру АПК.

Ответы [ 4 ]

1 голос
/ 08 июля 2019

Чтение Add multi-density vector graphics

Android Studio включает инструмент под названием Vector Asset Studio, который позволяет добавлять значки материалов и импортировать масштабируемую векторную графику (SVG).) и файлы Adobe Photoshop Document (PSD) в ваш проект как векторные ресурсы для рисования.Использование векторных рисунков вместо растровых изображений уменьшает размер вашего APK, поскольку размер одного и того же файла можно изменять для разных плотностей экрана без потери качества изображения.

Вы должны использовать изображения SVG вместо JPG / PNG.

Чтобы сделать ваше приложение как можно меньшим, вы должны включить сжатие в вашей сборке релиза, чтобы удалить неиспользуемый код и ресурсы.При включении сжатия вы также получаете выгоду от запутывания, которое сокращает имена классов и членов вашего приложения, и оптимизации, которая применяет более агрессивные стратегии для дальнейшего уменьшения размера вашего приложения.

Чтение Shrink, obfuscate, and optimize your app

  android {
    buildTypes {
        release {
            // Enables code shrinking, obfuscation, and optimization for only
            // your project's release build type.
            minifyEnabled true

            // Enables resource shrinking, which is performed by the
            // Android Gradle plugin.
            shrinkResources true

            // Includes the default ProGuard rules files that are packaged with
            // the Android Gradle plugin. To learn more, go to the section about
            // R8 configuration files.
            proguardFiles getDefaultProguardFile(
                    'proguard-android-optimize.txt'),
                    'proguard-rules.pro'
        }
    }

}
0 голосов
/ 08 июля 2019

Попробуйте установить minifyEnabled true для сокращения ресурсов в файле Gradle.

0 голосов
/ 08 июля 2019

Используйте NDK abiFilters в build.gradle модуля вашего приложения следующим образом:

android {
 defaultConfig {
        //...
        ndk {
            abiFilters "armeabi-v7a", "x86", "armeabi"
        }
    }
}

Вы также можете исключить определенные * .so файлы, которые вам не нужны:

packagingOptions {
  exclude 'lib/arm64-v8a/lib.so'
  exclude 'lib/mips/lib.so'
}
0 голосов
/ 08 июля 2019

Я думаю, что изображения не являются проблемой из созданных вами декс-файлов. Я думаю, что вы включили большие библиотеки или много библиотек?

...