Як зробити додаток для Android повністю в Python? [зачинено]


104

Я хотів би розробити (досить простий) додаток для Android для розповсюдження через Play Store. Я хотів би зробити це повністю в python. Однак онлайн-дослідження мене не зовсім просвітлило: більшість коментарів або застарілі (> 1 рік, і я відчуваю, що з тих пір може бути краща інтеграція python), або вони говорять про запуск python в android (наприклад, тут ).

Тому я шукаю інформацію стосовно питань:

  • чи можливо повністю розробити додаток на python - і які інструменти для цього? (Чи рекомендується, наприклад, Ківі?)
  • якщо так: які найкращі програмні середовища для реалізації цього? (Я безуспішно намагався використовувати Android Studio, але не міг знайти спосіб запустити там код python.)

Я зовсім новачок у розробці додатків і був би дуже вдячний за будь-які можливості зробити це в python, а не в Jave тощо, чого я поки не знаю.

Велике спасибі за допомогу заздалегідь.


раніше я використовував kivy та їх програму buildozer. вони мають тут документацію kivy.org/docs/guide/packaging-android.html
es

Власне ви повинні використовувати Java або Kotlin, однак, як зазначали інші, існують сторонні "конструктори додатків" або фреймворки, які ви можете використовувати з python, такими як PyMob або Kivy.
Домінік Шмідт,

6
Я створив гру для Android, яка повністю розроблена на Python за допомогою Kivy. Він називається CoinTex, доступний тут у Google Play: play.google.com/store/apps/details?id=coin.tex.cointexreactfast . Вихідний код гри доступний тут за адресою GitHub: github.com/ahmedfgad/CoinTex . Я також написав книгу, яка буде видана цього року для створення додатків для Android за допомогою Python. Він називається "Створення програм для Android на Python за допомогою Kivy з Android Studio: За допомогою Pyjnius, Plyer та Buildozer Ahmed Fawzy Gad", доступний тут на Amazon: amazon.com/dp/1484250303 .
Ахмед Гад

1
Не вдається опублікувати відповідь, але тут, схоже, є рішення : Будуть продемонстровані різні технології, включаючи графічні інтерфейси QML на основі PySide з використанням порту Necessitas Qt та підхід на основі Py4A / SL4A, який можна поєднувати з WebKit та -використовувати веб-фреймворки Python.
Basj

Відповіді:


111

Щоб відповісти на ваше перше запитання: так, можливо розробити додаток для Android на чистому python , для цього я пропоную вам використовувати BeeWare , який є просто набором інструментів python , які дуже добре працюють разом, і вони дозволяють вам розвиватися власні програми на платформі в python.

перевірка це відео творця BeeWare , який прекрасно пояснює і демонструє це додаток

Як це працює

Уподобаною мовою реалізації Android є Java - тому, якщо ви хочете написати програму для Android на Python, вам потрібно мати спосіб запускати ваш код Python на віртуальній машині Java. Це те, що робить VOC . VOC є транслятором - він бере вихідний код Python, компілює його до байтового коду CPython, а потім транспілює цей байт-код у сумісний з Java байт-код. Кінцевим результатом є те, що файли вихідного коду Python компілюються безпосередньо у файл .class Java, який можна упакувати в програму Android.

VOC також дозволяє отримати доступ до власних об'єктів Java, як якщо б вони були об'єктами Python, реалізувати інтерфейси Java з класами Python та підкласи Java-класи з класами Python. Використовуючи це, ви можете написати програму для Android безпосередньо проти власних API для Android.

Після того, як ви написали рідну програму для Android, ви можете використовувати портфель для упаковки коду Python як програми для Android.

Портфель - це інструмент для перетворення проекту Python в самостійний власний додаток. Ви можете упакувати проекти для:

  • Мак
  • Windows
  • Linux
  • iPhone / iPad
  • Android
  • AppleTV
  • tvOS.

Ви можете перевірити цю рідну програму для Android Tic Tac Toe, написану на Python, за допомогою пакета BeeWare. на GitHub

на додаток до інструментів BeeWare, для тестового запуску програми вам потрібно встановити JDK та Android SDK.

і відповісти на ваше друге запитання: гарним середовищем може бути все, що вам зручно, будь то текстовий редактор і командний рядок, або IDE, якщо ви шукаєте хороший python IDE, я б запропонував спробувати Pycharm , він має спільне видання, яке є безкоштовним, і воно має подібне середовище, як андроїд-студія, завдяки тому, що було зроблено тією ж компанією.

Сподіваюсь, це було корисно


