Flutter build release android studio

Flutter Build режимы

Автор: dartflutter
Дата записи

Инструмент Flutter build поддерживает три режима при компиляции вашего приложения и режим для тестирования. Вы выбираете режим компиляции в зависимости от того, где вы находитесь в цикле разработки. Вы отлаживаете свой код? Вам нужна информация для профилирования? Вы готовы развернуть свое приложение?

Краткое описание того, когда использовать какой режим выглядит следующим образом:

  1. Используйте debug во время разработки, когда вы хотите использовать горячую перезагрузку.
  2. Режим profile , Если вы хотите проанализировать производительность.
  3. Используйте режим release , когда вы готовы выпустить свое приложение.

Остальная часть страницы посвящена более подробному описанию этих режимов. Для получения информации о тестировании читайте Flutter wiki.

Flutter debug

В режиме debug (отладки) приложение настраивается для отладки на физическом устройстве, эмуляторе или симуляторе.

Режим отладки для мобильных приложений означает, что:

  • Assertions включены.
  • Расширения служб (Service extensions) включены.
  • Компиляция оптимизирована для быстрой разработки и выполнения циклов (но не для скорости выполнения, двоичного размера или развертывания).
  • Отладка (debugging) включена, и инструменты, поддерживающие отладку на уровне источника (например, DevTools), могут подключаться к процессу.

Режим Flutter debug для веб-приложения означает, что:

  • Сборка не минифицирована, и tree shaking не было выполнено. Tree shaking (Встряхивание дерева) — это метод оптимизации библиотек путем удаления любого кода из окончательного файла.
  • Приложение компилируется с помощью компилятора dartdevc для упрощения отладки.

По умолчанию flutter run компилируется в режиме отладки. Среда IDE поддерживает этот режим. Android Studio, например, предоставляет опцию меню Run > Debug… , а также зеленая иконка «жука на треугольнике» на странице проекта.

  • Горячая перезагрузка работает только в режиме отладки.
  • Эмулятор и симулятор выполняются только в режиме отладки.
  • Производительность приложения может быть janky в режиме отладки. Измерьте производительность в режиме профиля на реальном устройстве.

Flutter release

Используйте режим release для развертывания приложения, когда требуется максимальная оптимизация и минимальный размер занимаемой памяти. Для мобильных устройств режим release (который не поддерживается на симуляторе или эмуляторе) означает, что:

  • Assertions отключены.
  • Отладочная информация удаляется.
  • Отладка отключена.
  • Компиляция оптимизирована для быстрого запуска, быстрого выполнения и небольших размеров пакетов.
  • Служебные расширения отключены.

Режим выпуска для веб-приложения означает, что:

  • Сборка уменьшена, и было выполнено tree shaking.
  • Приложение компилируется с помощью компилятора dart2js для лучшей производительности.

Команда flutter run —release компилируется в режиме релиза. Среда IDE поддерживает этот режим. Android Studio, например, предоставляет опцию меню Run > Run…, а также кнопка выполнения «зеленый треугольник» на странице проекта. Вы можете скомпилировать в режим выпуска для определенной цели с помощью flutter build. Список поддерживаемых целей, использовать флаттер помочь построить.

Читайте также:  Голосовое управление телефоном для андроид

Дополнительные сведения см. В документации по выпуску приложений для iOS и Android.

Режим —profile

В режиме profile поддерживается некоторая отладочная способность — достаточная для профилирования производительности вашего приложения. Режим profile отключен на эмуляторе и симуляторе, поскольку их поведение не соответствует реальной производительности. На мобильных устройствах режим профиля аналогичен режиму release , но имеет следующие отличия:

  • Некоторые служебные расширения, например то, которое включает «наложение производительности», включены.
  • Трассировка включена, и к процессу могут подключаться средства, поддерживающие отладку на уровне исходного кода (например, DevTools).

Режим профиля для веб-приложения означает, что:

  • Сборка не уменьшена, но было выполнено tree shaking.
  • Приложение компилируется с помощью компилятора dart2js.

Среда IDE поддерживает этот режим. Android Studio, например, предоставляет опцию меню Run > Profile…. Команда flutter run —profile компилируется в режим профиля.

Примечание: используйте инструменты разработчика DevTools для профилирования производительности приложения.

Дополнительные сведения о режимах сборки см. В разделе Flutter build modes (на англ. языке).

Flutter Build APK

Хотя пакеты приложений предпочтительнее apk, есть магазины, которые еще не поддерживают пакеты приложений. В этом случае создайте APK-релиз для каждого целевого ABI (двоичный интерфейс приложения).

Если вы выполнили шаги подписания, APK будет подписан.

Из командной строки:

  1. Введите cd (Замените на каталог вашего приложения.)
  2. Запустите flater build apk—split-per-abi

Эта команда приводит к двум файлам APK:

Удаление флага —split-per-abi приводит к созданию fat APK, который содержит ваш код, скомпилированный для всех целевых ABI. Такие APK имеют больший размер, чем их разделенные аналоги, что заставляет пользователя загружать собственные двоичные файлы, которые не применимы к архитектуре их устройства.

О сборке для Android устройств подробнее.

Flutter Build iOS

Запустите flutter build ios для сборки релиза ( flutter build по умолчанию выполняется в режиме —release ).

Подробнее про сборку для iOS читайте на официальной странице

Источник

Flutter — Build Android APK

This tutorial shows you how to build APK files for Android for applications developed using Flutter.

APK (Application Package File) is a format used by Android operating systems for distribution and installation. After you build an application, it’s quite common to build APK files to be tested across different devices. If the application is developed using Flutter, you can easily build APK files by using flutter build apk command. In this tutorial, I am going to show you how to build APK files for Android using Flutter. This includes how to set the mode (release, debug, or profile), set the main entry point, split per ABI, set target platforms, set the build name and version, build flavor APK, and obfuscate the code.

Set Mode

Build Release APK

By default, if not specified, the generated APK files use release mode.

The above command is the same as the below command which explicitly uses release mode.

Build Debug APK

For debug mode, you need to add —debug flag.

Build Profile APK

For profile mode, you need to add —profile flag.

Set Main Entry-Point File

A Flutter application has a file as the main entry-point. That’s the first file to be run when the application is launched (similar to MainActivity in Android). By default, lib/main.dart is set to be the main entry-point. If you want to change that, you can pass —target= flag. The example below changes the entry-point to lib/home.dart

Split per ABI and Set Target Platforms

Android devices use various CPUs. A large portion of devices uses ARM-based CPUs, while some devices use Intel x86 CPUs. In addition, old devices use 32-bit CPUs, while the majority of devices released in recent years already use 64-bit CPUs. Those different CPUs support different instruction sets. By default, Flutter only generates an APK that works for all platforms. But that causes a problem regarding the build size of the APK. It becomes very big in order to support those different instruction sets.

Fortunately, Flutter already provides an easy way to split the APK files per ABIs. You only need to add —split-per-abi flag and Flutter will generate multiple APK files, each for a specific platform.

The result of the above command will generate the below platform-specific APK files.

  • app-arm64-v8a-release.apk
  • app-armeabi-v7a-release.apk
  • app-x86_64-release.apk

Actually, Flutter supports four target platforms: android-arm , android-arm64 , android-x86 , android-x64 . However, android-x86 is not included by default. To specify which target platforms you want to include, you can add —target-platform flag with a comma-separated list of the target platforms as the value. The —split-per-abi flag is still required if you want to generate multiple APK files for different ABIs. Without —split-per-abi flag, it will generate a single APK file that’s compatible only for the specified platforms.

At the time this post was written, Flutter doesn’t support to build release version for x86 ABI. You can only build the debug version if you want to create an APK that supports x86 devices.

Set Build Name and Version

The build name and build number of a Flutter application is defined in the version property of pubspec.yaml file. The value of version is a three numbers separated by dots which specifies the build name, followed by an optional build number separated by a ‘+’. For example, version: 1.0.1+2 means the build name is 1.0.1, while the build number is 2. The build name is the one that’s shown to the users, while the build version is used as an internal version number.

Changing the version name and number can be done by changing the version property in the pubspec.yaml . There’s an alternative way if you want to build APKs with different version name and number from the value in the pubspec.yaml file. You can pass —build-name and —build-number flags to override the value for build name and build version respectively.

