문제

우리는 다음 작업을 진행 중입니다. S60 버전이며 이 플랫폼에는 멋진 Python API가 있습니다.

그러나 Android의 Python에 대한 공식적인 내용은 없습니다. 자이썬 존재하는데, 뱀과 로봇이 함께 일할 수 있는 방법이 있나요??

도움이 되었습니까?

해결책

한 가지 방법은 다음과 같습니다. 키비:

멀티 터치 앱과 같은 혁신적인 사용자 인터페이스를 사용하는 응용 프로그램의 빠른 개발을위한 오픈 소스 Python 라이브러리.

Kivy는 Linux, Windows, OS X, Android 및 iOS에서 실행됩니다.지원되는 모든 플랫폼에서 동일한 [python] 코드를 실행할 수 있습니다.

Kivy 쇼케이스 앱

다른 팁

신제품도 있어요 Android 스크립팅 환경 (ASE/SL4A) 프로젝트.그것은 멋져 보이며 기본 Android 구성 요소와 일부 통합되어 있습니다.

메모:더 이상 "활성 개발" 상태가 아니지만 일부 포크는 그럴 수 있습니다.

예!: Android 스크립팅 환경

맷 컷츠를 통해 SL4A를 통해 -- "다음은 6줄의 Python 코드로 작성된 바코드 스캐너입니다.

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)

또한 있습니다 SL4A Google 직원이 크게 작성했습니다.

"그만큼 안드로이드용 파이게임 하위 집합 Pygame 기능의 하위 집합을 Android 플랫폼으로 포트한 것입니다.이 프로젝트의 목표는 Android 전용 게임을 만들 수 있도록 하고, PC와 유사한 플랫폼에서 Android로 게임을 쉽게 이식하는 것입니다."

예제에는 APK에 패키지된 완전한 게임이 포함되어 있는데, 이는 매우 흥미롭습니다.

Android용 Python 2.7.2 크로스 컴파일에 대한 지침과 패치를 게시했습니다. 여기 내 블로그에서 다운로드할 수 있습니다. http://mdqinc.com/blog/2011/09/cross-compiling-python-for-android/

편집하다:오픈소스를 공개했어요 이그니푸가, 내 2D 게임 엔진은 Python/SDL 기반이며 Android용으로 크로스 컴파일됩니다.게임에 사용하지 않더라도 코드와 빌더 유틸리티(Tim의 이름을 딴 Schafer라는 이름)에서 유용한 아이디어를 얻을 수 있습니다.

Android용 스크립팅 레이어

SL4A 당신이 원하는 것을합니다.해당 사이트에서 장치에 직접 쉽게 설치할 수 있으며 루트가 필요하지 않습니다.

다양한 언어를 지원합니다.Python이 가장 성숙합니다.기본적으로 Python 2.6을 사용하지만 3.2 포트 대신 사용할 수 있습니다.나는 Galaxy S2의 모든 종류의 작업에 해당 포트를 사용해 보았는데 잘 작동했습니다.

API

SL4A는 포트를 제공합니다. android 지원되는 각 언어에 대한 라이브러리입니다.라이브러리는 단일 인터페이스를 통해 기본 Android API에 대한 인터페이스를 제공합니다. Android 물체.

from android import Android

droid = Android()
droid.ttsSpeak('hello world') # example using the text to speech facade

각 언어에는 거의 동일한 API가 있습니다.Webview 내에서 JavaScript API를 사용할 수도 있습니다.

let droid = new Android();
droid.ttsSpeak("hello from js");

사용자 인터페이스

사용자 인터페이스에는 세 가지 옵션이 있습니다.

  • API를 통해 일반적인 기본 대화와 메뉴를 쉽게 사용할 수 있습니다.이는 확인 대화 상자 및 기타 기본 사용자 입력에 적합합니다.
  • 파이썬 스크립트 내부에서 웹 뷰를 열고 사용자 인터페이스에 html5를 사용할 수도 있습니다.Python에서 WebViews를 사용하면 WebView와 Python 프로세스 사이에서 메시지를 앞뒤로 전달할 수 있습니다.UI는 기본이 아니지만 여전히 좋은 선택입니다.
  • 있다 일부 기본 Android 사용자 인터페이스를 지원하지만 그것이 얼마나 잘 작동하는지 잘 모르겠습니다.나는 그것을 사용한 적이 없습니다.

옵션을 혼합하여 기본 인터페이스에 대한 웹 보기를 갖고 기본 대화 상자를 계속 사용할 수 있습니다.

Q파이썬

