เจ้าหุ่นเขียวแอนดรอยด์มีข้อดีอย่างหนึ่งสำหรับ Developer คือเขียนโปรแกรมง่ายมากด้วยภาษาจาวาที่หลายคนคุ้นเคย แต่มันก็มีข้อเสียอยู่ในข้อดีนั้นด้วยคือเราไม่สามารถเขียนโปรแกรมที่ดึงพลัง CPU ออกมาใช้อย่างเต็มที่ได้เช่น Real Time Image Processing

ทางกูเกิ้ลเห็นปัญหาตรงนี้เลยปล่อย Android NDK (Native Development Kit) ออกมาเพื่อให้นักพัฒนาสามารถเขียนโปรแกรมลงบนแอนดรอยด์ด้วยภาษา C/C++ ได้

แต่ทั้งนี้ เราไม่สามารถเขียนโปรแกรมด้วยภาษา C/C++ ทั้งหมดได้ เพราะโปรแกรมจะยังทำงานบน Dalvik VM อยู่เหมือนเดิม เพียงแต่ว่าเราสามารถเขียนตัวเชื่อมระหว่างภาษาจาวากับภาษา C/C++ ผ่านทาง JNI ได้ดังรูป


ดังนั้นหากถามว่า NDK จะทำให้อะไรเปลี่ยนไปมากหรือไม่? ก็ตอบว่าไม่ถึงกับพลิกหน้ามือเป็นหลังเท้าแต่ก็เป็นนิมิตหมายที่ดีที่อาจจะได้เห็นอะไรที่แปลกๆจากการดึงประสิทธิภาพ CPU มาใช้อย่างเต็มที่เช่นการประมวลผลภาพแบบทันควัน (Real Time Image Processing) บนโทรศัพท์มือถือแอนดรอยด์หรือแม้กระทั่งการเขียน Video Decoder เองด้วยภาษา C/C++ และอีกหนึ่งอย่างที่สำคัญคือ Open Source บนโลกลินุกซ์ส่วนใหญ่จะเป็น C/C++ เจ้า NDK จะช่วยให้นักพัฒนา Port โปรแกรมจากลินุกซ์มาลงบน Android ได้ง่ายขึ้นมาก

ซึ่งสิ่งที่มีมาให้กับ NDK จะมีดังนี้

  • เครื่องมือสำหรับการพัฒนา (Development Tools)
    – Cross Compiler ที่ใช้ในการคอมไพล์โปรแกรมเป็น Native ARM Binary
    – Header ของ Standard Library ต่างๆบนลินุกซ์

    • libc (C library) headers
    • libm (math library) headers
    • JNI interface headers
    • libz (Zlib compression) headers
    • liblog (Android logging) header
    • A Minimal set of headers for C++ support
  • เอกสาร (Documentation) เพื่อใช้ในการลงโปรแกรมและคอมไพล์
  • ตัวอย่างโปรแกรมสองโปรแกรมได้แก่ hello-jni และ two-libs

โดยเราสามารถแพครวมไฟล์ ARM Binary ที่คอมไพล์เสร็จเข้าไปในไฟล์ apk เพื่อนำไปลงในเครื่องปลายทางด้วยวิธีปกติได้ทันที

ใครสนใจลองไปดาวน์โหลด Android NDK ได้จาก Android 1.5 NDK, r1 ไม่ใหญ่มากแค่เพียง 21 MB เท่านั้น

Source: ZDNet.com