>>> Let's run Python on Mobile

วันศุกร์, มกราคม 19, 2550

Simplify Symbian programming

ว่าจะหัดเขียน โปรแกรมสำหรับ UIQ ด้วย C++ ดูบ้าง
เผื่อจะใช้ C++ ได้คล่องขึ้น และที่สำคัญ มันจำเป็นสำหรับการเขียน JNI
แล้วต้องเตรียมอะไรบ้าง
ตามตำราเขาว่า มี UIQ,PC และก็ลง Symbian SDK for UIQ ซึ่งมีแถมมากับหนังสือ หรือจะ D/L ได้ที่นี่
http://developer.sonyericsson.com
ต่อมา เขาว่าต้องมี C++ compiler เช่น MS visual studios หรือ Code Warrior
ยุ่งยากจัง ใช้ Editor ตัวอื่น แล้วคอมไพล์ผ่าน Command Line ได้หรือเปล่า
แล้วใน Symbian SDK มันมี GNU C Compiler แนบมาแล้วนี่ แล้วใช้แค่นี้ได้หรือเปล่า
อ่านๆดูเขาว่าต้องใช้คอมไพล์โปรแกรม สำหรับ Emulator
ถ้าผมไม่อยากลง compiler เพิ่มก็ คอมไพล์โปรแกรม สำหรับ Emulator ไม่ได้
ไม่ได้ก็ไม่ได้สิ เขียนลง SmartPhone อย่างเดียวก็แล้วกัน (แค่หัดเขียนเองนี่นา)
ว่าแล้วก็ข้ามขั้นตอนนี้ไปเลย

ในSymbian SDK for UIQ จะมี Perl แนบมาด้วย ต้องลง Perl อีก
เครื่องผมมี Perl เวอร์ชันล่าสุด อยู่แล้ว ข้ามไปเลย

ในSymbian SDK มีJava1.3 เขาให้ลงเพิ่มด้วย
มันจำเป็นสำหรับ tools หลายๆอย่าง เช่น AIFbuilder
ผมมี Java1.6,Java1.1.8อยู่แล้ว จะให้ลง Java1.3อีกเหรอ
ว่าแล้ว ก็ข้ามไปอีกขั้น (มารู้ทีหลังว่าข้ามขั้นนี้ ไม่ดี มันยุ่งกว่าที่คิด)

เสร็จเรียบร้อยก็ลองคอมไพล์ HelloWorld (อยู่ในโฟลเดอร์ UIQExamples)
ลองcopyมาที Desktop แล้วเปิด Command Prompt
devices -setdefault @UIQ_21:com.symbian.UIQ

CD ไปที่โฟลเดอร์ HelloWorld แล้วสั่ง
bldmake bldfiles
abld build armi urel

ผลออกมา error คอมไพล์ไม่ผ่าน
ค้นๆดูเขาว่า สงสัยเป็นที่ path มี space อยู่ เช่น "Documents and Settings"
เลยลองคอมไพล์ ที่โฟลเดอร์ HelloWorld ที่อยู่ใน C:\symbian
คราวนี้ผ่าน :)
ลองsearchดู มีไฟล์ชื่อ HelloWolrd หลายนามสกุลกระจายอยู่หลายโฟลเดอร์

ต่อมาเขาให้ลองใน Emulator ผมข้ามไปเลยแล้วกัน
ขั้นต่อไป ใช้ AIFbuilder
ไม่มี java1.3 ให้ มันเลยไม่ยอมเรียก AIFbuilder ขึ้นมา
ไม่เป็นไร ใช้ CommandLine ก็ได้

อ่านๆดูถ้าจะใช้ CommandLine มีอีกหลายขั้น
bmconv,AIF,aiftool,makesis
ทำไมยุ่งยากจัง มีแค่ Helloworld.app กับ HelloWorld.rsc
โปรแกรมง่ายๆ ก็น่าจะrunได้แล้วนี่

ผมลองนำ Helloworld.app กับ HelloWorld.rsc
ไปใส่ในโฟล์เดอร์ ที่สร้างขึ้นมาใหม่
D:\system\apps\HelloWorld
แล้วลองดูในหน้าหลักของUIQ
มีไอคอน HelloWorld เพิ่มขึ้นมาจริงๆด้วย
ลองคลิกดู ใช้ได้แฮะ :)