11 พฤศจิกายน 2557

Published 11/11/2557 by with 0 comment

เมื่อ Python มาอยู่กับ Android : Python for Android

โลโก้ Android
   ปัจจุบันนี้ Android เป็นระบบปฏิบัติการหนึ่งบนมือถือที่ได้รับความนิยมอย่างมากและมีฐานผู้ใช้ที่ครอบคุมไปทั่วโลก ด้วยการที่ Android สามารถปรับแต่งได้และเปิดโค้ด ไม่เสียค่าใช้งานระบบปฏิบัติการกับ Google ทำให้การพัฒนาแอพในปัจจุบัน นักพัฒนาต้องทำให้ทั้ง IOS และ Android มาเป็นสองอันดับแรก ในนักพัฒนาสายภาษา Python มีวิธีนำภาษา Python มาประยุกต์ใช้งานกับ Android แล้ว Python for Android :)
   เนื่องจาก Python นำบน JAVA VM ที่ทาง Google ปรับแต่งมาเป็นพิเศษ จึงไม่สามารถนำไฟล์ .py ไปรันในระบบตรง ๆ ไม่ได้ ไฟล์ต้องบรรจุไว้ในไฟล์ติดตั้ง .apk แล้วติดตั้งจึงจะเรียกใช้งานได้ ในภาษา Python จึงได้มีนักพัฒนาได้ทำโมดูลและเครื่องมือขึ้นมาสำหรับ port Python to Android apps โดยมีโมดูลหรือเครื่องมือแนะนำดังนี้
  1. Kivy เป็นโมดูลสำหรับใช้สร้าง GUI บนระบบปฏิบัติการบนคอมพิวเตอร์แล้วยังรองรับการทำงานบน Android ด้วย แต่ต้องใช้งเครื่องมือ Port ที่ชื่อ Python for Android เอกสารสำหรับการ port python-for-android.readthedocs.org  รองรับทั้ง Python 3 , Python 2
  2. Pygame โมดูลสำหรับสร้างเกมบน Python สามารถไปสร้างเป็นแอพบน Android ได้เหมือนกัน ด้วยการใช้เครื่องมือของ Kivy pygame.renpy.org รองรับทั้ง Python 3 , Python 2
  3. PySide นอกจากจะใช้สร้าง GUI แล้ว ด้วยการที่ PySide เป็น Python + Qt โดยที่ Qt รองรับการ port ไปบน Android นักพัฒนา PySide จึงได้ออกวิธีการ port Python ที่ใช้ PySide ไปเป็ยแอพบน Android modrana.org/trac/wiki/PySideForAndroid และ qt-project.org/wiki/PySide_for_Android_guide รองรับ Python 2
  4. Py4A เป็นเครื่องมือที่ทางนักพัฒนาได้พัฒนามาจาก android-scripting โดย Py4A ทำงานร่วมกับ SL4A (Scripting Layer For Android) มีลักษณะโค้ดดังนี้
    import android
    
    droid = android.Android()
    droid.makeToast("Hello, Android!")
    
    print("Hello World!") 
    สามารถดูเพิ่มเติมได้ที่ code.google.com/p/python-for-android/ รองรับทั้ง Python 3 , Python 2
  5. QPython เป็นเครื่องมือ script engine บน  Android qpython.com
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)