buildozer เป็นเครื่องมือสำหรับใช้ทำแอพ Android และ IOS ด้วยภาษาไพทอน ถูกพัฒนาขึ้นโดยทีมงาน kivy โดยรองรับทั้ง Python 2
ใช้ MIT License
เนื่องจาก buildozer ยังรองรับทั้ง Python 2 และ Python 3
- ตรวจสอบว่าได้ใช้โมดูลที่รองรับทั้ง Python 2 และ Python 3 หรือไม่ (เลือกโมดูลที่รองรับทั้ง Python 2 และ Python 3)
- ส่วนโค้ดและไลบรารีต่าง ๆ ตามหลักไวยากรณ์ Python 3 สามารถใช้โมดูล python-modernize ช่วยแปลงโค้ดให้รองรับทั้ง Python 2 และ Python 3 ได้
ในบทความนี้ผู้อ่านต้องทำใน Linux หรือ Mac OS เท่านั้น ผมแนะนำ Ubuntu
สำหรับผู้ใช้งาน VMware & VirtualBox สามารถโหลด Ubuntu มาใช้งานได้เลย จาก http://www.osboxes.org/ubuntu/
เตรียมความพร้อม
- อินเทอร์เน็ตความเร็วสูง (เนื่องจาก buildozer ต้องใช้ในการโหลด Android SDK และ Android NDK มาติดตั้ง เฉพาะตอนแรก)
- เนื้อที่มากกว่า 16 GB
- CPU 1 GHz ขึ้นไป
- แรมมากกว่า 1 GB
ทำการติดตั้งไลบรารีตามคำสั่งต่อไปนี้
sudo add-apt-repository -y ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java7-installer oracle-java7-set-default build-essential python-dev python-pip ccache git zlib1g-dev libncurses5:i386 libstdc++6:i386 zlib1g:i386 unzip ant
แล้วทำการติดตั้ง Kivy และ buildozer
sudo pip install cython sudo pip install buildozer sudo pip install plyer sudo add-apt-repository ppa:kivy-team/kivy sudo apt-get update sudo apt-get install python-kivy
เมื่อทำการติดตั้งเสร็จแล้ว เรามาลองทำแอพ Android ด้วย buildozer ในภาษาไพทอนกันครับ
ผมทำการสร้างไฟล์ main.py ขึ้นมา โดยมีโค้ดดังนี้

buildozer init
จะได้ไฟล์ buildozer.spec ซึ่งเป็นไฟล์กำหนดรูปแบบการ build โค้ดไพทอนไปเป็น apk
ให้ทำการเปิดไฟล์แล้วทำการแก้ไขโค้ดในไฟล์ดังนี้ (เนื่องจากจะได้ไม่ต้องเสียเวลาใส่ _version_ ทุกไฟล์)
ตรง
# (str) Application versioning (method 1) version.regex = __version__ = ['"](.*)['"] version.filename = %(source.dir)s/main.py
ให้ใส่ # เข้าไปเป็น
# (str) Application versioning (method 1) #version.regex = __version__ = ['"](.*)['"] #version.filename = %(source.dir)s/main.py
และตรง
# (str) Application versioning (method 2) # version =
ให้เอา # หน้า version ออกแล้วใช้เลขเวอร์ชั่นเข้าไปหลัง = เป็น
# (str) Application versioning (method 2) version = 1.0
อธิบายรายละเอียดไฟล์ buildozer.spec แบบย่อ ๆ
- title ใช้กำหนดชื่อแอพ (ภาษาอังกฤษ)
- package.name ชื่อ Package ของแอพ
- package.domain เป็น org.test
- source.dir ที่ตั้งของโค้ดไพทอน (ค่าพื้นฐานคือที่ตั้งของไฟล์ main.py)
- source.include_exts นามสกุลไฟล์ที่ถูกรวมไปรวม
- version เวชั่นของแอพ
- requirements โมดูล python ที่ต้องการ
- fullscreen ใช้กำหนดให้แอพเต็มหน้าจอหรือไม่ ถ้าให้เติมให้ 1 ถ้าไม่ ใส่ 0
- log_level ระดับรายละเอียดของไฟล์ log (0 = error only, 1 = info, 2 = debug (with command output)
- icon.filename ชื่อไฟล์ icon ของแอพ
เมื่อกำหนดเสร็จแล้วมา build แอพ Android เป็น apk กันครับ
ใช้คำสั่ง
buildozer -v android debug
รอสักครู่ ถ้าไม่มีอะไรผิดพลาด จะได้ไฟล์ apk ในโฟลเดอร์ bin ลองเอาไฟล์ apk ไปติดตั้งแล้วลองรันใน Android กันดูครับ


การเขียนโค้ดภาษาไพทอนให้สามารถเข้าถึง API ของระบบ สามารถใช้โมดูล plyer เข้ามาช่วยงานเรื่องนี้ได้ครับ อ่านเพิ่มเติม เข้าถึงการทำงานฮาร์ดแวร์ข้ามแพลตฟอร์มด้วย plyer ในภาษาไพทอน
ตัวอย่างแอพที่เขียนในบทความนี้ https://www.dropbox.com/sh/6krehv3wnnb9pea/AAD110J17NAH6_O0iqRfnI4Oa?dl=0
ตัวอย่างแอพที่ใช้ buildozer สร้างแอพ Android ด้วยภาษาไพทอน
- ProcessCraft - Google Play
- 2048 (using Kivy) - Google Play
ขอให้สนุกกับแอพ Android ที่สร้างจากภาษาไพทอน Python กันดูนะครับ
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)