Забудьте про гигабайты Android SDK, NDK, Java и Gradle. Скоростной парсинг через zero-copy memoryview, нативное 16-килобайтное выравнивание под Android 15, распаковка Android Wheels и экспорт в Google Play, Apple App Store и Windows Store.
pip install pureapk
Создан с бескомпромиссным вниманием к автономности, скорости и отсутствию внешнего мусора.
Никаких 15–20 ГБ SDK, NDK, OpenJDK и Gradle. Все операции с APK (бинарный AXML, DEX, 16KB-выравнивание, подпись) работают на 100% чистом Python за секунды.
Нативная реализация стандарта Google 16KB Page Alignment для бинарников .so с официальным тегом 0xd935. Больше не нужен системный zipalign.exe.
Извлечение любого существующего APK, замена кода или манифеста, добавление wheels, авто-очистка старого META-INF/ и переподпись v1/v2 в одну команду.
Прямая генерация пакетов для Google Play (.aab), Apple App Store (.ipa с Info.plist), Microsoft Store (.msix с 64KB AppxBlockMap) и китайских сторов (--channel).
Инспекция и распаковка предсобранных .whl пакетов с раскладкой .so в lib/<abi>/. Авто-генератор GitHub Actions CI для сборки Cython NDK в облаке.
Использование __slots__ во всех классах, парсинг срезами memoryview и 100% подтверждённая потокобезопасность на Python 3.13t–3.16t (Free-Threaded No-GIL) и PyPy.
Шаблонизация, синтез манифестов и мгновенная упаковка в APK в один клик.
# 1. Инициализация каркаса проекта
pureapk init-kivy my_kivy_app --title "My Kivy App"
# 2. Установка чистых Python зависимостей прямо в проект
pureapk install-deps my_kivy_app/ requests urllib3
# 3. Мгновенная упаковка в релизный APK с 16KB выравниванием и цифровой подписью
pureapk pack-kivy my_kivy_app/ -o app.apk --release
# Либо мульти-канальная сборка под китайские маркетплейсы
pureapk pack-kivy my_kivy_app/ -o app_huawei.apk --channel huawei --release
# 1. Создание каркаса аркады на Pygame
pureapk init-pygame space_shooter --title "Space Shooter 2D"
# 2. Упаковка в Android APK (настройка ориентации landscape, OpenGL ES 2.0)
pureapk pack-pygame space_shooter/ -o shooter.apk --release
# Создание и упаковка современного Material 3 приложения
pureapk init-flet my_flet_app --title "Flet Dashboard"
pureapk pack-flet my_flet_app/ -o flet_app.apk --release
# Нативные системные виджеты ОС без лишних абстракций
pureapk init-toga native_app --title "BeeWare Native"
pureapk pack-toga native_app/ -o toga.apk --release
# Запуск веб-приложений через встроенный WebView Android
pureapk init-webview web_app --title "HTML5 Hybrid"
pureapk pack-webview web_app/ -o webview.apk --release
# Qt for Android интеграция
pureapk init-pyside qt_project --title "PySide6 App"
pureapk pack-pyside qt_project/ -o qt_app.apk --release
# Google Play: Сборка Android App Bundle (.aab)
pureapk pack-aab my_project/ -o release.aab
# Apple App Store: Генерация Info.plist и упаковка .ipa
pureapk init-ios ios_app --title "MyIOSApp" --bundle-id "com.company.app"
pureapk pack-ipa ios_app/ -o release.ipa --title "MyIOSApp"
# Microsoft Store: Генерация AppxManifest и .msix с 64KB BlockMap хешами
pureapk init-windows win_app --title "MyWinApp" --package "MyCompany.App"
pureapk pack-msix win_app/ -o release.msix
Полный рабочий цикл обновления существующих APK без единой строчки Java или Android SDK.
Извлеките файлы, ассеты, манифест и код из любого существующего APK-файла.
pureapk extract app_v1.apk ./workspace/
Обновите код, подкиньте нативные Android Wheels (.whl) или чистые библиотеки из PyPI.
pureapk unpack-wheel numpy.whl ./workspace/
Сборка v2: очищает старый META-INF/, выравнивает под Android 15 (16KB) и подписывает v1/v2.
pureapk pack ./workspace/ -o app_v2.apk --sign
Интерактивный поиск по встроенным инструментам pureapk / pyapk.
| Команда | Пример использования | Назначение |
|---|---|---|
pureapk info |
pureapk info app.apk [--json] |
Быстрая инспекция APK: пакет, SDK, архитектуры, 16KB выравнивание, подписи |
pureapk verify |
pureapk verify app.apk |
Валидация CRC32, цифровых подписей (v1/v2/v3) и 16KB-соответствия |
pureapk zipalign |
pureapk zipalign in.apk -o out.apk |
Выравнивание по страницам 16 КБ для Android 15 (тег 0xd935) без zipalign.exe |
pureapk unpack-wheel |
pureapk unpack-wheel pkg.whl ./app/ |
Распаковка Android Wheel: раскладка .so в lib/<abi>/ и кода в проект |
pureapk init-ci |
pureapk init-ci ./app/ --cython |
Генерация воркфлоу GitHub Actions для сборки Cython NDK в облаке |
pureapk install-deps |
pureapk install-deps ./app/ requests |
Установка чистых Python зависимостей прямо в директорию приложения |
pureapk compile-manifest |
pureapk compile-manifest AndroidManifest.xml -o out.axml |
Компиляция текстового XML в бинарный Android Binary XML (AXML) |
pureapk extract |
pureapk extract app.apk ./out_dir/ |
Распаковка полного содержимого APK-файла в указанную папку |
pureapk pack |
pureapk pack ./src/ -o app.apk --sign |
Сборка APK с 16KB-выравниванием и автоматической цифровой подписью |
pureapk sign |
pureapk sign app.apk |
Цифровая подпись APK схемами v1 (JAR) и v2 (APK Signing Block) |
pureapk pack-aab |
pureapk pack-aab ./app/ -o app.aab |
Сборка Google Play Android App Bundle с BundleConfig.pb |
pureapk pack-ipa |
pureapk pack-ipa ./app/ -o app.ipa |
Упаковка приложения для Apple App Store с PkgInfo и Info.plist |
pureapk pack-msix |
pureapk pack-msix ./app/ -o app.msix |
Сборка пакета Microsoft Store с вычислением 64KB хэшей AppxBlockMap |
pureapk generate-keystore |
pureapk generate-keystore -o release.keystore |
Генерация защищённого криптографического релизного ключа для сторов |
Доступно во всех ведущих репозиториях пакетов.
Установка стандартного легковесного пакета (~50 КБ, 0 зависимостей):
pip install pureapk
Установка из канала Anaconda.org:
conda install -c m_n_nik pureapk
Официальный системный репозиторий APT:
curl -sS https://eminsk.github.io/ppa/setup.sh | sudo bash