Создание APK приложения для Смартфонов. Способ создания с помощью Python и Библиотек от BeeWare. Май 2026 г. Эксперимент.
Создание Приложения
для Андроид смартфонов
с помощью Python
Шаг 1
Создание Папки с Проектом:
mkdir My_APK_may_2026
cd My_APK_may_2026
python3 -m venv beeware-venv_new
source beeware-venv_new/bin/activate
Установка библиотек и пакетов
python -m pip install briefcase
Запуск проекта с нуля:
briefcase new
Выбор на позицию 1:
1) Toga
2) PySide6 (does not support iOS/Android/Web deployment)
3) Pygame (does not support iOS/Android/Web deployment)
4) Console (does not support iOS/Android/Web deployment)
5) Other frameworks
6) None
GUI Framework [1]:
1
Официальное название(Formal Name): OlegS_Gui_01
Название приложения ( App Name): My_Androids_Start
Bundle Identifier [com.example]: com.example
Название проекта (Project Name): Oleg_S_Gui_ver_01
Описание проекта (Description): Первый проект BeeWare от автора Oleg S
Автор проекта Author [olegsamara-63]: olegsamara-63
Адрес эл.почты автора Author's Email [olegsamara-63@yandex.ru]: olegsamara-63@yandex.ru
Application URL [https://example.com/My_Androids_Start]: https://example.com/My_Androids_Start
Project License [1]: 1
To run your application, type:
$ cd My_Androids_Start
$ briefcase dev
(beeware-venv_new) oleg@Oleg:~/My_APK_may_2026$
(beeware-venv_new) oleg@Oleg:~/My_APK_may_2026$ cd My_Androids_Start
(beeware-venv_new) oleg@Oleg:~/My_APK_may_2026/My_Androids_Start$ briefcase dev
Запуск состоялся
Пустое окно
Две кнопки
Запуск приложения в режиме разработки
cd My_Androids_Start
briefcase dev
Содержимое файла app.py:
"""
Первый проект BeeWare от автора Oleg S
"""
import toga
from toga.style.pack import COLUMN, ROW
class OlegS_Gui_01(toga.App):
def startup(self):
"""Construct and show the Toga application.
Usually, you would add your application to a main content box.
We then create a main window (with a name matching the app), and
show the main window.
"""
main_box = toga.Box()
self.main_window = toga.MainWindow(title=self.formal_name)
self.main_window.content = main_box
self.main_window.show()
def main():
return OlegS_Gui_01()
Добавление содержимого в файл app.py:
#Новое содержимое файла app.py:
import toga
from toga.style.pack import COLUMN, ROW
class OlegS_Gui_01(toga.App):
def startup(self):
main_box = toga.Box(direction=COLUMN)
name_label = toga.Label(
"Your name: ",
margin=(0, 5),
)
self.name_input = toga.TextInput(flex=1)
name_box = toga.Box(direction=ROW, margin=5)
name_box.add(name_label)
name_box.add(self.name_input)
button = toga.Button(
"Say Hello!",
on_press=self.say_hello,
margin=5,
)
main_box.add(name_box)
main_box.add(button)
self.main_window = toga.MainWindow(title=self.formal_name)
self.main_window.content = main_box
self.main_window.show()
# def say_hello(self, widget):
# print(f"Hello, {self.name_input.value}")
def say_hello(self, widget):
# Создаём диалоговое окно с приветствием
name = self.name_input.value
if name.strip():
self.main_window.info_dialog("Приветствие", f"Hello, {name}!")
else:
self.main_window.info_dialog("Ошибка", "Пожалуйста, введите ваше имя!")
def main():
return OlegS_Gui_01()
Запуск приложения после изменения содержимого в файле app.py
briefcase dev
Обновление Кода, команда: briefcase update
Компилляция для Смартфона Andriod:
briefcase create android
Сборка в файл APK.py
briefcase build android
Добавление изменений в Контент:
Новый Код с ответом пользователю -
#Новое содержимое файла app.py:
import toga
from toga.style.pack import COLUMN, ROW
class OlegS_Gui_01(toga.App):
def startup(self):
main_box = toga.Box(direction=COLUMN)
name_label = toga.Label(
"Your name: ",
margin=(0, 5),
)
self.name_input = toga.TextInput(flex=1)
name_box = toga.Box(direction=ROW, margin=5)
name_box.add(name_label)
name_box.add(self.name_input)
button = toga.Button(
"Say Hello!",
on_press=self.say_hello,
margin=5,
)
main_box.add(name_box)
main_box.add(button)
self.main_window = toga.MainWindow(title=self.formal_name)
self.main_window.content = main_box
self.main_window.show()
# def say_hello(self, widget):
# print(f"Hello, {self.name_input.value}")
# def say_hello(self, widget):
# # Создаём диалоговое окно с приветствием
# name = self.name_input.value
# if name.strip():
# self.main_window.info_dialog("Приветствие", f"Hello, {name}!")
# else:
# self.main_window.info_dialog("Ошибка", "Пожалуйста, введите ваше имя!")
def say_hello(self, widget):
name = self.name_input.value
if name.strip():
# Создаём многострочное приветствие
welcome_text = (
f"Уважаемый(ая) {name}!\n\n"
"Компания WebTestersCompany \n"
"приветствует Вас!\n"
"Мы рады знакомству!\n\n"
"Посетите наш сайт по адресу:\n"
"https://profitest.h1n.ru"
)
self.main_window.info_dialog("Приветствие", welcome_text)
else:
self.main_window.info_dialog("Ошибка", "Пожалуйста, введите ваше имя!")
def main():
return OlegS_Gui_01()
Пересборка с изменениями в контенте:
Команды по отдельности -
Обновите и пересоберите приложение
bash
# Обновляем код в Android-проекте
briefcase update android
# Пересобираем APK
briefcase build android
# Устанавливаем и запускаем на телефоне
briefcase run android
Или
Одной командой:
briefcase run android -u
если надо запустить в эмуляторе на ПК
briefcase run android
Если краш на Смартфоне состоялся вместо запуска Приложения после внесения
изменнений в контент Приложения
Обновите приложение на телефоне
Поскольку вы меняли код и сборка "сломалась", лучше сделать полную чистую пересборку:
bash
cd ~/My_APK_may_2026/My_Androids_Start
# 1. Полностью удаляем старую Android-сборку
rm -rf build/My_Androids_Start/android
# 2. Создаём заново
briefcase create android
# 3. Обновляем код
briefcase update android
# 4. Собираем APK
briefcase build android
# 5. Устанавливаем и запускаем
briefcase run android