Build Flavor APK

An application can have multiple flavors and Flutter also supports to build APK. You can do it by passing —flavor flag. For example, if your application has a flavor named ‘pro’, the command is

Split Debug Info

Flutter applications use Dart program symbols. To reduce the application size in release build, you can use —split-debug—info command, which is used to store the Dart program symbols in a separate file on the host rather than in the application. The flag requires an argument which specifies the directory where program symbol files are stored. By adding the flag, you need to use flutter symbolize command to obtain a human readable stack trace. The flag cannot be used together with —analyze-size flag.

Code Obfuscation

Code obfuscation is a technique to make the source code more difficult to be read by human. It’s usually used to prevent people from reverse engineering your application. Flutter also supports this feature. You can add —obfuscate flag, which must be followed by —split-debug-info flag.

Disable pub get Command

By default, the flutter pub get command will be run every time you run the build command. To disable it, you can add —no-pub flag.

Analyze Size

If you want to analyze the size of a generated APK file, add —analyze-size flag in the command. It only works for release mode and you must specify exactly one platform using —target-platform flag.

Below is the output example of running the above command.

Summary

That’s how to build APK files in Flutter. You can run flutter build apk —help to get the list of available flags.

Источник

AkshatApp.com | Blog

Helping designers and developers build high quality websites and cross platform mobile apps as fast as possible with our easy to follow, step-by-step developer guides 📚

Search This Blog

Step-by-Step Guide for Flutter Android APK Signing and Release

How to sign the apk or app bundle created using flutter ?

step 1 : Create a new keystore file ; if you have an existing keystore , skip this step

  • Run command in your terminal for linux/mac
  • On Windows, use the following command:
  • Fill in the required info inside the terminal
  • Keep the keystore file private; do not check it into public source control.
  • Always keep a backup of the keystore file.

Common errors while signing the app

step 2 : Reference the keystore from the app

  • Keep the key.properties file private; do not check it into public source control.
  • Always keep a backup of the key.properties file.

step 3 : Configure signing in gradle

step 4 : how to create APK file or Android App Bundle using flutter ?

  • armeabi-v7a (32-bit) apk
  • arm64-v8a (64-bit) apk

Bonus Tip : Do not forget to :

  • Add a launcher icon to you app — refer our icon guide — android app icon
  • Review App Manifest File, AndroidManifest.xml, located in /android/app/src/main
    • Application Name [android : label in tag]
    • uses-permission [Permission requested by your app]
  • Review the build configuration, Gradle build file, build.gradle, located in /android/app
    • Navigate to defaultConfig code block and verify
      • applicationId — unique app id
      • versionCode & versionName — Setting the version property in pubspec.yaml
      • minSdkVersion & targetSdkVersion — API level on which your app is designed to run

Useful Resources

To learn more about flutter — Flutter Developer Guide

Unauthorized use and/or duplication of this material without express and written permission from this site’s author and/or owner is strictly prohibited.The materials(images, logos, content) contained in this web site are protected by applicable copyright and trade mark law.

Flutter, Android and the Android logo are registered trademarks of Google LLC.

  • Get link
  • Facebook
  • Twitter
  • Pinterest
  • Email
  • Other Apps

Labels

  • Get link
  • Facebook
  • Twitter
  • Pinterest
  • Email
  • Other Apps

Step-by-Step Guide to create a new flutter project using Visual Studio Code [VS Code]

  • Get link
  • Facebook
  • Twitter
  • Pinterest
  • Email
  • Other Apps

Step-by-Step Guide to take a App Screenshot with the Device Frame using Android Studio

  • Get link
  • Facebook
  • Twitter
  • Pinterest
  • Email
  • Other Apps

AkshatApp.com | BLOG

Blog Disclaimer

The information contained on this blog is for academic and educational purposes only.

The owner of this blog makes no representations as to the accuracy or completeness of any information on this site or found by following any link on this site. The owner will not be liable for any errors or omissions in this information nor for the availability of this information. The owner will not be liable for any losses, injuries, or damages from the display or use of this information.

Источник

Читайте также:  Обновление конфигурации андроид что это значит
Оцените статью