라는 타사 프로젝트가 있습니다. Q파이썬.SL4A를 기반으로 구축되었으며 다른 유용한 기능도 포함되어 있습니다.

QPython은 설치를 관리하기 위한 더 멋진 UI를 제공하며 작은 터치스크린 코드 편집기, Python 쉘 및 패키지 관리를 위한 PIP 쉘을 포함합니다.또한 Python 3 포트도 있습니다.두 버전 모두 Play 스토어에서 무료로 다운로드할 수 있습니다.QPython은 또한 Kivy를 포함한 Android 프로젝트의 여러 Python 라이브러리를 번들로 제공하므로 단순한 SL4A가 아닙니다.

QPython은 여전히 ​​SL4A의 포크를 개발하고 있습니다(솔직히 말해서 많지는 않습니다).주요 SL4A 프로젝트 자체는 거의 죽었습니다.

유용한 링크

로서 파이썬 연인이자 안드로이드 프로그래머인 여러분, 이것이 정말 좋은 방법이 아니라는 것이 안타깝습니다.두 가지 문제가 있습니다.

한 가지 문제는 Android 개발 도구에 단순한 프로그래밍 언어 이상의 기능이 있다는 것입니다.많은 Android 그래픽에는 HTML과 유사하게 디스플레이를 구성하기 위한 XML 파일이 포함됩니다.내장된 Java 개체는 실제로 이 XML 레이아웃과 통합되며 논리에서 비트맵으로 이동하는 코드를 직접 작성하는 것보다 훨씬 쉽습니다.

또 다른 문제는 G1(그리고 아마도 가까운 미래에 출시될 다른 Android 장치)이 실제로 그렇게 빠르지 않다는 것입니다.200MHz 프로세서 및 RAM이 매우 제한되어 있습니다.Java에서도 앱을 완벽하게 매끄럽게 만들려면 더 많은 객체 생성을 피하기 위해 상당한 양의 재작성을 수행해야 합니다.모바일 장치에서는 Python이 한동안 너무 느려질 것입니다.

키비


나는 이것을 확장으로 게시하고 싶습니다. @존머드 이미 답변했습니다(하지만 영어가 제 모국어가 아니니 양해해 주시기 바랍니다.)

