Как скомпилировать kivy в apk на windows

Обновлено: 03.07.2024

Автор оригинала: Mehmet.

В этой статье я объясню, как мы можем преобразовать перекрестную платформу приложение, сделанное с помощью KIVY/KIVYMD в Python в Windows в файл APK без необходимости в машине Linux. Для этого я буду использовать онлайн-платформу под названием Google Colab Отказ

После входа в Google Colab, давайте подготовим среду для процесса преобразования. Не забудьте загрузить проект, над которым вы работаете. Следуйте этим командам Шаг за шагом:

Теперь наша среда готова. Мы можем начать процесс преобразования. Мы будем использовать Buckozer для этого. Запустите эту команду, чтобы запустить Buillozer:

Эта команда создаст файл конфигурации с именем buckozer.spec для нас. Теперь пришло время редактировать этот файл. По крайней мере, вы должны изменить; Название , имя пакета , Package.domain. .

После изменения их, мое предложение состоит в том, чтобы сделать еще несколько изменений, чтобы избежать некоторых проблем. Давайте посмотрим на Source.dir Во-первых, если ваш main.py Файл в том же каталоге, нет необходимости менять его, но если нет, вы должны написать путь здесь.

После этого, если вы использовали отдельные файлы, такие как PNG, TXT, CSV в программе, вы должны добавить расширение на Source.include_exts Отказ

Если вы хотите использовать значок, вы можете без вредных icon.filename И вы можете редактировать путь.

Если вы хотите, чтобы ваше приложение было полноэкранным, вы можете сделать полный экран 1

Нам нужно будет клонировать Python-for-Android Чтобы избежать таких проблем, как не показывая некоторые символы.

Тогда нам нужно редактировать его в Spec-файле. p4a.source_dir =/path/to/your/python-for-android и P4A.Branch Отказ

Наконец, если вам нужны разрешения на Android, вы должны их написать. Мы сделаем со спецификацией файла сейчас.

Теперь мы можем начать процесс преобразования по этой команде:

Когда вы впервые запускаете этот процесс, он может занять до 15-20 минут в зависимости от скорости Интернета. Когда процесс закончен, ваш BIN/*. Файл APK готов, и вы можете скачать его на телефон.

Если приложение не работает, вы можете создать файл журнала с телефона. Для этого попробуйте запустить приложение после нажатия на опцию «Настройки/Разработчик»/Отчет об ошибках. После некоторого времени ожидания, он также покажет процесс в баре уведомления. Теперь вы можете увидеть ошибки, разделяя его на свой компьютер.

Вы также можете проверить мой Проект что я сделал с использованием kivymd.



Во вчерашней статье Python в Mobile development, в которой речь шла о библиотеке KivyMD (коллекции виджетов в стиле Material Design для использования их в кроссплатформенном фреймворке Kivy), в комментариях меня попросили рассказать о процессе сборки пакета для платформы Android. Для многих этот процесс, к сожалению, был и остается чем-то из ряда магического шаманства и не подъёмным для новичков делом. Что ж, давайте разбираться, так ли на самом деле все сложно и действительно ли я маг и волшебник.


Конечно, мог бы! Итак, вы написали свой код на Python и Kivy. Что нужно для того, чтобы это можно было запустить на Android устройствах? Перейдите в репозиторий KivyMD и вы увидите, что в этой инструкции уже давно прописаны шаги, которые позволят вам собрать APK пакет:


Все! Теперь у вас есть виртуальная машина для сборки APK пакетов для приложений Kivy! Что дальше? Давайте, собственно, займемся сборкой тестового приложения. Создайте в домашнем каталоге вашей виртуальной машины директорию TestKivyMD с пустым файлом main.py:



Далее откройте файл main.py и напишите код нашего тестового приложения, которое будет использовать библиотеку KivyMD:


Сохраните, откройте терминал в директории с файлом main.py и установите библиотеку KivyMD:


После установки можно протестировать наш код:


Результатом работы скрипта будет экран с Toolbar и одной кнопкой «Hello World»:



Дальше нам нужно создать файл спецификации buildozer.spec, который должен располагаться в той жу директории, что и файл main.py:



Если вы не закрывали терминал (если терминал был закрыт, откройте его в директории TestKivyMD), введите команду:


Эта команда создаст дефолтный файл спецификации. Откройте его и отредактируйте:


Здесь все понятно поэтому дополнительные комментарии излишне. Почитайте внимательно дефолтную спецификацию, в ней можно указать путь к иконке, пресплеш при загрузке приложения и многое другое. Я оставил лишь то, что нам сейчас нужно для сборки нашего тестового пакета. И, собственно, запускаем процесс сборки командой в терминале:


Можете смело идти на кухню и заваривать кофе, потому что в первый раз процесс загрузки и компиляции библиотек займет очень много времени. Все последующие сборки проходят за 10-20 секунд.

Кофе выпит и самое время заглянуть в терминал:



Вуаля! Наше приложение построено! Самое время закинуть его на смартфон и запустить:


Все работает! И оказывается не все так сложно, как казалось.

Также меня спрашивали:



Ни у Flutter ни у React Native нет преимуществ перед языком разметки Kivy Language, которая позволяет создавать и позиционировать лайоуты и виджеты. Как по мне, то, как строится UI во Flutter — это самое настоящее извращение. Придумать это мог только больной на голову человек. Чтобы не быть голословным, давайте посмотрим на код Flutter и код Kivy одного и того же простейшего приложения… Выглядеть оно будет следующим образом:


Ниже я привожу код из статьи Про Flutter, кратко: Основы:


А вот абсолютно тоже самое, но с использованием Kivy и KivyMD:


По-моему, вывод очевиден и не нуждается в моем комментировании…

Надеюсь, был вам полезен. Оставляю опрос на тему «Удалось ли вам построить приложение для Андроид».


В наши дни каждый разработчик может столкнуться с необходимостью работы над мобильным или веб-приложением на Python. В Python нет встроенных инструментов для мобильных устройств, тем не менее существуют пакеты, которые можно использовать для создания мобильных приложений. Это Kivy, PyQt и даже библиотека Toga от Beeware.

Содержание

Библиотеки являются основными элементами мобильного мира Python. Однако, говоря о Kivy, нельзя игнорировать преимущества данного фреймворка при работе с мобильными приложениями. Внешний вид приложения автоматически подстраивается под все платформы, разработчику при этом не нужно компилировать код после каждой поправки. Кроме того, здесь для создания приложений можно использовать чистый синтаксис Python.

В руководстве будут разобраны следующие темы:

  • Работа с виджетами Kivy;
  • Планировка UI и лейауты;
  • Добавление событий;
  • Использование языка KV;
  • Создание приложения-калькулятора;
  • Упаковка приложения для iOS, Android, Windows и macOS.

Разбор данного руководства предполагает, что читатель знаком с объектно-ориентированным программированием. Для введения в курс дела можете просмотреть статью об Объектно-ориентированном программировании (ООП) в Python 3.

Принципы работы фреймворка Kivy Python

Kivy был создан в 2011 году. Данный кросс-платформенный фреймворк Python работает на Windows, Mac, Linux и Raspberry Pi. В дополнение к стандартному вводу через клавиатуру и мышь он поддерживает мультитач. Kivy даже поддерживает ускорение GPU своей графики, что во многом является следствием использования OpenGL ES2. У проекта есть лицензия MIT, поэтому библиотеку можно использовать бесплатно и вкупе с коммерческим программным обеспечением.

Во время разработки приложения через Kivy создается интуитивно понятный интерфейс (Natural user Interface), или NUI. Его главная идея в том, чтобы пользователь мог легко и быстро приспособиться к программному обеспечению без чтения инструкций.

Kivy не задействует нативные элементы управления, или виджеты. Все его виджеты настраиваются. Это значит, что приложения Kivy будут выглядеть одинаково на всех платформах. Тем не менее, это также предполагает, что внешний вид вашего приложения будет отличаться от нативных приложений пользователя. Это может стать как преимуществом, так и недостатком, все зависит от аудитории.

Установка Kivy

У Kivy есть множество зависимостей, поэтому лучше устанавливать его в виртуальную среду Python. Можно использовать встроенную библиотеку Python venv или же пакет virtualenv.


В предыдущем посте мы рассматривали как Как установить Kivy и Buildozer на Ubuntu 14.04 (Часть 1) , в этой статье мы сделаем компиляцию нашего кода в .apk файл с помощью Buildozer. Если вы читали предыдущую статью то, вы уже установили Buildozer в ваше виртуальное окружение. Однако, мы еще не готовы к созданию .apk файла.

Продолжим. Создадим папку myapp и файл main.py

(pyvenv)vlad@vs:/media/vlad/android/pyvenv$ mkdir myapp

(pyvenv)vlad@vs:/media/vlad/android/pyvenv/myapp$ nano main.py

Добавьте этот код:



Это очень простое приложение которое содержит кнопку и текст на ней "Hello World". Кнопка ничего не делает, когда вы нажимаете на нее, она только изменяет цвета фона, по умолчанию она является частью интерфейса в Kivy.

Теперь нам нужно проверить код, прежде чем мы будем его компилировать. Случайная ошибка в коде может повлиять на компиляцию файла .apk или же на работу в самом телефоне.

(pyvenv)vlad@vs:/media/vlad/android/pyvenv/myapp$ python main.py

После этого шага, нужно инициализировать Buildozer в этой папке:

В текущей папке появиться файл с именем buildozer.spec . В нем находится много опций, которые мы можем изменить. Это настройки нашего приложения и процесса компиляции.

Настоятельно рекомендуется изменить LOG_LEVEL на ( debug ) в buildozer.spec для того, чтобы увидеть ошибки компиляции. Со временем, вы можете столкнуться с различными ошибками и режим отладки, будет очень полезным для их решения.

В файле buildozer.spec, нужно установить LOG_LEVEL со значением = 2 :

Выбираем Application Versioning с методом 2, она нужна Buildozer для компиляции приложения.

Для того, чтобы собрать .apk и проверить код на ошибки используйте эту команду:

(pyvenv)vlad@vs:/media/vlad/android/pyvenv/myapp$ buildozer android debug

В некоторых случаях .apk почему-то не хочет компилироваться если виртуальное окружение находится не в домашней директории, а на другом диске, тогда создайте ваше виртуальное окружение в папке /home это должно помочь. И повторите все шаги, которые были описаны выше.

4 комментария:

если делать по инструкции он киви ставит на питон 2.7. и даже при проверке import kivy он предупреждает что не будет работать на этой версии

Читайте также: