준비해야할 것 Prequisites
안타깝게 python-for-android 는 Linux/Mac 에서만 동작한다. 여기서는 linux 에서 작업할 것이다.
windows 에서는 아래와 같은 error 를 내뿜는다.
(py4a) c:\a\envs\py4a\Scripts>python-for-android.exe
Traceback (most recent call last):
File "c:\program files\python34\Lib\runpy.py", line 170, in _run_module_as_main
"__main__", mod_spec)
File "c:\program files\python34\Lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "c:\a\envs\py4a\Scripts\python-for-android.exe\__main__.py", line 5, in <module>
File "c:\a\envs\py4a\lib\site-packages\pythonforandroid\toolchain.py", line 24, in <module>
import sh
File "c:\a\envs\py4a\lib\site-packages\sh.py", line 36, in <module>
support." % __version__)
ImportError: sh 1.12.10 is currently only supported on linux and osx. please install pbs 0.110 (http://pypi.python.org/pypi/pbs) for windows support.
환경
- OS : Debian 8.7.1 (64bit) - GNOME
- HDD : 8GB 이상 필요
- python : Python 2.3.4ref2, python-pip, virtualenv
python3 버전은 아직 실험버전이다.
Debian 에서 pip 와 virtualenv 설치
$ su ... root$ apt-get install python-pip root$ pip install virtualenv root$ exit $ virtualenv <prj_name>
설치
- virtualenv p4a -p /usr/bin/python2
- source activate
- pip install python-for-android
- install dependencies ref3
- sudo dpkg –add-architecture i386
- sudo apt-get update
- sudo apt-get install -y build-essential git zlib1g-dev python2.7 python2.7-dev libncurses5:i386 libstdc++6:i386 zlib1g:i386 openjdk-8-jdk unzip ant ccache - Android SDK/NDK 설치
- Download Android Studio and SDK Tools \| Android Studio
- NDK Downloads \| Android Developers
- ~/.bashrc 에 환경변수 추가
python-for-android
~/env$ virtualenv p4a -p /usr/bin/python2
...
~/env/p4a/bin/$ source activate
(p4a) ~/env/p4a/bin/$ pip install python-for-android
dependency
dependency 들을 설치하자. 그리고 $JAVA_HOME 을 설정해주자.
$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install -y build-essential git zlib1g-dev python2.7 python2.7-dev libncurses5:i386 libstdc++6:i386 zlib1g:i386 openjdk-8-jdk unzip ant ccache
$ sudo echo JAVA_HOME=\"/usr/lib/jvm/default-java\" >> /etc/environment
$ source /etc/environment
$ echo $JAVA_HOME
Android SDK/NDK
이제 Android SDK/NDK 를 설치하자.
일단 아래 경로에서 다운로드를 받는다.
- Android Studio and SDK Tools : tools_r25.2.3-linux.zip
sdk 를 download 하는 경로는 페이지 제일 하단으로 내려가서 찾아보면 된다. - NDK Downloads : android-ndk-r14-linux-x86_64.zip
이제 이것을 원하는 directory 에 풀어준다. 여기서는 ~/a/android/ 에 풀어넣었다. “./android” 를 실행하면 된다. 단 Gtk 를 실행하므로 Windows 환경에서 해야 한다.(참고)
$ unzip <android_sdk>.zip ~/a/android/android-sdk-25.2.3
$ unzip <android_ndk>.zip ~/a/android
$ cd ~/a/android/android-sdk-25.2.3
$ ./tools/android
~/.bashrc 에 변수 추가
# Android values
export ANDROIDSDK="$HOME/a/android/android-sdk-25.2.3"
export ANDROIDNDK="$HOME/a/android/android-ndk-r13b"
export ANDROIDAPI="14" # Minimum API version your application require
export ANDROIDNDKVER="r13b" # Version of the NDK you installed
Build
이제 python application 을 apk package 로 만들어 보자. 여기서는 WebView application 을 가지고 테스트 한다. 다른 종류의 application 에 대해서는 ref3 의 Build Application 부분을 참고하자.
$ p4a apk --private $HOME/code/myapp --package=org.example.myapp --name "My WebView Application" --version 0.1 --bootstrap=webview --requirements=flask --port=5000
References
### 준비해야할 것 Prequisites
안타깝게 python-for-android 는 Linux/Mac 에서만 동작한다. 여기서는 linux 에서 작업할 것이다.
windows 에서는 아래와 같은 error 를 내뿜는다.
```console
(py4a) c:\a\envs\py4a\Scripts>python-for-android.exe
Traceback (most recent call last):
File "c:\program files\python34\Lib\runpy.py", line 170, in _run_module_as_main
"__main__", mod_spec)
File "c:\program files\python34\Lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "c:\a\envs\py4a\Scripts\python-for-android.exe\__main__.py", line 5, in <module>
File "c:\a\envs\py4a\lib\site-packages\pythonforandroid\toolchain.py", line 24, in <module>
import sh
File "c:\a\envs\py4a\lib\site-packages\sh.py", line 36, in <module>
support." % __version__)
ImportError: sh 1.12.10 is currently only supported on linux and osx. please install pbs 0.110 (http://pypi.python.org/pypi/pbs) for windows support.
```
### 환경
- OS : Debian 8.7.1 (64bit) - GNOME
- HDD : 8GB 이상 필요
- python : Python 2.3.4[ref2][], python-pip, virtualenv
python3 버전은 아직 실험버전이다.
> ### Debian 에서 pip 와 virtualenv 설치
>
> ```console
> $ su
> ...
> root$ apt-get install python-pip
> root$ pip install virtualenv
> root$ exit
> $ virtualenv <prj_name>
> ```
### 설치
1. virtualenv p4a -p /usr/bin/python2
1. source activate
1. pip install python-for-android
1. install dependencies [ref3][]
- sudo dpkg --add-architecture i386
- sudo apt-get update
- sudo apt-get install -y build-essential git zlib1g-dev python2.7 python2.7-dev libncurses5:i386 libstdc++6:i386 zlib1g:i386 openjdk-8-jdk unzip ant ccache
1. Android SDK/NDK 설치
- [Download Android Studio and SDK Tools \| Android Studio](https://developer.android.com/studio/index.html#Other)
- [NDK Downloads \| Android Developers](https://developer.android.com/ndk/downloads/index.html)
- ~/.bashrc 에 환경변수 추가
#### python-for-android
```console
~/env$ virtualenv p4a -p /usr/bin/python2
...
~/env/p4a/bin/$ source activate
(p4a) ~/env/p4a/bin/$ pip install python-for-android
```
#### dependency
dependency 들을 설치하자. 그리고 $JAVA_HOME 을 설정해주자.
```console
$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install -y build-essential git zlib1g-dev python2.7 python2.7-dev libncurses5:i386 libstdc++6:i386 zlib1g:i386 openjdk-8-jdk unzip ant ccache
$ sudo echo JAVA_HOME=\"/usr/lib/jvm/default-java\" >> /etc/environment
$ source /etc/environment
$ echo $JAVA_HOME
```
#### Android SDK/NDK
이제 Android SDK/NDK 를 설치하자.
일단 아래 경로에서 다운로드를 받는다.
- [Android Studio and SDK Tools](https://developer.android.com/studio/index.html#Other) : tools_r25.2.3-linux.zip
sdk 를 download 하는 경로는 페이지 제일 하단으로 내려가서 찾아보면 된다.
- [NDK Downloads](https://developer.android.com/ndk/downloads/index.html) : android-ndk-r14-linux-x86_64.zip
이제 이것을 원하는 directory 에 풀어준다. 여기서는 ~/a/android/ 에 풀어넣었다. "./android" 를 실행하면 된다. 단 Gtk 를 실행하므로 Windows 환경에서 해야 한다.([참고](http://i5on9i.blogspot.kr/2017/03/debian-android-sdk.html))
```console
$ unzip <android_sdk>.zip ~/a/android/android-sdk-25.2.3
$ unzip <android_ndk>.zip ~/a/android
$ cd ~/a/android/android-sdk-25.2.3
$ ./tools/android
```
##### ~/.bashrc 에 변수 추가
```
# Android values
export ANDROIDSDK="$HOME/a/android/android-sdk-25.2.3"
export ANDROIDNDK="$HOME/a/android/android-ndk-r13b"
export ANDROIDAPI="14" # Minimum API version your application require
export ANDROIDNDKVER="r13b" # Version of the NDK you installed
```
### Build
이제 python application 을 apk package 로 만들어 보자. 여기서는 WebView application 을 가지고 테스트 한다. 다른 종류의 application 에 대해서는 [ref3][] 의 Build Application 부분을 참고하자.
```console
$ p4a apk --private $HOME/code/myapp --package=org.example.myapp --name "My WebView Application" --version 0.1 --bootstrap=webview --requirements=flask --port=5000
```
## References
1. [GitHub \- kivy/python\-for\-android: Turn your Python application into an Android APK][ref1]
1. [Build options — python\-for\-android 0\.1 documentation][ref2]
1. [Getting Started — python\-for\-android 0\.1 documentation][ref3]
1. [Installing OpenJDK 8 and Tomcat 8 on Debian Jessie \| IGA Made Muliarsa \| Pulse \| LinkedIn][ref4]
[ref1]: https://github.com/kivy/python-for-android
[ref2]: https://python-for-android.readthedocs.io/en/latest/buildoptions/#python-versions
[ref3]: https://python-for-android.readthedocs.io/en/latest/quickstart/#installing-dependencies
[ref4]: https://www.linkedin.com/pulse/installing-openjdk-8-tomcat-debian-jessie-iga-made-muliarsa
댓글 없음:
댓글 쓰기