답변:
멀티 터치 앱과 같은 혁신적인 사용자 인터페이스를 사용하는 애플리케이션을 신속하게 개발하기위한 오픈 소스 Python 라이브러리.
Kivy는 Linux, Windows, OS X, Android 및 iOS에서 실행됩니다. 지원되는 모든 플랫폼에서 동일한 [python] 코드를 실행할 수 있습니다.
새로운 Android 스크립팅 환경 (ASE / SL4A) 프로젝트도 있습니다. 멋져 보이고 기본 Android 구성 요소와 일부 통합되어 있습니다.
참고 : 더 이상 "활성 개발"상태가 아니지만 일부 포크가있을 수 있습니다.
예! : Android 스크립팅 환경
SL4A 를 통한 Matt Cutts 의 예 - "여기 6 줄의 파이썬 코드로 작성된 바코드 스캐너가 있습니다 :
import android
droid = android.Android()
code = droid.scanBarcode()
isbn = int(code['result']['SCAN_RESULT'])
url = "http://books.google.com?q=%d" % isbn
droid.startActivity('android.intent.action.VIEW', url)
import android as a;d=a.Android();d.startActivity('android.intent.action.VIEW',"http://books.google.com?q=%d"%int(d.scanBarcode()['result']['SCAN_RESULT']))
Pygame 은 새로운 프로그래머에게 인기있는 Python (데스크톱 용) 용 2D 게임 엔진입니다. 안드로이드에 대한 파이 게임 부분적인 자체를 설명 ...
... Pygame 기능의 하위 세트를 Android 플랫폼으로 연결하는 포트입니다. 이 프로젝트의 목표는 Android 전용 게임을 만들고 PC와 같은 플랫폼에서 Android로 게임을 쉽게 포팅하는 것입니다.
예제에는 APK로 패키지 된 완전한 게임이 포함됩니다.
내 블로그에는 Android 용 Python 2.7.2를 크로스 컴파일하기위한 지침과 패치 가 있습니다.
또한 2D 게임 엔진 인 Ignifuga 소스를 오픈했습니다 . Python / SDL 기반이며 Android 용 크로스 컴파일입니다. 게임에 사용하지 않더라도 코드 또는 작성기 유틸리티 ( Tim의 이름을 따서 Schafer) 에서 유용한 아이디어를 얻을 수 있습니다 .
SL4A 는 당신이 원하는 것을합니다. 사이트에서 장치에 직접 쉽게 설치할 수 있으며 루트가 필요하지 않습니다.
다양한 언어를 지원합니다. 파이썬이 가장 성숙합니다. 기본적으로 Python 2.6을 사용하지만 대신 사용할 수 있는 3.2 포트가 있습니다. Galaxy S2의 모든 종류의 포트에 해당 포트를 사용했으며 정상적으로 작동했습니다.
SL4A는 android
지원되는 각 언어 에 대한 라이브러리 포트를 제공합니다 . 라이브러리는 단일 Android
객체를 통해 기본 Android API에 대한 인터페이스를 제공 합니다.
from android import Android
droid = Android()
droid.ttsSpeak('hello world') # example using the text to speech facade
각 언어에는 거의 동일한 API가 있습니다. 웹뷰 내에서 JavaScript API를 사용할 수도 있습니다.
let droid = new Android();
droid.ttsSpeak("hello from js");
사용자 인터페이스에는 세 가지 옵션이 있습니다.
옵션을 혼합하여 기본 인터페이스에 대한 웹뷰를 가질 수 있으며 기본 대화를 계속 사용할 수 있습니다.
QPython 이라는 타사 프로젝트가 있습니다 . SL4A를 기반으로하며 다른 유용한 기능을 제공합니다.
QPython은 설치를 관리하기위한 더 좋은 UI를 제공하며 패키지 관리를위한 작은 터치 스크린 코드 편집기, Python 쉘 및 PIP 쉘을 포함합니다. 또한 Python 3 포트가 있습니다. 두 버전 모두 Play 스토어에서 무료로 제공됩니다. QPython은 또한 Kivy를 포함하여 Android 프로젝트에 수많은 Python 라이브러리를 번들로 제공하므로 SL4A가 아닙니다.
QPython은 여전히 SL4A 포크를 개발합니다 (정직하지는 않지만). 주요 SL4A 프로젝트 자체는 거의 죽었습니다.
A와 파이썬 연인과 안드로이드 프로그래머, 나는이 갈 수있는 좋은 방법이 아니라고 슬프다. 두 가지 문제가 있습니다.
한 가지 문제는 안드로이드 개발 툴에 프로그래밍 언어 이상의 것이 많다는 것입니다. 많은 Android 그래픽에는 HTML과 유사하게 XML 파일이 포함되어 디스플레이를 구성합니다. 내장 Java 객체는이 XML 레이아웃과 통합되어 있으며 논리에서 비트 맵으로 이동하기 위해 코드를 작성하는 것보다 훨씬 쉽습니다.
다른 문제는 G1 (그리고 아마도 가까운 미래에 다른 안드로이드 기기)이 그렇게 빠르지 않다는 것입니다. 200MHz 프로세서와 RAM은 매우 제한적입니다. Java에서도 앱을 완벽하게 매끄럽게 만들려면 적절한 양의 재 작성을 피해야합니다. 파이썬은 여전히 모바일 장치에서 너무 느릴 것입니다.
@JohnMudd가 Kivy에 대해 쓴 내용을 추가하고 싶었습니다. 그가 묘사 한 지 수년이 지났고 키비는 실질적으로 진화했습니다.
Kivy의 가장 큰 판매 포인트는 크로스 플랫폼 호환성입니다. 모든 데스크톱 환경 (Windows / * nix 등)을 사용하여 모든 것을 코딩하고 테스트 한 다음 Android, iOS, MacOS 및 Windows를 포함한 다양한 플랫폼에 맞게 앱을 패키지화 할 수 있습니다 (앱에는 기본 모양과 느낌이없는 경우가 많습니다).
Kivy의 자체 KV 언어를 사용하면 GUI 인터페이스를 쉽게 코딩하고 빌드 할 수 있습니다 (Java XML과 비슷하지만 TextView 등이 아니라 KV는 ui.widgets
비슷한 번역을 위해 자체 번역했습니다).
현재 Buildozer 및 python-for-android 는 앱을 빌드하고 패키징하는 데 가장 권장되는 도구입니다. 나는 두 가지 모두를 시험해 보았고 파이썬으로 Android 앱을 만드는 것이 바람이 없다고 단언 할 수 있습니다. 그들의 가이드도 잘 정리되어 있습니다.
iOS는 Kivy의 또 다른 큰 판매 포인트입니다. 장치에서 실행하기 전에 빌드에 Xcode가 필요하지만 kivy-ios Homebrew 도구 를 통해 약간의 변경만으로 동일한 코드베이스를 사용할 수 있습니다 ( Xcode의 AFAIK iOS 시뮬레이터는 현재 x86 아키텍처 빌드에서 작동하지 않음) . 성공적인 빌드를 위해 Xcode에서 수동으로 컴파일하고 주변을 둘러싼 의존성 문제도 있지만 해결하기가 어렵지 않으며 Kivy Google Group의 사람들 도 실제로 도움이됩니다.
모든 것을 말하지만, 좋은 파이썬 지식을 가진 사용자는 기본 사항을 빨리 집어 올리는 데 아무런 문제가 없어야합니다.
보다 심각한 프로젝트에 Kivy를 사용하는 경우 기존 모듈이 만족스럽지 않을 수 있습니다. 그러나 몇 가지 실행 가능한 솔루션이 있습니다. (작업 진행 중)으로 pyjnius 안드로이드에 대한, 그리고 pyobjus , 사용자는 이제 액세스 자바 / 오브젝티브 C 클래스는 네이티브 API의 일부를 제어 할 수 있습니다.
ScreenManager
이를 사용 하면 많은 시간을 절약 할 수 있습니다. 또한 조언은 기꺼이 도움을 줄 수있는 지식이 풍부한 사람들의 메일 링리스트를 읽는 것입니다.
Android 용 POSIX 환경을 제공하는 Termux 앱을 사용하여 Python을 설치할 수 있습니다.
참고 apt install python
Termux에 Python3를 설치합니다. Python2의 경우을 사용해야 apt install python2
합니다.
SL4A (다른 답변에서 이미 언급 한)를 사용하면 완전한 web2py 인스턴스를 실행할 수 있습니다 (다른 파이썬 웹 프레임 워크 도 후보가 될 수 있음). SL4A는 기본 UI 구성 요소 (버튼, 스크롤 막대 등)을 수행 할 수는 없지만 지원하지 WebViews을 . WebView는 기본적으로 고정 주소를 가리키는 스트라이프 다운 웹 브라우저에 지나지 않습니다. 기본 Gmail 앱은 일반 위젯 경로를 사용하는 대신 WebView를 사용한다고 생각합니다.
이 경로에는 몇 가지 흥미로운 기능이 있습니다.
QPython 앱을 사용 합니다 . 무료이며 코드 편집기, 대화식 인터프리터 및 패키지 관리자가 포함되어 있으므로 장치에서 직접 Python 프로그램을 만들고 실행할 수 있습니다.
로부터 안드로이드를위한 파이썬 사이트 :
Android 용 Python은 원하는 모듈을 포함하여 자체 Python 배포를 작성하고 python, libs 및 애플리케이션을 포함하여 apk를 작성하는 프로젝트입니다.
Chaquopy 는 Android Studio의 Gradle 기반 빌드 시스템 용 플러그인입니다. 표준 Android 개발 도구와의 긴밀한 통합 에 중점을 둡니다 .
Python에서 Java 또는 Java에서 Python 을 호출하는 완전한 API를 제공 하므로 개발자는 앱의 각 구성 요소에 가장 적합한 언어를 사용할 수 있습니다.
PyPI 패키지를 자동으로 다운로드 하여 NumPy와 같은 선택된 기본 패키지를 포함하여 앱에 빌드 할 수 있습니다.
기본 사용자 인터페이스 툴킷 ( 예 : pure-Python activity )을 포함하여 Python의 모든 Android API에 완전히 액세스 할 수 있습니다 .
이 제품은 상용 제품이지만 오픈 소스 사용에는 무료이며 항상 그대로 유지됩니다.
(저는이 제품의 제작자입니다.)
또 다른 시도 : https://code.google.com/p/android-python27/
이것은 앱 APK에 Python 인터프리터를 직접 포함시킵니다.
공식 파이썬 웹 사이트에 나열된 도구는 다음과 같습니다.
playstore 에는 QPython3 이라는 앱이 있습니다.이 앱은 파이썬 스크립트를 편집하고 실행하는 데 사용할 수 있습니다.
Termux 라는 또 다른 앱명령을 사용하여 파이썬을 설치할 수있는
pkg install python
응용 프로그램을 개발하려면 Python Android Scripting Layer ( SL4A )가 있습니다.
The Scripting Layer for Android, SL4A, is an open source application that allows programs written in a range of interpreted languages to run on Android. It also provides a high level API that allows these programs to interact with the Android device, making it easy to do stuff like accessing sensor data, sending an SMS, rendering user interfaces and so on.
Android 용 PySide를 확인할 수도 있습니다실제로 실제로 Qt 4에 대한 Python 바인딩입니다.
PyMob 이라는 플랫폼이 있습니다 에는 앱을 Python으로 순수하게 작성할 수 있으며 PyMob (컴파일러 도구 흐름)은 다양한 플랫폼의 원시 소스 코드로 앱을 변환합니다.
python-for-android 도 확인하십시오.
python-for-android is an open source build tool to let you package Python code into standalone android APKs. These can be passed around, installed, or uploaded to marketplaces such as the Play Store just like any other Android app. This tool was originally developed for the Kivy cross-platform graphical framework, but now supports multiple bootstraps and can be easily extended to package other types of Python apps for Android.
Chaquopy를 보십시오 Android 용 Python SDK
Anddd ... BeeWare
BeeWare allows you to write your app in Python and release it on multiple platforms. No need to rewrite the app in multiple programming languages. It means no issues with build tools, environments, compatibility, etc.
QPython 을 사용할 수 있습니다 .
Python 콘솔, 편집기 및 패키지 관리 / 설치 프로그램이 있습니다.
Python 2 및 Python 3 구현이 모두 포함 된 오픈 소스 프로젝트입니다. 소스 및 Android .apk 파일을 github에서 직접 다운로드 할 수 있습니다.
QPython 2 : https://github.com/qpython-android/qpython/releases
QPython 3 : https://github.com/qpython-android/qpython3/releases
3.4.2 또는 3.5.1을 찾고 있다면 다른 옵션은 GitHub의이 아카이브입니다.
Python3-Android 3.4.2 또는 Python3-Android 3.5.1
현재 Python 3.4.2 또는 3.5.1 및 NDK의 10d 버전을 지원합니다. 또한 3.3 및 9c, 11c 및 12를 지원할 수 있습니다
간단하게 다운로드하여 make를 실행하면 .so 또는 .a를 얻습니다.
나는 현재 이것을 안드로이드 장치에서 원시 파이썬을 실행하는 데 사용합니다. 빌드 파일을 몇 가지 수정하면 x86 및 armeabi 64 비트를 만들 수도 있습니다.
여기에 게시 된 것을 보지 못했지만 Pyside 및 Qt로 할 수 있습니다. 이제 Qt는 Necessitas 덕분에 Android에서 작동합니다.
그것은 현재로서는 꽤 혼란스러운 것처럼 보이지만 결국 실행 가능한 경로 일 수 있습니다 ...
또 다른 옵션은 문서를 인용하는 pyqtdeploy 인 것 같습니다 .
Qt와 함께 제공되는 다른 도구와 함께 사용하면 Python v2.7 또는 Python v3.3 이상으로 작성된 PyQt4 및 PyQt5 응용 프로그램을 배포 할 수 있습니다. 데스크톱 플랫폼 (Linux, Windows 및 OS X) 및 모바일 플랫폼 (iOS 및 Android)에 대한 배포를 지원합니다.
pyqtdeploy 및 Qt5를 통해 PyQt5 응용 프로그램을 Android 에 배포하는 데 따르면 필요한 모든 라이브러리를 Android로 크로스 컴파일하는 방법에 대한 Android 응용 프로그램 또는 자습서의 예제를 찾기가 어렵지만 적극적으로 개발되고 있습니다. 그래도 명심해야 할 흥미로운 프로젝트입니다!
BeeWare를 살펴 보십시오 . 이 질문에 대답하는 순간 아직 초기 개발 단계에 있습니다. 안드로이드를 포함하여 지원되는 모든 운영 체제에 대해 Python으로 기본 앱을 만들 수 있도록하는 것이 목표입니다.
enaml-native 확인반응 네이티브 개념을 사용하여 파이썬에 적용하는 를 .
사용자가 기본 Android 위젯으로 앱을 빌드하고 Python의 Android 및 Java 라이브러리를 사용하는 API를 제공합니다.
또한 android-studio와 통합되며 코드 다시로드 및 원격 디버깅과 같은 반응의 멋진 개발 기능 중 일부를 공유합니다.