Tags:

เรารู้กันว่าแพลตฟอร์ม Android นั้นใช้ภาษาจาวาในการพัฒนา แต่ตอนคอมไพล์จะแปลงเป็นโค้ดสำหรับ Dalvik ซึ่งเป็นเวอร์ชวลแมชชีนเฉพาะของ Android เอง ไม่ใช่ JRE และไบต์โค้ดเหมือนแพลตฟอร์มจาวาของซัน

อย่างไรก็ตาม ไม่ว่าจะเป็นเวอร์ชวลแมชชีนของค่ายไหน การพัฒนาโปรแกรมบน Android ก็ไม่ใช่ native เหมือนแพลตฟอร์มอื่นๆ บนมือถือ (เช่น iPhone หรือ Symbian) ซึ่งในบางครั้งก็เป็นปัญหาสำหรับนักพัฒนาที่ต้องการเขียนโปรแกรมแบบ native ล่าสุดกูเกิลได้อุดช่องว่างนี้แล้ว โดยออก Android Native Development Kit (NDK) สำหรับ Android 1.5 มาให้ใช้กัน

Android NDK จะทำให้เขียนโปรแกรมด้วยภาษา C/C++ บน Android ได้ ในอนาคตจะสนับสนุนไลบรารีทั้งหมดของแพลตฟอร์ม Android แต่ในรุ่นแรกจะมีแค่ไลบรารีพื้นฐานอย่าง libc, libz, liblog เป็นต้น โค้ดที่ได้จะเป็นโค้ดของสถาปัตยกรรม ARMv5TE

กูเกิลเตือนว่าการพัฒนาโปรแกรมด้วย NDK แทน SDK ปกติจะทำให้โค้ดซับซ้อนขึ้น และเข้าไม่ถึงฟีเจอร์ของเฟรมเวิร์ค (ที่เป็น Dalvik) แต่บางโปรแกรมที่ต้องการพลังของ native ก็อาจจำเป็นต้องใช้มัน

ที่มา - Android Developer Blog

Comments

By: wiennat
Writer
wiennat's blog
on 26/06/09 10:24 #110404 toggle
wiennat's picture

งี้ก็ทำอะไรเจ๋งๆได้แล้วสิ

onedd.net


onedd.net

By: nuuneoi
nuuneoi's blog
on 26/06/09 13:00 #110449 Reply to:110404 toggle
nuuneoi's picture

ก็ยังไม่ได้ ยังมีเรื่อง Permission เซ็งๆมารบกวนใจอยู่ แต่โดยรวมก็ทำให้ทำอะไรได้มากขึ้นอีก"เล็กน้อย"

ส่วน NDK ไม่ใช่การเขียนโปรแกรมเป็น Native-Only แต่เป็นการเขียนบางส่วนของโปรแกรมให้เป็น Native แล้วเชื่อมด้วย JNI เฉยๆ

[code]Please note that the NDK does not enable you to develop native-only applications. Android's primary runtime remains the Dalvik virtual machine.[/code]

ซึ่งตรงนี้ประโยชน์ที่จะเห็นได้ชัดคือการทำ Real Time Image Processing ที่ถ้าทำบน VM มันไม่ไหวแน่ๆ แต่ถ้าทำผ่าน JNI น่าจะไหว

http://www.nuuneoi.com

By: sugree
FounderWriterAndroidBlackberry
sugree's blog
on 26/06/09 10:26 #110405 toggle
sugree's picture

รักมาก

By: lew
FounderAndroidSymbian
lew's blog
on 26/06/09 11:37 #110431 toggle
lew's picture

รอ bluez-api ถ้ามันมาเมื่อใหร่นี่ได้เฮแน่ๆ

แต่เครื่องมันแพงอ่ะ

LewCPE


LewCPE's Google+

By: runnary
iPhoneWindows PhoneAndroidBlackberry
runnary's blog
on 26/06/09 12:15 #110434 toggle
runnary's picture

ถ้าผมสนใจอยากเขียนโปรแกรม Android แต่ผมไม่มีพื้นฐานเลย ผมควรเริ่มจากอะไรก่อนครับ?

รู้สึกว่าต้องจริงจังสักที

By: n3tz
n3tz's blog
on 26/06/09 12:31 #110440 Reply to:110434 toggle
n3tz's picture

Java ครับ

By: nuuneoi
nuuneoi's blog
on 26/06/09 13:01 #110450 Reply to:110434 toggle
nuuneoi's picture

"Experience is the best teacher"

เริ่มจากไปเว็บนี้แล้วทำ Hello World ให้ได้ครับ

http://developer.android.com/sdk/1.5_r2/index.html

http://www.nuuneoi.com

By: runnary
iPhoneWindows PhoneAndroidBlackberry
runnary's blog
on 26/06/09 13:31 #110457 Reply to:110450 toggle
runnary's picture

จริงๆผมเคยเรียน วิทยาการคอมพิวเตอร์ นะ เรียนได้ปีนึงเจอเลขฐานสิบ ออกมาเรียนนิเทศฯเลย(เรียนจบละ) ตอนนี้เลยอยากเอาชนะตัวเองให้ได้

By: mementototem
ContributorJusci's WriterWindows
mementototem's blog
on 26/06/09 15:46 #110491 Reply to:110457 toggle
mementototem's picture

เลขฐานสิบ ใช้อยู่ทุกวันจะไปกลัวอะไรกันครับ? ;) เลขฐานสอง ก็มีแค่ 0 1 อย่าไปกลัวมัน เลขฐานสิบหก ก็แถม A-F เอง ง่าย ๆ

เขียนโปรแกรมไม่ค่อยเกี่ยวกับเลขฐานสักเท่าไหร่(มีบ้าง) ถ้าใจรักเสียอย่าง ยากแค่ไหนก็ไม่มีปัญหาหรอกครับ ลองเริ่มเขียนดูสิครับ

My FingerSports Site


Jusci - Google Plus - Twitter - FSN

By: l2aelba
iPhoneAndroid
l2aelba's blog
on 26/06/09 17:19 #110509 Reply to:110434 toggle
l2aelba's picture

เหมือนกันเลย อยากเขียนโปรแกรมเป็นบ้าง มีไอเดียในหัวเยอะเยะ แต่ทำไม่เป็น ต้องวาน/จ้างเขาตลอด ------ Unlimited Asian Music (ดูเอ็มวี ไทย, เกาหลี และญี่ปุ่น ฟรีๆ)


l2aelba & Mag.im

By: Patrickz
WriterSymbian
Patrickz's blog
on 26/06/09 15:46 #110490 toggle
Patrickz's picture

ต้องอย่างนี้สิ! "ถ้าจะมาไม่มาทั้งใจ ก็กลับไปเสียดีกว่า" ลันล้าๆๆ

Patrickz's web | Patrickz's blog | blog @ G2K | blog @ narisa


Patrickz's web| Patrickz's blog|blog @ G2K|blog @ narisa

By: vittee
AndroidRed HatUbuntuWindows
vittee's blog
on 27/06/09 9:15 #110658 toggle
vittee's picture

ไชโย แทบไม่อยากจะเชื่อสายตาตัวเองเลย

จริงๆตอนแรกสนใจ Android มาก เพราะเห็นว่าพัฒนาจาก Linux แต่ก็ต้องถอดใจเมื่อพบว่าการพัฒนาแบบ Native ทำได้เพียงแค่บน Emulator

แต่ตอนนี้เปลี่ยนใจล่ะ โหลดโลดดดด