Kivy bulldozer для windows

Kivy bulldozer для windows

Kivy and Buildozer Installer

The kivy_buildozer_installer.sh is automating my actions I have shown in this video.

The complete list of Buildozer dependencies is:

  • build-essential
  • ccache
  • git
  • libncurses5:i386
  • libstdc++6:i386
  • libgtk2.0-0:i386
  • libpangox-1.0-0:i386
  • libpangoxft-1.0-0:i386
  • libidn11:i386
  • python2.7
  • python2.7-dev
  • openjdk-8-jdk
  • unzip
  • zlib1g-dev
  • zlib1g:i386
  • libltdl-dev
  • libffi-dev
  • libssl-dev
  • libtool
  • pkgconf
  • autoconf
  • autotools-dev
  • automake
  • cmake

Installation Kivy and Buildozer on Ubuntu 18.04 based distros

The kivy-buildozer-installer.sh installs Kivy framework and Buildozer for Python 3 with all its dependecies.

The script was successfully tested with Xubuntu 18.04 and Lubuntu 18.04. The test result was a successfully compiled .apk file for Android 6.0 and 7.0.

curl -LJO https://raw.githubusercontent.com/zaemiel/kivy-buildozer-installer/master/kivy-buildozer-installer.sh

Add execution permissions:

chmod +x kivy-buildozer-installer.sh

WARNING With manual installation of the Buildozer via cloning its repository, pay attention to clone the Buildozer repository to any directory except HOME directory. Otherwise the error «AttributeError ‘Namespace’ object has no attribute ‘ignore-setup_py’» will occur probably due importing modules conflicts.

Buildozer Virtual Machine

The current virtual machine allow you to have a ready to use VM for building Android application.

Download Buildozer VirtualBox Machine:

Lubuntu 18.04 Virtual machine (Unziped size is about 13 Gb):

To free a disk space you can delete test app folder, before you start a new buildozer compilation

Using shared folders

Create a folder on your host machine.

In the Virtualbox menu: ‘Devices’ -> ‘Shared folders’ -> ‘Shared folders settings. ‘ click on the small button at the right side ‘Adds new shared folder’

Specify the folder path on your host machine

Check ‘Auto-mount’ and ‘Make permanent’ boxes.

Power off your guest machine

Start the guest machine again and shared folder should appear on the Desktop.

If Android dependencies are outdated execute:

Create a package for Android¶

You can create a package for android using the python-for-android project. This page explains how to download and use it directly on your own machine (see Packaging with python-for-android ) or use the Buildozer tool to automate the entire process. You can also see Packaging your application for the Kivy Launcher to run kivy programs without compiling them.

For new users, we recommend using Buildozer as the easiest way to make a full APK. You can also run your Kivy app without a compilation step with the Kivy Launcher app.

Kivy applications can be released on an Android market such as the Play store, with a few extra steps to create a fully signed APK.

The Kivy project includes tools for accessing Android APIs to accomplish vibration, sensor access, texting etc. These, along with information on debugging on the device, are documented at the main Android page .

Buildozer¶

Buildozer is a tool that automates the entire build process. It downloads and sets up all the prequisites for python-for-android, including the android SDK and NDK, then builds an apk that can be automatically pushed to the device.

Buildozer currently works only in Linux, and is a beta release, but it already works well and can significantly simplify the apk build.

This will install buildozer in your system. Afterwards, navigate to your project directory and run:

This creates a buildozer.spec file controlling your build configuration. You should edit it appropriately with your app name etc. You can set variables to control most or all of the parameters passed to python-for-android.

Читайте также:  Изменить панель пуска windows 10

Finally, plug in your android device and run:

to build, push and automatically run the apk on your device.

Buildozer has many available options and tools to help you, the steps above are just the simplest way to build and run your APK. The full documentation is available here. You can also check the Buildozer README at https://github.com/kivy/buildozer.

Packaging with python-for-android¶

You can also package directly with python-for-android, which can give you more control but requires you to manually download parts of the Android toolchain.

Packaging your application for the Kivy Launcher¶

The Kivy launcher is an Android application that runs any Kivy examples stored on your SD Card. To install the Kivy launcher, you must:

Go to the Kivy Launcher page on the Google Play Store

Click on Install

Select your phone… And you’re done!

If you don’t have access to the Google Play Store on your phone/tablet, you can download and install the APK manually from http://kivy.org/#download.

Once the Kivy launcher is installed, you can put your Kivy applications in the Kivy directory in your external storage directory (often available at /sdcard even in devices where this memory is internal), e.g.

should be a directory containing:

The file android.txt must contain:

These options are just a very basic configuration. If you create your own APK using the tools above, you can choose many other settings.

Installation of Examples¶

Kivy comes with many examples, and these can be a great place to start trying the Kivy launcher. You can run them as below:

Run the launcher and select one of the Pictures, Showcase, Touchtracer, Cymunk or other demos…

Release on the market¶

If you have built your own APK with Buildozer or with python-for-android, you can create a release version that may be released on the Play store or other Android markets.

To do this, you must run Buildozer with the release parameter (e.g. buildozer android release ), or if using python-for-android use the —release option to build.py. This creates a release APK in the bin directory, which you must properly sign and zipalign. The procedure for doing this is described in the Android documentation at https://developer.android.com/studio/publish/app-signing.html#signing-manually — all the necessary tools come with the Android SDK.

Targeting Android¶

Kivy is designed to operate identically across platforms and as a result, makes some clear design decisions. It includes its own set of widgets and by default, builds an APK with all the required core dependencies and libraries.

It is possible to target specific Android features, both directly and in a (somewhat) cross-platform way. See the Using Android APIs section of the Kivy on Android documentation for more details.

Мобильное приложение на Python c kivy/buildozer. Лекция в Яндексе

Не факт, что вам потребуется написать серьёзное приложение на Python. А вот быстро собрать работающий сервис, чтобы «продать» его заказчику, — почему нет? Python универсален, и опыт создания мобильного софта на этом языке может оказаться полезным. Владислав Шашков из Сбербанка рассказал о том, как строится разработка с помощью фреймворка kivy.

— Добрый день. Меня зовут Владислав Шашков, я работаю в Сбербанке и вообще-то я продуктовик, не разработчик. Именно этим может быть интересен мой доклад, потому что он наглядно покажет, что сделать мобильное приложение на Python достаточно несложно.

Читайте также:  Не открывается параметры пуск windows 10

Kivy — все-таки он «Киви», потому что образно его изображают на обложках книжек в виде фрукта, и на русском ближе будет произношение «Киви». Фреймворк развивается с 2011 года. По сути, это графическая UI-библиотека для создания кроссплатформенных приложений, не только на мобильных платформах. Ее особенностью является язык KV, это язык разметки. Если образно попробовать описать что такое язык KV, получится, что так бы выглядел HTML, будь он написан на Python.

Также мы поговорим о библиотеке KivyMD, которая представляет из себя набор виджетов в стиле Material Design. KivyMD позволяет создавать дружелюбный гугловый интерфейс, с которым можно работать над пользовательским опытом.

Здесь на видео показано, как пролистываются все виджеты, которые есть в библиотеке. Как вы можете видеть, это достаточно богатый набор элементов. Это и закладки, и кнопки, и прогресс-бары, и всплывашки. В принципе, есть все необходимое, чтобы реализовать нужный вам клиентский опыт. Если надо будет собрать сборку на iOS, то выглядеть она будет точно так же. Тот же Material Design. В принципе, такое приложение можно опубликовать в App Store, хоть оно и будет похожее на Google.

Kivy без KivyMD имеет очень аскетичный дизайн. Его даже клиентам показывать не стоит. Похожие на убунтовские простые кнопки, простые диалоги, не адаптированные к мобильному опыту, к мобильным пользователям. А KivyMD молодцы, все красиво сделано.

Есть плохая новость. Исполняемые пакеты приложения собирает специальная утилита — buildozer. И плохая новость заключается в том, что начать пользоваться, сделать первую сборку с ее помощью совсем не просто. Как и, наверное, с любым опенсорсным ПО, чтобы все получилось, чтобы в итоге дойти до цели и получить APK, нужно пройти определенной «тропой», не сворачивая по сторонам.

На этом слайде подробно описано, что нужно делать, как пройти по «тропе» и не сделать лишнего. Не надо пытаться обновить сам kivy или какие-то другие библиотеки в образе. Все что нужно, указано на слайде, остальное само подтянется и будет работать.

Дальше немного расскажу о структуре проекта Kivy. На слайдах размещены QR-коды, где закодированы ссылки на GitHub, чтобы вы могли их сейчас считать и непосредственно проследить примеры, о которых я буду рассказывать. (Первая ссылка — прим. ред.)

На экране представлен файл buildozer spec, это спецификация на проект. Самое важное здесь: есть строка, в которой перечисляются requirements, то есть библиотеки, которые необходимы для сборки, и в ней указывать надо Kivy, KivyMD, запись там есть, и на GitHub она тоже доступна.

Важный раздел, он закомментирован, касается андроидовских NDK, SDK, его трогать не надо. Значения по умолчанию будут работать.

Немного про UI и UX. В языке разметки KV есть два понятия: виджеты и лэйауты. Виджеты — видимые элементы, кнопочки, поля ввода и тому подобное. Виджеты получают события и могут их обрабатывать. А лэйауты — это объекты, которые позволяют позиционировать виджеты, их есть несколько видов, чтобы выстроить виджеты в рядок или наоборот, как-то произвольно позиционировать. В общем-то, этот подход стандартный для визуальных UI, UX, и в других библиотеках он тоже используется.

Здесь пример языка KV (ссылка — прим. ред.). Как мы видим, вначале за решеткой идет импорт библиотек, затем в угловых скобках… Неправильно говорить «корневой», просто начальный лэйаут, которому в коде будет сопоставлен класс. Один в один названия должны совпадать. Таким образом происходит сопоставление разметки и класса в коде. Дальше через отступы идут вложенные виджеты, внутри виджетов, опять отступом идут property и события, они в одном списке идут. Вот пример кода.

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

Читайте также:  Починка реестра windows 10

Первым делом надо на телефоне включить решим разработчика. Он достаточно хитро включается. Обычно это секретная последовательность нажатий пунктов меню в режиме настроек телефона. В презентации приведена одна из распространенных последовательностей, но на вашем телефоне она может не работать. После выполнения этой последовательности действий появится режим для разработчика, и можно уже устанавливать APK, отлаживать и дальше действовать.

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

Признак того, что у вас произошло подключение — телефон спросит разрешения на отладку. Каталог проекта создается в папке /BUILD. Чтобы собрать проект, необходимо в каталоге проекта выполнить команду buildozer android debug. Установка APK на телефон выполняется утилитой из Android Studio, которая уже есть в образе, командой adb install.

И фраза success говорит, что пока все хорошо, выполнена загрузка на телефон.

Отладка кода выполняется следующим образом. Надо запустить сбор отладочной информации командой adb logcat, чтобы параллельно с приложением работал сборщик. Ваше приложение после первого запуска «с высокой долей вероятности» упадет, после чего можно останавливать отладку и идти читать файлик логов.

Как искать сообщение об ошибке? По ключевому слову python. Самая последняя запись c ключевым словом python, как правило, расскажет вам, что пошло не так.

Про то, что можно сделать на телефоне. Мобильная платформа позволяет сделать не просто кнопочки, которые к API ходят, а поработать с большим разнообразием датчиков гаджета. Для работы с мобильной периферией есть стандартная библиотека plyer. Она платформенно-независимая, то есть все, что на ней будет написано, пересоберется с Android на iOS. На слайде перечислены все доступные опции. Там и GPS, и батарея, и камера… Но с камерой plyer позволяет сделать только статический снимок.

А следующий пример как раз расширяет эту возможность. Ссылка на GitHub, пример, который позволяет получать видеопоток в приложении. У меня была бизнес-задача QR-код распознать с картинки. Также этот пример может работать с распознаванием видео, дополненной реальностью и т. п.

Еще у kivy есть пространство для пользовательских аддонов — Garden. Любой может делать виджеты и тому подобное. Полезный виджет, который я использовал, это работа с картами. Он активный, можно масштабировать, покрутить карту. Здесь показан пример, как его подключать. В Garden есть много других виджетов.

Когда я работал над своим проектом, то проводил коридорное тестирование с коллегами, чтобы собрать обратную связь об использовании приложения. И получил такие замечательные возражения, как «я левые APK не буду ставить», «мама не разрешает», «я только телефон купил». Чтобы продолжить тестирование клиентского опыта по существу, мне пришлось пройти путь создания мобильного приложения до конца, а именно сделать релиз в Google Play. На слайде он описан. Основные моменты заключаются в том, что надо с ключами повозиться, и публикация в Google Play не бесплатная. Чтобы зарегистрироваться разработчиком, надо приготовить 25 долларов. И это еще очень демократично, потому что Apple просит 99 долларов.

На данном слайде приведены ссылка на пример приложения, можно посмотреть мой проект. Это все еще альфа-прототип, поэтому прошу не судить строго, если приложение будет падать. Ссылка на актуальную документацию свежая, мне представляется, что она хорошая. Есть комьюнити, группа ВКонтакте, ее админ на Хабре периодически статьи выпускает.

Оцените статью