Как написать программу на питоне для Андроид

Kivy используется для создания естественных пользовательских интерфейсов с преимуществами абстракции и модульности. Он отделяет разработчика от ненужных и сложных деталей и просто предоставляет простые API для выполнения сложных задач. В результате вы должны определить, какие внутренние библиотеки будут использовать Kivy для выполнения своих задач.

Мы собираемся использовать SDL (Простой DirectMedia Layer) кроссплатформенная библиотека для низкоуровневого доступа к графическому оборудованию через OpenGL. Помимо SDL, другие библиотеки, такие как GStreamer, используются для обработки аудио и видео. Поскольку такие библиотеки написаны на C, Cython обязателен.

2. Установка зависимостей Kivy

На основании инструкций по установке Kivy Linux (https://kivy.org/docs/installation/installation-linux.html), вот необходимые библиотеки для установки SDL2 и GStreamer. Обратите внимание, что вы можете выбрать, какую версию Python использовать в Kivy, используяпитона такжепитон-DEVдля Python 2 или использованияpython3а такжеpython3-DEVдля Python 3. Pip устанавливается ниже для последующего использования при подготовке виртуальной среды Kivy.

Как скомпилировать Python в мобильное приложение

3. Создание виртуальной среды для установки Kivy

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

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

virtualenvиспользуется для создания изолированных сред Python. Для получения дополнительной информации о преимуществах виртуальных сред, вы можете посетить эту страницу https://virtualenv.pypa.io/en/stable/,Setuptoolsиспользуется для упаковки проектов Python.

После этого мы готовы создать виртуальную среду Kivy. Следующая команда создает среду с именем mykivyinstall.

— нет-сайт-пакетовАргумент используется для изоляции среды от основной установки Python. Это должно работать свободно над этим проектом, не затрагивая любой другой проект.

После выполнения этой команды ожидается получение новой папки в текущем каталоге с именем в соответствии с именем виртуальной среды, как показано на рисунке 1.

Предыдущая команда будет использовать интерпретатор Python по умолчанию в среде. Это может быть Python 2, и мы собираемся работать с Python 3. По этой причине мы могли бы явно указать, какой интерпретатор Python использовать, используя-попция как в следующей команде:

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

Точка (,) в предыдущей команде есть встроенная команда, которая выполняет содержимое файла, переданного в качестве аргумента. Это синоним командыисточник, В результате предыдущая команда идентична этой команде:

Как сделать Android APK из мобильного приложения на Python

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

4. Установка Cython

Перед установкой Kivy, Cython должен быть установлен в такой среде согласно следующей команде:

Обратите внимание, что версия Cython зависит от версии Kivy, которая будет установлена. На текущую дату самая последняяKivyверсия1.10.0и это требуетCython 0.25.2и именно поэтому он используется в приведенной выше команде. После этого мы готовы к установке Kivy.

5 Установка Кивы

Kivy может быть установлен с помощью pip по следующей команде:

После этой команды ожидается, что Kivy будет загружен и установлен автоматически. Но учтите, что установка Kivy — это сложная часть, потому что существует множество зависимостей, которые зависят от компьютера, платформы и от того, какие библиотеки у вас уже есть, а какие отсутствуют. Процесс не прост, и вы должны искать альтернативные способы решения ошибок установки. Например, Kivy можно установить с помощью файла wheel или путем клонирования своего проекта github в соответствии со следующей командой:

6. Импорт Kivy

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

Убедившись, что Kivy работает хорошо, мы готовы создать наше первое приложение Kivy.

7. Создание простого приложения Kivy

Приложение Kivy — это простой файл Python, содержащий код Kivy. Файл в нашем приложении будет называться «main.py». Причина в том, что при создании мобильного приложения должен быть файл с именем «main.py», Который является входом заявки.

Читайте также:
Ошибка в программе синонимы

У создаваемого приложения будет три виджета Kivy, которыеввод текста,этикетка,а такжекнопка, Эти виджеты располагаются вертикально в окне, используя макет блока. Они появятся в соответствии с порядком добавления в макет коробки. Другими словами, ввод текста будет первым виджетом, второй меткой и кнопкой внизу. При нажатии кнопки текст, введенный при вводе текста, будет отображаться на ярлыке. Вот код приложения Kivy.

1. import kivy.app

  1. импортkivy.uix.boxlayout
  2. импортkivy.uix.textinput
  3. импортkivy.uix.label
  4. импортkivy.uix.button
  5. учебный классSimpleApp (kivy.app.App):
  6. Защитасборки (самостоятельно):
  7. self.textInput = kivy.uix.textinput.TextInput ()
  8. self.label = kivy.uix.label.Label (text = «Ваше сообщение»)
  9. self.button = kivy.uix.button.Button (text = «Нажмите меня.»)
  10. self.button.bind (on_press = self.displayMessage)
  11. self.boxLayout = kivy.uix.boxlayout.BoxLayout (direction = «vertical»)
  12. self.boxLayout.add_widget (self.textInput)
  13. self.boxLayout.add_widget (self.label)
  14. self.boxLayout.add_widget (self.button)
  15. возвращениеself.boxLayout
  16. ЗащитаdisplayMessage (self, btn):
  17. self.label.text = self.textInput.text
  18. если__name__ == «__main__»:
  19. simpleApp = SimpleApp ()
  20. simpleApp.run ()

Метод сборки — это то, что вызывается после запуска приложения, и поэтому он используется для инициализации окна графического интерфейса Kivy. Три виджета создаются, а затем добавляются в макет коробки. Метод bind присоединяет метод обратного вызова к кнопке, которая будет выполняться при нажатии. Метод обратного вызова называется «displayMessage”, Который устанавливает текст метки в текст, введенный в виджет ввода текста. Приложения запускаются только в том случае, если файл main.py выполняется, гарантируя, что»__название__«Переменная имеет значение»__главный__»внутри оператора if. Это хорошая практика. Для запуска приложения необходимо выполнить два шага. Первый — активировать виртуальную среду Kivy с именем «mykivyinstall»Созданный ранее. Второй — запустить приложениеmain.py»После перехода к папке, в которой он существует. Эти шаги показаны на рисунке 3.

На рисунке 4 показано окно с тремя виджетами, созданными ранее. Обратите внимание, что высота окна делится поровну между его тремя виджетами, так что каждый виджет имеет одну треть высоты окна. В этом примере «Привет киви”Сообщение вводится в текстовом поле. Когда кнопка нажата, на этикетке появится сообщение.

До этого момента приложение Kivy для настольных ПК создавалось успешно. Теперь мы можем начать упаковывать этот проект как приложение для Android.

8. Установка Buildozer

Buildozerинструмент используется для упаковки проекта в качестве приложения для Android. После установкиBuildozerавтоматизирует процесс создания приложения для Android. Для того, чтобы установитьBuildozerЕсть некоторые зависимости. В дополнение к Cython и git, установленным ранее, необходимо установить еще несколько библиотек. На основании инструкций по установке в http://buildozer.readthedocs.io/en/latest/installation.html все зависимости могут быть загружены и установлены с помощью следующих команд Ubuntu:

Buildozer может быть установлен с помощью этой команды. Эта команда гарантирует, что Buildozer установлен и обновлен.

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

9. Создание buildozer Спец файл

Структура нашего проекта показана на рисунке 5. Существует папка с именемsimpleappв которомmain.pyсозданный ранее файл помещается. Прелесть Kivy в том, что тот же файл Python будет использоваться в приложении Android без изменений. Но есть и другой файл с именемbuildozer.specчто важно для создания приложения. Этот файл содержит информацию о приложении Android, такую ​​как название и версия. Как создать этот файл?

buildozer.specфайл может быть создан с помощью инструмента Buildozer. После внесения текущего рабочего каталога в каталог, в котором находится приложениеmain.pyфайл помещен, введите следующую команду:

Появится сообщение о том, чтоbuildozer.specфайл создается как на рисунке 6.

Некоторые важные свойства приложения Android внутриbuildozer.specФайл выглядит следующим образом:

[app]title = Simple Applicationpackage.name = simpleapppackage.domain = org.simpleappsource.dir = .source.include_exts = py,png,jpg,kv,atlasversion = 0.1requirements = kivyorientation = portraitosx.python_version = 3osx.kivy_version = 1.9.1fullscreen = 0

Например, title содержит заголовок приложения, исходный каталог ссылается на каталог приложения, который в этом случае устанавливается как текущий каталог, версия приложения, версии Python и Kivy и другие. Эти поля находятся внутри[приложение]раздел файла спецификации. Вы можете проверить спецификации приложения по этой ссылке http://buildozer.readthedocs.io/en/latest/specifications.html, Вы также можете отредактировать файл спецификации, чтобы изменить поля, которые вы видите, которые стоит изменить.

После подготовки всех файлов, необходимых для сборки приложения для Android, давайте приступим к его сборке.

10. Сборка Android-приложения с использованием Buildozer

Buildozerявляется хорошим инструментом для создания приложения Android, потому что он подготавливает среду по всем требованиям для успешной сборки приложения. Эти требования такие какпитон-для-андроидAndroidSDK,NDK, и другие. Внутри каталога приложения его можно собрать с помощью следующей команды:

На рисунке 7 показан ответ при вводе команды. При сборке приложения в первый раз, Buildozer должен загрузить все эти зависимости. Это займет время, пока они не будут загружены и установлены. Потерпи.

После выполнения команды файл APK будет найден в этом месте в каталоге проекта/simpleapp/.buildozer/android/platform/build/dists/simpleapp/bin, Файл APK может быть передан на устройство Android для его запуска. Также можно подключить устройство Android к компьютеру, создать, развернуть и запустить приложение с помощью одной команды, которая выглядит следующим образом:

Читайте также:
Какими последовательными действиями можно представить процесс создания программ

На рисунке 8 показан запуск приложения Android.

11. Ссылки

Филлипс, Дасти. Создание приложений в Kivy: Mobile с Python. «O’Reilly Media, Inc.», 2014.

Источник: machinelearningmastery.ru

Python для Android: Как начать делать кроссплатформенные приложения с Kivy

В этом руководстве приведены шаги, необходимые для создания кроссплатформенного приложения для Android с использованием Python-фреймворка Kivy и Linux Ubuntu. Перед началом установки и запуском Kivy необходимо установить его зависимости. Большая часть времени уйдёт на подготовку рабочей среды Kivy путем установки библиотек, необходимых для его работы. В этом уроке Kivy будет установлен в виртуальной среде.

Используемой платформой будет Linux Ubuntu 18.04 с Python 3.6.5. При запуске Kivy на разных платформах появляются некоторые различия. Чтобы иметь возможность устанавливать библиотеки, перемещаться по каталогам ОС, копировать/удалять/извлекать файлы, запускать скрипты Python, читатель должен иметь базовое представление о командах терминала Linux и Python.

1. Введение

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

Мы собираемся использовать SDL ( Simple DirectMedia Layer ) — кроссплатформенную библиотеку для низкоуровневого доступа к графическому оборудованию через OpenGL. Помимо SDL, другие библиотеки, такие как GStreamer, используются для обработки аудио и видео. Поскольку такие библиотеки написаны на C, нам также потребуется Cython.

2. Установка зависимостей Kivy

Основываясь на инструкциях по установке Kivy на Linux ( https://kivy.org/docs/installation/installation-linux.html ), здесь перечислены необходимые библиотеки для установки SDL2 и GStreamer. Обратите внимание, что вы можете выбрать версию Python для использования в Kivy с помощью python и python-dev для Python 2 или с помощью python3 и python3-dev для Python 3. Pip также находится в перечисленном ниже списке для последующего использования в подготовке виртуальной среды Kivy.

3. Создание виртуальной среды для установки Kivy

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

Перед началом создания виртуальной среды мы должны убедиться, что инструменты, необходимые для ее создания, уже установлены и обновлены. Следующие команды гарантируют, что инструменты virtualenv и setuptools уже существуют и обновлены.

virtualenv используется для создания изолированной среды Python. Для получения дополнительной информации о преимуществах виртуальной среды вы можете посетить страницу https://virtualenv.pypa.io/en/stable/ . setuptools используется для упаковки проектов Python.

После этого мы готовы создать виртуальную среду Kivy. Следующая команда создает среду с названием mykivyinstall.

Аргумент —no-site-packages используется для изоляции среды от основной установки Python. Это делается для того, чтобы вы могли свободно работать с этим проектом, не затронув другие.

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

Рисунок 1. Создание виртуальной среды Kivy

В предыдущей команде будет использоваться обычный интерпретатор Python внутри среды. Это может быть Python 2, а мы работаем с Python 3. По этой причине мы могли бы явно указать, какой интерпретатор Python использовать с использованием ключа -p , как в следующей команде:

После создания виртуальной среды мы можем активировать её, чтобы начать установку Kivy. Она может быть активирована следующей командой.

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

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

4. Установка Cython

Перед установкой Kivy Cython должен быть установлен в такой же среде в соответствии со следующей командой:

Обратите внимание, что версия Cython зависит от версии Kivy, которая будет установлена. В данный момент последняя версия Kivy — 1.10.0 , и для нее требуется Cython 0.25.2 , и именно поэтому она используется в приведенной выше команде. После этого мы готовы к установке Kivy.

5. Установка Kivy

Kivy можно установить с помощью pip в соответствии со следующей командой:

После этой команды ожидается, что Kivy будет загружен и установлен автоматически. Но учтите, что установка Kivy — это трудная часть, потому что существует множество зависимостей, которые являются варьируются в зависимости от используемой машины, платформы и библиотек, которые у вас уже есть и которых нету. Процесс не является простым и прямолинейным, поэтому вы должны искать альтернативные способы решения ошибок установки. Например, Kivy можно установить с помощью wheel-файла или путем клонирования его проекта github в соответствии со следующей командой:

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

6. Импорт Kivy

При достижении этого этапа, ожидается, что Kivy уже установлен и успешно работает на вашем компьютере. Мы можем протестировать эту среду, импортировав Kivy, как показано на рисунке 2. Виртуальная среда активирована, Python активирован и Kivy успешно импортирован.

Источник: dzen.ru

Разработка приложения с использованием Python и OpenCV на Android устройстве

В это статье я хочу показать пример того, как андроид устройство можно использовать для разработки на таких языках программирования как python с библиотекой opencv в среде VSCode (будет использован code-server). В конце статьи приведено небольшое сравнение производительности Termux на моем Android устройстве и Raspberry Pi 3B.

Все действия описанные статье выполнялись на:
Huawei MediaPad M5 10.8
4GB ОЗУ, Hisilicon Kirin 960s, EMUI 9, без root

Для начала понадобится установить Termux (эмулятор терминала, предоставляющий возможности среды Linux), о придожении уже писали на habr.

Далее установим необходимые пакеты, а так же, для более быстрой настройки в дальнейшем, установим ssh сервер:

$ pkg update -y pkg install curl openssh autossh termux-services screen $ sv-enable sshd $ sv up sshd

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

$ whoami u0_a137 $ passwd

По умолчанию openssh прослушивает порт 8022, узнать ip адрес устройства можно с помощью команды ifconfig:

$ ifconfig wlan0: flags=4163 mtu 1500 inet 192.168.1.88 netmask 255.255.255.0 broadcast 192.168.1.255

Подключаемся к Termux:

Установить opencv-python в собственном окружении Termux мне не удалось, поэтому воспользуемся трудами Andronix и запустим в Termux Ubuntu 18.04.

$ curl https://raw.githubusercontent.com/AndronixApp/AndronixOrigin/master/Installer/Ubuntu/ubuntu.sh | bash

В официальном приложением Andronix можно найти команды для установки других дистрибутивов таких как Kali, Manjaro и т.д.
Если все выполнилось успешно на экране появится

You can now launch Ubuntu with the ./start-ubuntu.sh script

Запускаем Ubuntu
$ ./start-ubuntu.sh

Установим пакеты необходимые для разработки на python3 с использованием opencv:
$ apt update $ apt install curl git net-tools unzip yarn nano nodejs python3-dev python3-pip python3-opencv -y

Установка занимает довольно много времени.
Теперь установим code-server
$ curl -fsSL https://code-server.dev/install.sh | sh

После установки code-server необходимо отредактировать файл конфигурации
$ nano ~/.config/code-server/config.yaml bind-addr: 127.0.0.1:8080 auth: password password: 4a40bd9973dae545b3b4c037 cert: false

По умолчанию code-server прослушивает адрес 127.0.0.1:8080, для обращения к code-server с других устройств необходимо поменять bind-addr на 0.0.0.0:8080. Присутствует возможность авторизации по паролю. Для задания пароля необходимо изменить значение password. Для отключения авторизации необходимо указать auth: none.

Все действия в статье выполняются в Ubuntu без графического интерфейса в результате чего нет возможности использовать imshow, но есть способ транслировать видео в браузер используя библиотеку flask и специальный MIME тип multipart.

Чтобы не отвлекаться на написание кода, используемого в статье для примера, его можно взять в моем github репозитории.

$ git clone https://github.com/guinmoon/flask_opencv_sample $ cd flask_opencv_sample pip3 install flask
Открываем проект в code-server

При первом открытии будет предложено установить расширение Python — соглашаемся.
Установим приложение для потоковой передачи с камеры устройства, например IP Webcam. Главное требование к приложению — возможность транслировать с камеры поток понятный opencv, например rtsp. Разрешение видео потока настраиваем в зависимости от производительности устройства. На моем самое оптимальное 1280×720.

Запускаем трансляцию видео в IP Webcam и проект:

В заключение хочу отметить, что при наличии современного Android устройства его можно использовать как альтернативу raspberry pi. Так, например, сняв ограничения энергопотребления домашний планшет можно использовать как полноценный arm64 мини пк, работающий в фоне постоянно. При этом производительность у Termux вполне высокая.

Сравнение запуска того же кода на Raspberry pi 3

Далее несколько дополнений которые не вошли в основную статью

Память устройства

Для того чтобы иметь возможность обмениваться файлами между termux и android необходимо в выполнить команду

$ termux-setup-storage

Теперь локальная память устройства примонтирована в ~/storage
.Net Core

Присутствует возможность компилировать приложения .net-core, но к сожалению без возможности отладки так как нет версии OmniSharp скомпилированной под arm.
в start_ubuntu.sh
ищем строчку
command+=» -b /data/data/com.termux/files/home:/root»
и исправляем ее на
command+=» -b /data/data/com.termux/files/home»

curl -SL -o dotnet-sdk-3.1.403-linux-arm64.tar.gz https://download.visualstudio.microsoft.com/download/pr/7a027d45-b442-4cc5-91e5-e5ea210ffc75/68c891aaae18468a25803ff7c105cf18/dotnet-sdk-3.1.403-linux-arm64.tar

если ссылка не работает то руками качаем от сюда

mkdir -p /usr/share/dotnet tar -zxf dotnet-sdk-3.1.403-linux-arm64.tar.gz -C /usr/share/dotnet ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet dotnet new console -o app cd app dotnet run
Тестируем производительность с помощью sysbench
В sourses.list добавляем
deb ftp.debian.org/debian buster-backports main
apt-get update apt install sysbench sysbench —test=cpu —cpu-max-prime=20000 —num-threads=4 run

Источник: temofeev.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru