#연구/#Kivy

[파이썬/Python] Kivy 안드로이드 앱 APK Debug로 생성하기 (feat. buildozer)

every7hing 2020. 7. 2. 21:38
반응형

 

[파이썬/Python] Kivy 안드로이드 앱 만들기 1 

#나는 파이썬으로 안드로이드 앱 만든다 

#파이썬으로 만드는 앱 

#Kivy 안드로이드 APK 생성하기

#파이썬으로 안드로이드 앱 만들기

#buildozer로 안드로이드 apk 빌드하기

 

지난 블로그에서 만든 로또 번호 생성기 프로그램을 이번에는 Android APK 파일로 만들어서 Android 앱으로 사용할 수 있게 해볼꺼에요.

로또 번호 생성기 프로그램 만드는 예제는 지난 블로그를 참고하세요. 아래 링크를 이용하시면 편린합니다!

 

 

[파이썬/Python] Kivy를 사용해서 Python GUI 프로그래밍을 시작해보자 5 #Kivy Design Language #Kivy Python #Pyth

[파이썬/Python] Kivy를 사용해서 Python GUI 프로그래밍을 시작해보 5 #Kivy Design Language #Kivy Python #Python GUI Programming #로또 번호 생성하는 프로그램 만들기 #로또 번호 생성기 #로또 번호 생성..

isss.tistory.com

 

저는 buildozer라는 것을 이용할꺼에요.

먼저 buildozer를 설치해요.

 

kivy/buildozer

Generic Python packager for Android and iOS. Contribute to kivy/buildozer development by creating an account on GitHub.

github.com

 

pip install buildozer

 

그리고, 아래는 Mac OSX 기준에서 buildozer를 통해 Android 빌드 시 필요한 것들을 추가 설치 및 설정 할거에요.

brew install openssl
sudo ln -sfn /usr/local/opt/openssl /usr/local/ssl
brew install pkg-config autoconf automake
python3 -m pip install --user --upgrade Cython==0.29.19 virtualenv  # the --user should be removed if you do this in a venv

# add the following line at the end of your `~/.bashrc` file
export PATH=$PATH:~/Library/Python/3.7/bin

 

buildozer가 잘 설치가 되었으면,

우리가 만들었던, main.pylotto.kv 파일이 있는 경로로 이동해서 아래 명령을 실행합니다.

buildozer init

 

그러면 다음과 같은 메시지가 뜨면서, buildozer.spec 이라는 파일이 하나 생성됩니다.

File buildozer.spec created, ready to customize!

 

상세하게 설정을 하려면, buildozer.spec 파일을 적절히 수정해줘야 하지만

일단 우린 테스트를 위함이니까, 잘 만들어졌다면 아래 명령을 통해 debug로 APK 파일을 생성해봅니다.

처음 실행하면, Android Build 관련 여러 파일을 다운로드 하는 과정이 있기 때문에 시간이 꽤 오래 걸릴 수 있습니다.

buildozer android debug

 

저 같은 경우 꽤 오랜 시간이 걸려서 Build에 성공했구요.

별 이상 없이 완료가 되면, 생성된 apk 파일이 있는 위치를 알려주면서 끝나게 됩니다.

위치는 보통 실행한 디렉토리에 .buildozer 디렉토리가 생성되는데요. 그 내부에 생성이 됩니다.

저 같은 경우는 아래 경로에 생성이 되었어요.

.buildozer/android/platform/build-armeabi-v7a/dists/myapp__armeabi-v7a/build/outputs/apk/debug/myapp__armeabi-v7a-debug.apk

 

file 명령을 통해 해당 파일의 속성을 알아보면, APK파일 자체가  Zip 포맷 형태로 구성되어 있으므로 아래와 같이 출력되는 걸 볼 수 있습니다.

.buildozer/android/platform/build-armeabi-v7a/dists/myapp__armeabi-v7a/build/outputs/apk/debug/myapp__armeabi-v7a-debug.apk: Zip archive data, at least v2.0 to extract

 

그럼 제 Android 휴대폰에 실제로 생성된 apk 파일을 설치해서 잘 동작하는지 테스트를 해볼게요.

먼저 apk 파일을 Android 기기에 설치합니다.

Android 기기를 Mac OSX와 연결 후 아래 명령을 실행합니다.

 

adb install .buildozer/android/platform/build-armeabi-v7a/dists/myapp__armeabi-v7a/build/outputs/apk/debug/myapp__armeabi-v7a-debug.apk

 

정상적으로 설치가 완료되면 Success 라는 문구가 보일겁니다.

그리고 휴대전화에서 확인하면 "My Application"이라는 새로운 앱이 보이게되죠.

My Application

 

그럼, 실행해보겠습니다.

Lotto

 

 

잘 실행이 되는군요.

번호 생성도 아래와 같이 잘되네요!

 

Lotto Number

 

 

이렇게 Java나 Android 관련 API를 모르고도, Python만을 통해서도 Android APP을 개발하고 배포할 수 있다는게 놀라운 일이죠? ㅎㅎ

그럼 다음 시간에는 실제 Android 마켓에 배포하는 것을 진행 해볼까해요.

 

그럼 오늘도 좋은하루 되시길!

 

이런 글은 어때요?

반응형