Как уменьшить Android размер APK в реагирующем? - PullRequest
5 голосов
/ 11 марта 2020

Я работаю над собственным реактивным проектом, но всякий раз, когда я создаю файл Apk, он дает мне Apk 47 МБ. Я перепробовал каждую документацию, которая показалась мне полезной в Google, но у меня ничего не работает. Есть ли способ уменьшить размер моего приложения ниже 10 МБ, поскольку приложение содержит только три или четыре страницы. Любая помощь будет оценена

Ответы [ 5 ]

4 голосов
/ 11 марта 2020

Вы можете попробовать следующие шаги

  • Открыть android/app/build.gradle
  • Установить def enableProguardInReleaseBuilds = true, что позволит Progaurd сжимать байт-код Java. Это уменьшает размер приложения на чуть-чуть
  • Set def enableSeparateBuildPerCPUArchitecture = true. Устройства Android поддерживают две основные архитектуры устройств: armebi и x86. По умолчанию RN собирает собственные библиотеки для обеих этих архитектур в один и тот же файл.

Установка последней функции создает два разных apk в папке сборки. Вы должны загрузить оба этих apk в Play Store, и Google позаботится о распространении приложения для правильной архитектуры. Использование этого разбиения генерирует номера версий для обоих apks в порядке 104856 и тому подобное. Это автоматически генерируется сборкой, чтобы избежать конфликтов версий, так что не волнуйтесь (я сделал). Это разделение уменьшило размер apk с 7 МБ до 3,5 МБ для руки и 5 МБ для x86 соответственно.

Вы можете найти больше информации в этой статье https://medium.com/@aswinmohanme / как я уменьшил размер -of-мой реагирующей-родное приложение-на-86-27be72bba640

3 голосов
/ 11 марта 2020

Кажется, android app bundle может помочь вам. Но я также отвечу на вопрос how to reduce Android APK size in react-native

Есть много способов оптимизировать размер установки приложения для сборки мобильного приложения с помощью собственного кода.

размер собственного приложения зависит от:

  • всего Js код, импортированный в ваше приложение (включен в node_modules)

  • всего Использование собственного кода в вашем приложении.

  • Всего ресурсов (изображения / видео / мультимедиа ...)

  • вариант устройств, поддерживаемых вашим приложением

Чтобы уменьшить / оптимизировать размер вашего приложения, вам нужно оптимизировать 4 вещи выше

Сначала js code

Мы пишем JS код, реагируем на компоненты, затем обновляем, заменяем их новыми. Временами js рост базы кода. и стать беспорядочным, бесполезным, но трудным удалить из базы кода. Это увеличивает размер вашего приложения, все еще импортируясь в вашу базу кода, но никогда не будет использоваться.

-> Проверка, рефакторинг вашего кода JS после 1/2 фазы разработки функций, чтобы сделать ваш код красивым и легким.

Во-вторых, собственный код

  • Родная сторона кажется загадочной пещерой с JS react-native разработчиками и beginners. В нативных библиотеках есть тонна Java / Objective- C кодов, которые трудно найти разработчику. Некоторые из них неконтролируемы или не нужны.

Злоупотребление нативными библиотеками может привести к увеличению размера вашего приложения и вызвать странные сбои

-> Не использовать нативные библиотеки, если они вам не нужны или вы можете сделать это с помощью js код. -> используйте Proguard, чтобы уменьшить размер приложения с помощью shrink кода и remove unused codes. Мои приложения уменьшили 15% - 20% размер приложения после настроенного Proguard.

Подробнее о Proguard здесь

В-третьих, Активы

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

  • использовать изображения в формате webp

  • не злоупотреблять png , gif формат, если достаточно jpg

  • Оптимизация размера файлов изображений с помощью некоторых инструментов, таких как tinypng.com It's pretty good and fast

  • использовать векторные иконки. Как и act-native-vector-icons

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

Последний, вариант конфигурации устройств, поддерживаемых вашим приложением

  • Если ваше приложение предназначено для некоторых устройств, версии ОС. Вы можете ограничить его, удалить неподдерживаемые архитектуры. Это может уменьшиться на 2% -> 10% в зависимости от того, что вы удалили.

  • Использовать Android комплект приложений, рекомендуется Google если ваше приложение продается в Play Store. Он разделит ваш пакетный файл на множество устанавливаемых apk-файлов на основе типов устройств. Таким образом, ваше приложение содержит только ресурсы / код, необходимый только для этого типа устройства. Удивительно, правда?

    Узнайте больше о Android Пакет приложений здесь


один из моих приложений, если сборка для типа APK составляет 40 МБ. При сборке тип AAB составляет 40 МБ. Но установочный файл из магазина игр Goole только 13 -> 17 МБ зависит от типа устройства.

0 голосов
/ 11 марта 2020

Включить эти опции

def enableProguardInReleaseBuilds = true
def enableSeparateBuildPerCPUArchitecture = true

Найти альтернативы для модулей большого размера

Использовать стоимость модулей (npm пакет, в котором будет указан размер пакетов в вашем peoject) ... и попробуйте найти альтернативу для costy-пакетов

0 голосов
/ 11 марта 2020

Вы можете создать файл .abb (Android App Bundle) вместо .apk. Это уменьшит размер вашего приложения почти в 3 раза.

0 голосов
/ 11 марта 2020

Создайте файл .apk в .aab, а затем разверните файл .aab на консоли Google Play. пожалуйста, прочитайте о концепции пакета приложений на сайте devloper. https://developer.android.com/guide/app-bundle

...