Android에서 Python을 실행하는 방법이 있습니까?

우리는 S60 버전을 개발 중이며이 플랫폼에는 멋진 Python API가 있습니다.

그러나 안드로이드의 파이썬에 대한 공식적인 것은 없지만 자이 썬 이 존재하기 때문에 뱀과 로봇이 함께 작동하게하는 방법이 있습니까?



답변

한 가지 방법은 Kivy 를 사용하는 것입니다 .

멀티 터치 앱과 같은 혁신적인 사용자 인터페이스를 사용하는 애플리케이션을 신속하게 개발하기위한 오픈 소스 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)


답변

안드로이드 용 파이 게임 서브셋

Pygame 은 새로운 프로그래머에게 인기있는 Python (데스크톱 용) 용 2D 게임 엔진입니다. 안드로이드에 대한 파이 게임 부분적인 자체를 설명 …

… Pygame 기능의 하위 세트를 Android 플랫폼으로 연결하는 포트입니다. 이 프로젝트의 목표는 Android 전용 게임을 만들고 PC와 같은 플랫폼에서 Android로 게임을 쉽게 포팅하는 것입니다.

예제에는 APK로 패키지 된 완전한 게임이 포함됩니다.


답변

크로스 컴파일 및이 그니 푸가

내 블로그에는 Android 용 Python 2.7.2를 크로스 컴파일하기위한 지침과 패치 가 있습니다.

또한 2D 게임 엔진 인 Ignifuga 소스를 오픈했습니다 . Python / SDL 기반이며 Android 용 크로스 컴파일입니다. 게임에 사용하지 않더라도 코드 또는 작성기 유틸리티 ( Tim의 이름을 따서 Schafer) 에서 유용한 아이디어를 얻을 수 있습니다 .


답변

Android 용 스크립팅 레이어

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

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

API

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");

사용자 인터페이스

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

  • API를 통해 일반적인 기본 대화와 메뉴를 쉽게 사용할 수 있습니다. 확인 대화 상자 및 기타 기본 사용자 입력에 좋습니다.
  • Python 스크립트에서 웹뷰를 연 다음 사용자 인터페이스에 HTML5를 사용할 수도 있습니다. Python에서 웹뷰를 사용할 때 웹뷰와이를 생성 한 Python 프로세스간에 메시지를주고받을 수 있습니다. UI는 네이티브가 아니지만 여전히 좋은 옵션입니다.
  • 기본 Android 사용자 인터페이스 가 일부 지원되지만 작동 방식이 확실하지 않습니다. 난 그냥 그것을 사용하지 않았습니다.

옵션을 혼합하여 기본 인터페이스에 대한 웹뷰를 가질 수 있으며 기본 대화를 계속 사용할 수 있습니다.

QPython

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에서도 앱을 완벽하게 매끄럽게 만들려면 적절한 양의 재 작성을 피해야합니다. 파이썬은 여전히 ​​모바일 장치에서 너무 느릴 것입니다.