1
Це лише я, чи від ЛОС відмовились?
Позов до Моніки

2
це глухий кут (Востаннє перевіряв: грудень 2018 р.). Один або кілька компонентів цього надто складного рішення вже не функціонують або не можуть підтримувати свою актуальність.
Беррі Цакала

2
Лише оновлення цього на 2019 рік, але Kotlin зараз є найкращою мовою для розробки Android.
DaveTheMinion

3
@Basj Я хотів би сказати, що Beeware точно буде деякий час, адже, просто зазирнувши до його акаунту GitHub, ви виявите, що він активно розробляється, і якщо ви перейдете на канал Gitter, ви зможете завжди доходити до всієї команди, особливо доктора Рассела (freakyboy), творця, і спільнота досить дружня, а також був нещодавній твіт (26 вересня 2019 р.) із їхнього офіційного акаунту, в якому повідомлялося, що вони отримали грант на освіту від Python фундамент програмного забезпечення. Я думаю, що це було б вашим часу, особливо якщо вам подобається python як мова
maroof shittu

1
Здається, BeeWare на цьому етапі не підтримує Android (Java).
Марк Андерсон,

15

Ви можете спробувати BeeWare - як описано на їх веб-сайті:

Напишіть свої програми на Python і випустіть їх на iOS, Android, Windows, MacOS, Linux, Web та tvOS, використовуючи розширені власні користувацькі інтерфейси. Одна кодова база. Кілька програм.

Це дає вам бажання писати програми для Android на Python, плюс має ту перевагу, що вам не потрібно буде вивчати ще один фреймворк, якщо ви в кінцевому підсумку також захочете щось зробити на одній з інших перерахованих платформ.

Ось підручник для програм для Android .


4
Ви самі створювали програму за допомогою BeeWare?
Беррі Цакала

11

Є два основних претенденти на програми python на Android

Chaquopy

https://chaquo.com/chaquopy/

Це інтегрується з системою збірки Android, вона забезпечує API Python для всіх функцій Android. Процитувавши сайт, "Повний Android API та інструментарій користувальницького інтерфейсу безпосередньо у вашому розпорядженні".

Обережно (набір інструментів Toga віджет)

https://pybee.org/

Це забезпечує багатоцільовий транспілер, підтримує багато цілей, таких як Android та iOS. Він використовує загальний набір віджетів (тога), який відображає виклики інтерфейсу хоста.

Який?

Обидва вони є активними проектами, і їхні рахунки в github показують значну кількість останніх активностей.

Обережно, Toga, як і всі бібліотеки віджетів, добре підходить для отримання основних відомостей на декількох платформах. Якщо у вас є базовий дизайн і ви хочете розширити свою діяльність на інших платформах, це повинно вдатися для вас.

З іншого боку, Chaquopy набагато точніше перекладає API python на Android. Це також дозволяє змішувати на Java, корисно, якщо ви хочете використовувати наявний код з інших ресурсів. Якщо у вас є суворі цілі дизайну, і ви переважно хочете націлитись на Android, це набагато кращий ресурс.


10

Android, Python!

Коли я побачив ці два ключові слова разом у вашому запитанні, саме Ківі мені прийшло в голову першим.

Ківі логотип

Перш ніж перейти до власної розробки Android на Java за допомогою Android Studio, я спробував Kivy . Це просто приголомшливо. Ось кілька переваг, які я міг би з’ясувати.


Простий у використанні

З основами пітону ви не будете мати проблем з його вивченням.


Хороша громада

Це добре задокументовано і має чудову, активну спільноту.


Крос-платформа.

За допомогою цього єдиного фреймворку ви можете розробити щось для Android, iOS, Windows, Linux і навіть Raspberry Pi. Відкрите джерело.


Це безкоштовне програмне забезпечення

Принаймні небагато конкурентів (на різних платформах) хочуть, щоб ви заплатили комісію, якщо хочете отримати комерційну ліцензію.


Підтримка прискореної графіки

Графічний движок Kivy , побудований на OpenGL ES 2, робить його придатним для програмного забезпечення, яке вимагає швидкого візуалізації графіки, такого як ігри.



Тепер, переходячи до наступної частини питання, ви не можете використовувати IDE для Android Studio для Kivy. Ось докладний посібник із налаштування середовища розробки.


4
Підтримка Windows значно відстає від виробничих стандартів (або навіть від любителів). Крім того, половина світу не може ним користуватися через відсутність підтримки RTL.
Беррі Цакала

Чому ви залишили Ківі та змінили його на власні засоби розробки? Ви припускаєте, що він має деякі недоліки.
igoemon
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.