그로부터 수년이 지났고 Kivy는 v1.9-dev로 발전했습니다.내 생각에 Kivy의 가장 큰 판매 포인트는 크로스 플랫폼 호환성입니다.로컬 환경(Windows/*nix 등)에서 코딩하고 테스트할 수 있으며, Android/iOS/Mac/Windows 장치에서 실행되도록 앱을 빌드, 디버그 및 패키징할 수도 있습니다.

Kivy 자신의 케이 V 언어를 사용하면 GUI 인터페이스를 쉽게 코딩하고 구축할 수 있습니다(Java XML과 비슷하지만 TextView 등이 아닌 KV에는 자체적인 인터페이스가 있습니다). ui.widgets 유사한 번역의 경우) 제 생각에는 채택하기가 매우 쉽습니다.

현재 빌도저 그리고 안드로이드용 파이썬 앱을 빌드/패키징하는 데 가장 권장되는 도구입니다.나는 두 가지를 모두 시도해 보았고 Python을 사용하여 Android 앱을 쉽게 구축할 수 있다고 확신합니다.콘솔/터미널/명령 프롬프트에서 편안함을 느끼는 사용자는 이를 사용하는 데 아무런 문제가 없을 것이며 해당 가이드도 잘 문서화되어 있습니다.

게다가 iOS는 Kivy의 또 다른 큰 판매 포인트입니다. 키비-ios Homebrew 도구(기기에서 실행하기 전에 빌드에 Xcode가 필요하지만)(AFAIK Xcode의 iOS 시뮬레이터는 현재 x86 아키텍처 빌드에서 작동하지 않습니다).성공적인 빌드를 위해 Xcode에서 수동으로 컴파일하고 조정해야 하는 몇 가지 종속성 문제도 있지만 해결하기가 그리 어렵지는 않습니다. 키비 구글 그룹 정말 도움이 되기도 해요.

종합해보면, Python 지식이 풍부한 사용자는 간단한 앱을 구축하기 위해 몇 주(일은 아니더라도) 안에 기본 사항을 익히는 데 아무런 문제가 없을 것입니다.

또한 언급할 가치가 있는 점은 Python 모듈을 빌드와 함께 번들링(빌드 레시피)할 수 있으므로 사용자가 Python이 제공하는 다음과 같은 많은 기존 라이브러리를 실제로 활용할 수 있다는 것입니다. 요청사항 & 등.~을 통해 Kivy의 확장 지원.

때때로 응용 프로그램에는 Kivy가 제공 할 수있는 범위를 벗어난 기능이 필요합니다.이 경우 외부 소프트웨어 라이브러리에 의지해야합니다.파이썬 생태계의 풍부함을 감안할 때, 즉시 단순히 가져오고 사용할 수있는 소프트웨어 라이브러리가 이미 많이 있습니다.

마지막으로, 더 진지하고 상업적인 프로젝트에 Kivy를 사용하려는 경우 기존 모듈이 만족스럽지 않을 수 있습니다.하지만 "진행 중인 작업"과 함께 몇 가지 실행 가능한 솔루션이 있습니다. 피니우스 안드로이드의 경우, 표주.이제 사용자는 해당 모듈을 통해 Java/Objective-C 클래스에 액세스하여 일부 기본 API를 제어할 수 있습니다.

Kivy에 대한 내 경험에 따르면 노련한 Python 프로그래머와 빠른 개발 또는 간단한 코드 기반 유지 관리를 원하는 일부 진지한 프로그래머에게 가장 적합할 것입니다.실제로는 아니지만 여러 플랫폼에서 잘 실행됩니다. 토종의 감정.

일부 Python 앱 프로그래머가 이 정보가 유용하다고 생각하고 Kivy를 살펴보기를 바랍니다.커뮤니티의 큰 관심이 있는 경우에만 더 좋아질 수 있습니다(더 많은 지원과 라이브러리/모듈 이식으로).

추신저는 Kivy와 전혀 관계가 없습니다. 저는 단지 Python 코딩의 즐거움을 모바일/크로스 플랫폼 개발에 도입하려는 아이디어를 정말 좋아하는 프로그래머일 뿐입니다.

지금은 그렇지 않으며 Jython을 곧 작동하게 할 수 있다면 운이 좋을 것입니다.지금 개발을 시작할 계획이라면 지금은 Java만 사용하는 것이 더 나을 것입니다.

SL4A(이미 다른 답변에서 자체적으로 언급됨)를 사용하면 다음을 수행할 수 있습니다. 달리다 본격적인 web2py 인스턴스(기타 Python 웹 프레임워크 후보도 될 가능성이 높습니다.)SL4A는 기본 UI 구성 요소(버튼, 스크롤 막대 등)를 수행하는 것을 허용하지 않지만 다음을 지원합니다. WebView.WebView는 기본적으로 고정된 주소를 가리키는 줄무늬 웹 브라우저에 지나지 않습니다.기본 Gmail 앱은 일반 위젯 경로를 사용하는 대신 WebView를 사용한다고 생각합니다.

이 경로에는 몇 가지 흥미로운 기능이 있습니다.

  • 대부분의 Python 웹 프레임워크의 경우 Android 기기나 Android 에뮬레이터를 사용하지 않고도 실제로 개발하고 테스트할 수 있습니다.
  • 휴대폰용으로 작성하는 Python 코드는 거의 수정하지 않고 공개 웹 서버에 넣을 수도 있습니다.
  • 당신은 거기에 있는 모든 미친 웹 콘텐츠를 활용할 수 있습니다:쿼리, HTML5, CSS3 등

QPython 애플리케이션을 사용합니다.여기에는 편집기와 콘솔이 있으며 이를 통해 Python 프로그램을 실행할 수 있습니다.신청서는 무료이며 링크는 다음과 같습니다. http://qpython.com/.

당신이 사용할 수있는 Termux 애플리케이션:

apt install python은 python 3을 설치한다는 점에 유의하세요.Python 2의 경우 apt install python2를 호출해야 합니다.

여기에 몇 가지 데모가 있습니다: https://www.youtube.com/watch?v=fqqsl72mASE

또한 github 페이지도 있습니다: https://github.com/termux

로부터 안드로이드용 파이썬 대지:

Python for android는 원하는 모듈을 포함한 나만의 Python 배포판을 생성하고, Python, libs 및 애플리케이션을 포함하는 apk를 생성하는 프로젝트입니다.

또 다른 시도: https://code.google.com/p/android-python27/

이것은 앱 APK에 Python 인터프리터를 직접 포함합니다.

다음을 사용하여 Python 코드를 실행할 수 있습니다. sl4a.sl4a는 Python을 지원합니다. , JRuby, 루아, 빈쉘, 자바스크립트, Tcl, 쉘 스크립트.

sl4a를 배울 수 있습니다 파이썬 예제.

mosync를 실행할 수 있는 Python-on-a-Chip도 있습니다. 구글 그룹

차쿠피

차쿠피 Android Studio의 Gradle 기반 빌드 시스템을 위한 플러그인입니다.그것은에 초점을 맞추고 긴밀한 통합 표준 Android 개발 도구를 사용합니다.

  • 호출할 수 있는 완전한 API를 제공합니다. Python의 자바 또는 자바의 파이썬, 개발자는 앱의 각 구성 요소에 가장 적합한 언어를 사용할 수 있습니다.

  • 자동으로 다운로드가 가능해요 PyPI 패키지 NumPy와 같은 선택된 기본 패키지를 포함하여 앱에 빌드합니다.

  • 기본 사용자 인터페이스 툴킷(순수 Python 활동의 예).

이것은 상용 제품이지만 오픈 소스 사용에는 무료이며 항상 그대로 유지됩니다.

(저는 이 제품의 제작자입니다.)

Playstore에는 Python 스크립트를 편집하고 실행하는 데 사용할 수 있는 QPython3이라는 앱이 있습니다.

플레이스토어 링크

명령을 사용하여 Python을 설치할 수 있는 Termux라는 또 다른 앱

pkg install python

플레이스토어 링크

앱을 개발하고 싶다면 다음이 있습니다. Python Android 스크립팅 계층(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.

당신이 사용할 수있는 Q파이썬:

Python 콘솔, 편집기, 패키지 관리/설치 프로그램이 있습니다.

http://qpython.com/

Python 2와 Python 3 구현이 모두 포함된 오픈 소스 프로젝트입니다.github에서 직접 소스와 Android .apk 파일을 다운로드할 수 있습니다.

Q파이썬 2: https://github.com/qpython-android/qpython/releases

Q파이썬 3: https://github.com/qpython-android/qpython3/releases

여기에 게시된 내용은 보지 못했지만 이제 Necessitas 덕분에 Qt가 Android에서 작동하므로 Pyside 및 Qt를 사용하여 이를 수행할 수 있습니다.

지금은 꽤 복잡해 보이지만 결국에는 실행 가능한 경로가 될 수 있습니다.

http://qt-project.org/wiki/PySide_for_Android_guide

3.4.2 또는 3.5.1을 찾고 있는 경우 또 다른 옵션은 GitHub의 이 아카이브입니다.

Python3-안드로이드 3.4.2 또는 Python3-안드로이드 3.5.1

현재 Python 3.4.2 또는 3.5.1과 NDK 10d 버전을 지원합니다.3.3 및 9c, 11c 및 12도 지원할 수 있습니다.

간단히 다운로드하고 make를 실행하면 .so 또는 .a를 얻을 수 있다는 점이 좋습니다.

나는 현재 이것을 안드로이드 장치에서 원시 Python을 실행하는 데 사용합니다.빌드 파일을 몇 가지 수정하면 x86 및 armeabi 64비트를 만들 수도 있습니다.

옵션이 하나 더 있는 것 같습니다. pyqtdeploy 문서를 인용하는 것은 다음과 같습니다.

QT와 함께 제공된 다른 도구와 함께 Python v2.7 또는 Python v3.3 이상으로 작성된 PYQT4 및 PYQT5 응용 프로그램을 배치 할 수있는 도구.데스크탑 플랫폼 (Linux, Windows 및 OS X) 및 모바일 플랫폼 (iOS 및 Android)에 배치를 지원합니다.

에 따르면 pyqtdeploy 및 Qt5를 통해 Android에 PyQt5 애플리케이션 배포 활발히 개발되고 있지만 Android 앱 작동 사례나 필요한 모든 라이브러리를 Android로 크로스 컴파일하는 방법에 대한 튜토리얼을 찾기는 어렵습니다.그래도 명심해야 할 흥미로운 프로젝트입니다!

확인해 보세요 에나멜 네이티브 반응 네이티브 개념을 가져와 Python에 적용합니다.

이를 통해 사용자는 기본 Android 위젯으로 앱을 구축할 수 있으며 Python에서 Android 및 Java 라이브러리를 사용할 수 있는 API를 제공합니다.

또한 android-studio와 통합되며 코드 다시 로드 및 원격 디버깅과 같은 몇 가지 React의 멋진 개발 기능을 공유합니다.

보세요 비웨어.이 질문에 답하는 시점에는 아직 초기 개발 단계입니다.목표는 Android를 포함하여 지원되는 모든 운영 체제에 대해 Python을 사용하여 기본 앱을 만드는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top