PonRod application available on Android Market

แอฟพลิเคชั่นนี้ตั้งใจเพื่อช่วยให้ผ้ที่กำลังมองหารถใหม่ป้ายแดงได้คำนวณราคาผ่อนจ่ายคร่าวๆก่อนไปเยี่ยมชมโชว์รูมหรือการตัดสินใจผ่อนซื้อ ในเวอร์ชั่นนี้ มีข้อมูลอ้างอิงตามเว็บไซต์ตามยี่ห้อดังต่อไปนี้

1. Honda Automobile (Thailand) Co.,Ltd
http://www.honda.co.th
2. Nissan Moter (Thailand) Co.,Ltd
http://www.nissan.co.th
3. Mazda Sales (Thailand) Co.,Ltd
http://www.mazda.co.th

แอพพลิเคชั่นตัวนี้แจกฟรีไม่มีการเก็บค่าใช่จ่ายใดๆทั้งสิ้น

เข้าไปเยี่ยมชมและ Download ได้ที่ https://market.android.com/details?id=com.PonRod

Screenshots

Posted in Android | Tagged , , , , , , | Leave a comment

Google Dev Fest 2011 – All about Android

นานมากที่ไม่ได้มา update blog ของตัวเอง วันนี้วันดีมีโอกาสมาร่วมฟัง Engineer และ Staff ของ Google ในงาน Google Dev Fest 2011 @ Chiang mai

โดยงานจัดเป็นครั้งที่ 3 ใน ไทย และเป็นครั้งแรกที่จัดที่เชียงใหม่ (บ้านผมเอง) โดย Session หลักๆเกี่ยวกับ Android+ Market/ HTML5 / Google Analytics / Google Fusion table

Blog ในครั้งนี้จะขอเจาะในเรื่องของ Android กับ Android Market เป็นหลักน่ะคับ ตามที่ Blog นี้ถูกตั้งขึ้นมาเพื่อแนะนำนวัตกรรมในส่วนของ Android (พี่อ้อ เสื้อเขียวตัวจริงน่ารักดีคับ )

Morning Session – Android Market

โดยช่วงเช้าเริ่มจาก Mr Ankur Kotwal (http://goo.gl/Oido5) จาก Dev ส่วนของ Google Sydney มา กล่าวถึง สถานการณ์ของ Android ณ ตอนนี้

Opportunity

- 48% Android ครอง Market share จาก Smart phone ทั้งโลก (ใน US เอง คิดเป็น 40%)

- 150 ล้าน active device ( ปัจจุบัน อัตราการ Activated ต่อวันอยู่ที่ 550K device )

- ตลาด Tablet หลักตอนนี้กำลังเติบโตได้ดี (ผู้เขียนคิดว่าใน US น่ะ ) โดย มี 6 OEM พันธมิตร Motorola , LG, Acer, Samsung, Asus, Toshiba ที่ผลิต Tablets โดยมี Official service กับทาง Google (คือ Brand เหล่านี้จะสามารถใช้ Google service ได้ทันที เช่น Market , Gmail, Youtube ฯลฯ)

- อัตราการลงโปรแกรมจาก Market เพิ่มขึ้นเท่าตัวทุกๆเดือน จากจำนวน device ที่มากขึ้น

- Honeycomb (platform) ที่เป็น Tablet ยังคงเป็นตัวที่ทำรายได้กับ paid app สูงสุด

- อัตราส่วน platform

1.5-1.6 เหลือเพียง 2.8 %

2.2 – 2.3 เยอะที่สุด 95.8 %

3.0 ขึ้นไป ยังคงเป็นกลุ่มเล็กๆ ที่ 1.4 %

- โดยทุกๆ Brand ที่อยู่ เป็น พันธมิตรก่ะ Google จะต้องส่งมอบ Update ใน 18 เดือนแรก หลังจากการเปิดตัวและขายจริง

- และ App นั้นๆ ใน version หนึ่ง จะสามารถ run ใน version ที่สูงกว่าได้ Google จะพยายามรักษาให้ Ecosystemใหม่ กับ app รุ่นก่อนๆ เข้ากันได้

Market licensing

แล้วก็มาถึงเรื่อง Market licensing ที่ Developer ทุกๆคนรอคอย

ต้องเกริ่นก่อนว่าทำไมถึงต้องมี Market licensing

จากปัญหาที่เกิดขึ้นช่วงก่อนๆ ผู็ที่ได้ ซื้อ paid app ได้ file APKไป หรือ hacker ได้ file APKของ application ตัวนั้นๆ ไป แล้วไปรันในเครื่องอื่นๆ รวมถึงแจกจ่าย ไม่ว่าจะปล่อยฟรีแบบใจดี หรือขายกันแบบโจ่งครึ่ม ออกแนว คนใช้ไม่ได้ซื้อ คนซื้อทั้งซื้อทั้งใช้ (และอาจจะโดนล้วงแบบไม่รู้ตัว :P )

ทำให้เหล่าบรรรดาผู้พัฒนา app ตัวจริงต่างขวัญผวาไปพักใหญ่ ทาง Google เลยต้องออกนโยบายเพื่อช่วยเหลือเรื่อง pirate หรือ app เถื่อน จึงเป็น ที่มาของ Market licensing !

หลักการทำงานของมันคือ

เมื่อมีการ install app ลงบนเครื่อง Market ที่อยู่ภายในเครื่องจะเป็นตัวจัดการสิทธิที่มีของ user นั้นๆ ให้ สิทธิที่ว่านี้คือ สิทธิในการใช้งานหรือเข้าถึง app นั้นๆ

โดยข้อมูลส่วนตัวของผู้ใช้ / เจ้าของเครื่องที่ install จะไม่ได้เก็บไว้ใน app แต่

แต่ Market จะเป็นคนดึงเอา user info ของเจ้าของเครื่องนั้นๆ(ในความคิดผู้เขียนคิดว่าดึงเอามาจาก Gmail account )

เมื่อเครื่องต่อเน็ต market จะตรวจดู app ว่ามีการพ่วงระบบ Market licensing หรือไม่ ถ้ามี มันก็จะไปดึง User info  แล้วนำทั้ง 2 ข้อมูล ส่งไปที่ Licensing server เพื่อ Check ว่า user คนนี้ได้ซื้อ app จริงหรือไม่

ถ้าจริงก็ ใช้งานได้ปกติ แต่ถ้าตรวจพบว่า ไม่พบสิทธิในการใช้งาน ก็จะส่ง request ผ่านมาทาง market ให้จัดการ

ที่นี้ Scenario ต่อไปของ Google เมื่อพบการ pirate หรือ ใช้ของเถื่อน

จะแบ่งเป็น ให้ Block การใช้งานเลยก็ได้ หรือ ปล่อยให้ user เล่นไปสักหน่อย แล้วค่อยขึ้น error เตือนเพื่อให้ user ซื้อของจริง (Engineer ค่อนข้างแนะนำให้ใช้แบบหลัง) ซึ่ง Developer จะสามารถไป set action เองได้ โดย config ใน app และ Market licensing ของ app อีกที

การที่ปล่อยให้ใช้ไปก่อนแล้วค่อยซื้อ เป็นการทำให้ user ไม่หนีจาก app นั้นไปเลย ซึ่งถา user ถูกใจ app จริงๆก็สามารถทำการซื้อได้ภายหลัง

นอกเหนือจาก Market licensing ทาง Engineer ได้แนะนำมาอีกว่า ให้ improve code เพื่อป้องกันการ re-engineering หรือ decompile จากเหล่านักเคะเเกะเกาทั้งหลาย ดังนี้

Code obfuscation

เป็นการทำให้ code มันพันๆกัน แบบเกะและอ่าน ได้ยากเวลา decompile เช่นชื่อ function SaveDataToDatabase() => ABC() ซึ่งคนแกะจะแปลได้ยากว่า function นั้นทำอะไร แต่ก็กันได้ในระดับหนึ่ง โดยทาง Google แนะนำ Proguard

Modify LVL code

บางครั้งการ rename function อาจจะไม่พอ ตัวเลือกที่เพิ่มขึ้นมาคือการ Modify code ในขั้น implement เลย ซึ่ง ทาง Engineer เขาแนะนำมาว่า “Make Unique” หรือทำให้ code เราเป็นเอกลักษณ์พิเศษ อ่านได้คนเดียวอะไรประมาณนั้น (แม้มันจะขัดกับ หลัก Software Engineer ก็ตาม)

Temper Resistant

สืบเนื่องจาก เวลาเรา publish app เข้า Market เราต้อง Sign Key ของเราเข้าไปด้วย (เหมือนทำลายนํ้าให้programเราเพื่อแสดงความเป็นเจ้าของ) ทีนี้ถ้าเกิด hacker ได้ key เราไปแล้วเอาไป publish แบบไม่ได้อนุญาติ เราจะเสี่ยงในการเสียง ชื่อเสียง หรือเสียประวัติได้ถ้า app นั้นไม่ดี หรือไปสร้างปัญหาให้ user ทางเลือกคือ Check key ตอน run time และเก็บ key แยกกันกระจายไปยัง code ส่วนต่างๆ และใน XML (ผู้เขียนยอมรับว่า นึกภาพไม่ออกจริงๆ ==)

Tip to Success

การทำ app ให้ประสบความสำเร็จใน Market ได้นั้นต้องอาศัยปัจจัยหลายๆอย่างเข้าช่วย

  • Market seller option – ตอนนี้ developer ไทยยังขายผ่าน Market ไม่ได้น่ะคับ ซึ่งทาง Google กำลังพิจารณาข้อกฎหมาย + นโยบายธนาคาร บ้านเราอยู่ (แต่ผู้ใช้งานในไทยซื้อ app ได้ล่ะคับ)
  • Payment option
    1. In-app billing ซึ้อ content ใน app
    2. Carrier billing ซื้อเท่าไหร่ จ่ายปลายเดือนพร้อมบิลโทรศัทพ์
    3. Subscription billing คล้ายๆการ ตอบรับ รับข่าวสารเป้นเวลา 1 เดือน แนวๆ ตอบรับหนังสือพิมพ์หรือข่าวผ่าน SMS
  • Target application - ต้องมองหลายๆมุม ทั้ง
    1. Capability – พวก Based on Platform อะไร ต้อง support screen size ไหน density เท่าไหร่ รองรับกับ Hardware หรือ Software ยังไง
    2. Country + Carrier สั้นๆคับคือ ต้องศึกษา Rule กับ Regulation ดีๆ
    3. Device  เป็นการเลือกตลาดที่จะลงไปเล่น ให้เครื่องไหนสามารถใช้ app ได้ ยิ่งกว้างกว่ายิ่งดี (แต่ Developerจะเหนื่อย ==”)
    4. Launch supported for multiple APKs เคสนี้เช่น เกม Graphic สูงๆ ที่กิน spec เยอะ แต่อยากให้รุ่น เล็กๆ ได้เล่นบ้างแบบไม่ต้องให้ Graphic วิ่งสูงๆ ก้ทำ APK แยกออกมา
    5. Nice landing page หรือที่เรียกว่า มีหน้าบ้านที่ดี ผู้ใช้งานจะประทับใจตั้งแต่แรกเห้นถ้าเราทำเว็บให้ app สวยๆ ดีๆ เป็นที่น่าสนใจ

Afternoon Session - Honeycomb overview

ช่วงบ่ายเป็นการแนะนำ Ecosystem กับ development ของ Honeycomb เป็นซะส่วนใหญ่ โดยผู้เขียนคิดว่าคนที่ตามเรื่องราว Android มาตลอดตั้งแต่ต้นปีก็คงจะรู้ข้อมูลที่ Google เขาเอามาบอกวันนี้ แต่ผู้เขียนก็จะเกริ่นคร่าวๆทบทวนอีกทีคับ

Honeycomb เป็น platform หนึ่งของ Android ที่ถูกต่อยอดพัฒนาออกมาสำหรับ Tablet ที่มีหน้าจอขนาดใหญ่กว่า smartphone ทั่วไป โดยมีหมายเลข API ตั้งแต่ 11-13 ขึ้นมา

รูปแบบ design และ look and feel จะเป็นคนล่ะแบบกับบน version ก่อนหน้า (Gingerbread) และจะมีระบบ widget ที่แตกต่างเช่นกัน ทำหน้าที่เป็นด่านหน้าของ App แสดงผลบางส่วน ก่อนที่ User จะเลือกเข้าไปดูรายละเอียดใน App นั้นอีกที

การออกแบบ App มีคำแนะนำว่าอย่าไป มองหรือ design ที่ มุมมองแนวตั้ง หรือ Portrait เท่านั้น ตัว Honeycomb รองรับการจัดหน้าจอแบบทั้งแนวตั้งและแนวนอน จึงต้องทำ App support ทั้ง 2 รูปแบบ

นอกจากนั้นก็มีการแนะนำ Feature ต่างๆ ที่ทำขึ้นพิเศษบน Honeycomb

  • Dimming taskbar (prevent popup/ alert on take bar appear when use full screen mode)
  • Notification bar
  • Action bar (transform straight forward from menu bar )
  • Re-design home screen widget

และยังแนะนำในส่วนของ APIs บางตัว

  • Fragments (Goo.gl/XZTMT)

ใช้แนวคิดคล้ายๆกับ Activity แต่ให้สามารถอยู่เป็นส่วนๆในจอใหญ่ได้ เรียกว่า Fragment โดยจัดการได้สองทาง XML, dynamic in code ใช้ Fragment manager จัดการ fragment ในหน้า

  • Loaders

ใช้จัดการข้อมูลแบบ Asynchronous เมื่อมีการเปลี่ยนแปลงของ fragment  ทั้งรับและส่ง

  • Clipboard framework

จัดการ copy & paste กับ Drag and drop

  • Hardware Acceleration

มีการปรับปรุงและพัฒนาในส่วนของ  drawable object  พวก layout และ canvas และทำให้สามารถ setting Hardware Acceleration ได้ทั้งจาก Activity , Windows และ View level

ถ้าต้องการจะเขียนOpenGL ให้เขียนใน NDK (เขียนในรูปแแบบภาษา c,c++) เรื่องของ speed ก่ะ quality ของการ render จะดีกว่า

  • Render script

เป็นอีกทางเลือกของการทำ 3D Render นอกจาก OpenGL

  • Property Animation framework (Can animate any object’s properties)
  • Multimedia (allow HTTP live streaming , plugable DRM, support voice over ip and so on)
  • Entreprise (Provide more complex encryption => more secure)
  • Compatibility library  เป็นการ add function ที่จำเป็น ให้ App version เก่าถึง 1.6 สามารถรันได้
  • New Screen size
    1. smallesWidth (res/layout-sw720dp)
    2. width(res/layout-w600dp)
    3. height(res/layout-h720dp)

หมดล่ะครับ สำหรับ android โดยส่วนตัวแล้วรู้สึกว่า ครั้งนี้ Android มาน้อยไป หรือตัวผู้เขียนอาจจะคาดหวังอะไรเยอะไป

งานนี้ นอกจาก Android แล้ว ยังมี HTML5 และ Google Analytic ที่เป็นตัวเด่นของงาน คนเข้าชมเพียบเลยคับ โดยเฉพาะ Technology ของ HTML5 ที่ ใช้ CSS Render ภาพ 3D animation นั้น ขอบอกว่า  … สุดยอดมาก! (ดูรูปข้างล่างคับ)

รายละเอียดโครงการตามนี้เลยครับ http://code.google.com/events/devfests/2011/

สุดท้ายนี้ ขอขอบคุณ Google Thailand ที่พาทีม Developer จากทั้ง Sydney , San Francisco และในประเทศใกล้เคียงใน South East Asia มาพูดในสิ่งที่เป็นที่สนใจของ Developer ไทยคับ :)

Posted in Android, Google Dev Fest | Tagged , , , , , , , | Leave a comment

เรามา Root Nexus S กันเถอะ (Thai version)

การลง Recovery และ Root Nexus S
ท่านเจ้าของ Nexus S หลายๆคนที่ได้เครื่องมาไว้ในครอบครองก็คงอยากจะลองเปลี่ยน ROM หรือ อยากเปิด Super user เพื่อจัดการเครื่องด้วยตัวเองใช่มั้ยครับ
วันนี้ผมจะมาแนะนำวิธีการลง Recovery และ วิธีการ Root เครื่องมาฝากครับ

ผมเรียนรู้จากกระทู้นี้อีกทีน่ะคับ http://forum.xda-developers.com/showthread.php?t=895545(some pictures and methods came from  http://forum.xda-developers.com/showthread.php?t=895545, very thanks to AllGamer user)

ก่อนอื่น ให้check ก่อนว่าตัวเครื่องก่อนว่ามี config ตรงตามนี้หรือไม่ โดยกด Volume up + Power เพื่อเข้า Bootloader

  • GRH78  หรือ  GRH78C (ดูได้จาก information เครื่องใน settings)
  • Bootloader v.JK1
  • Baseband v.JK8


จากนั้นให้ทำการ Download ไฟล์ที่เกี่ยวข้องมาไว้ ได้แก่

  • Android SDK 2.3  (ให้ get use driver หลัง unzip ไปไว้แล้วโดยเลือก SDK Manager.exe >  Available package > Third party Added-ons >Google Inc Added-Ons > Google USB Driver package, revision4 )
  • clockwork recovery (http://koush.tandtgaming.com/recoveries/recovery-clockwork-3.0.0.5-crespo.img)
  • SuperUSer สำหรับ Enable root  http://forum.xda-developers.com/showthread.php?t=682828 เลือก  Eclair/Froyo version

ก่อนทำ: Backup data , contact ให้หมดน่ะครับเพราะระหว่างขั้นตอนจะทำการลบข้อมูลเองโดยอัติโนมัติเมื่อ download เส็ดแล้วให้ทำตามขั้นตอนต่อไปนี้

คำเตือน : ผู้เขียนไม่รับผิดชอบกรณีใดๆทั้งสิ้นถ้าเครื่องของผู้อ่านเกิด brick หรือขัดข้องขึ้นมา อันเนื่องมาจากการทำของท่านเอง ผมได้แต่ให้คำแนะนำนะคับ

Do it as your own risk !

1. ติดตั้ง Driver

-ปิด Nexus S ก่อน

- เสียบสาย USB กับตัว Nexus S และ computer

- Boot Nexus S เข้าสู่ Bootloader Interface โดยกด Volume UP + Power button

- ลองดูหน้าจอว่า LOCK STATE – LOCKED หรือไม่ ถ้าใช่ก็ไปต่อ

- กลับมาใน computer เปิด Device Manager (or run devmgmt.msc) ผ่านทางการคลิกขวา My computer > Manage

- จากนั้น คลิกขวาตรงแล้วเลือก Update Driver Software ตรง Android 1.0

- เลือก Browse my computer for driver software

- เลือก Browse ไปยังที่ๆเราเก็บ  driver ของ Android SDK 2.3 ไว้ (..\android-sdk-windows\google-usb_driver)

- คลิก “Let me pick from a list of device drivers on my computer”

- เลือก  Android Bootloader Interface

- เมื่อ install เสร็จ จะเห็นว่า windwos จะมองเห็น bootloaderแล้ว


2.Unlock ครื่อง

-ขั้นต่อไป เปิด command prompt จากนั้นพิมพ์ CMD แล้วกด enterเข้าไปยัง directory ที่เรา download และ unzip sdk ไว้ ..\android-sdk-windows\tools

-พิมพ์ fastboot oem unlock แล้วกด enter

-จะเจอหน้าจอต่อไปนี้จากนั้นเลือก YES (ทุกอย่างในเครื่องจะโดยลบออกไป คล้ายๆ factory reset)

-ให้ volume up/down เพื่อเลื่อนเลือก พอเลือกได้ yes ให้กดปุ่ม power ด้านขวาเครื่องจะพบกับข้อความราวๆนี้เมื่อทำเสร็จ

… OKAY [435.433s]finished.

total time: 435.433s

- กลับมาหน้าจอ fastboot จะเจอว่า LOCK STATE – UNLOCKED (สาย USB ยังเสียบอยู่น่ะครับ)
3. install recovery

- เอา recovery ที่ download มา(clockwork recovery recovery-clockwork-3.0.0.5-crespo.img) rename เป็น  recovery.img แล้ว copy ไปวางที่ ..\android-sdk-windows\tools directory

- ณ CMD ( ..\android-sdk-windows\tools)พิมพ์ fastboot flash recovery recovery.img แล้วกด Enter

- ถ้าwrite เสร็จจะพบข้อความต่อไปนี้ (เวลาที่ใช้อาจะไม่ตรงกัน ขอให้ มี OKAY พอแล้วครับ)

sending ‘recovery’ (3980 KB)… OKAY [  0.621s]

writing ‘recovery’… OKAY [  0.511s]finished. total time: 1.132s

4.Install superuser

- จากนั้น Reboot เครื่อง

- เมื่อเครื่องบูทเสร็จ ให้ Mount the USB storage

- ลาก ไฟล์ superuser ที่ download มา (su-version#-signed.zip) ลงใน root ของ SD card

- จากนั้นปิดเครื่อง

- Boot Nexus S เข้าสู่ Bootloader Interface โดยกด Volume UP + Power button

- เลือก Recovery(ข้อควรรู้ ทุกครั้งที่เข้า recovery จะต้องทำการพิมพ์ fastboot เพื่อ write recovery ทุกครั้ง เพราะเป็นผลมาจากระบบป้องกันใน 2.3)

-จะเจอหน้านี้

-เลือก install ZIP from sdcard (power button to apply)

-เลือก choose zip from sdcard (power button to apply)

-เลือก su-version#-signed.zip ที่ download มาไว้ใน sd card จากนั้นนกด ปุ่ม power

-เลือก yes – install su-version#-signed.zip

-เลือก confirm รอจนกว่า “Install from sdcard complete” แสดงออกมา

-เลือก go back

-เลือก reboot

-เสร็จล่ะคร๊าบบบบบ

Posted in Android, Experiment | Tagged , , , , , , | Leave a comment

Froyo 2.2 On HTC Hero Review

Bilingual Review – FroydVillain 1.1.9 for HTC GSM Hero
บทรีวิว สองภาษา – FroydVillain 1.1.9 สำหรับ HTC GSM Hero

Continue reading

Posted in Android, Experiment | Tagged , , , , , , , | 1 Comment

เมื่อ Huawei มาจับ Android กับเขาบ้างอะไรบ้าง

นานมาแล้ว ที่เรารู้จัก Huawei ในนามผู้ผลิต อุปกรณ์และชิ้นส่วนเกี่ยวกับ ระบบเน็ตเวิร์ค และ มือถือ แต่ในตอนนี้ Huawei ได้ซุ่ม ทำการพัฒนา และ วางแผนปล่อย device ที่ใช้ Android เป็นระบบหลัก โดยบุกตลาดแดนโรตี โดยปล่อยออกมา 2 รุ่น (และกำลังซุ่มทำอีก 4 รุ่น โอ้ววว จะซุ่มอะไรหนักหนานิ)
โดย ยังไม่มี spec ที่แน่นอนในตอนนี้ แต่ที่แน่ๆคือ ใช้ chipset ของ Qualcomm โดยที่ทั้ง huawei และ Qualcom ได้ตกลงเป็นคู่ขาทางธุรกิจกัน!!! ทาง Qualcomm  เลยผลิต chipset ให้ huawei เป็นสินนํ้าใจ

Device ที่ว่านี้คือ U8300 and U8500

Continue reading

Posted in Android, Device | Tagged , , , , , | Leave a comment

อัตราส่วนของ ผู้ใช้ platform Android ในปัจจุบัน

เช่นเคยครับ ทาง Google ได้แสดง report ของ อัตราส่วนของ Android ที่คนใช้ในปัจจุบัน

โดยนับจาก การ access เข้ามาทาง Market ที่หลายๆคนชอบเขาไปหาของใหม่เล่นกันแหละคับ

ผลออกมาคือ

Continue reading

Posted in Android | Tagged , , , , , , | 2 Comments

Taxi-To-Go now on Android Market !!!

Everything about taxi in your hand, Here is “Taxi-To-Go”

Now available on Android Market

Target platform: 1.5 or higher

Continue reading

Posted in Android | Tagged , , , , , , , , , | Leave a comment