1 / 20

การพัฒนาซอฟต์แวร์บน

การพัฒนาซอฟต์แวร์บน. Android. โดย ทัศไนย เหมาะจิระกุล. เริ่มต้นรู้จักกับ Android ……….

makya
Download Presentation

การพัฒนาซอฟต์แวร์บน

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. การพัฒนาซอฟต์แวร์บน Android โดย ทัศไนย เหมาะจิระกุล

  2. เริ่มต้นรู้จักกับ Android………. Android คือแพลตฟอร์มใหม่สำหรับโทรศัพท์มือถือและอุปกรณ์พกพา ซึ่งประกอบด้วยระบบปฏิบัติการ ไลบรารี เฟรมเวิร์ค และซอฟต์แวร์อื่นๆ ที่จำเป็นในการพัฒนา มันเทียบเท่ากับ Windows Mobile, Palm OS, Symbianโดยจับตลาดมือถือรุ่นใหม่ๆ ความสามารถสูงๆ (ซึ่งเกิดจากการกระตุ้นตลาดของ iPhone) ถึงจะเป็นแพลตฟอร์มใหม่ซิงๆ แต่ Android ก็ใช้องค์ประกอบที่เป็นโอเพนซอร์สหลายอย่าง เช่น Linux Kernel, SSL, OpenGL, FreeType, SQLite, WebKitและเขียนไลบรารี+เฟรมเวิร์คของตัวเองเพิ่มเติม ซึ่งทั้งหมดจะโอเพนซอร์ส (ใช้ Apache License)

  3. ภาษาที่ใช้พัฒนา ภาษาที่ใช้พัฒนาเป็นจาวา แต่เอามาเฉพาะภาษา (Java programming language) ไม่ได้ใช้แพลตฟอร์มของซันเลย โดย Android มีรันไทม์ของตัวเองชื่อว่า Dalvikซึ่งแทนที่เราจะคอมไพล์เป็นไบต์โค้ด ก็ใช้ฟอร์แมต Dalvik Executable (.dex) แทน การสร้าง GUI ใช้เป็นไฟล์ XML (สไตล์เดียวกับ XAML หรือ XUL) ไลบรารีที่มีให้เรียกก็เป็นของ Android ทั้งหมด (import android.*) ไม่เกี่ยวกับ J2ME เลย อารมณ์ว่ายืม syntax ของจาวามาใช้เฉยๆ แต่อย่างอื่นกูเกิลทำเองเกือบหมด เครื่องมือพัฒนา Android ก็ไม่ใช่อื่นไกล มีปลั๊กอินสำหรับ Eclipse ตามสมัยนิยม (ชื่อ Android Development Tools - ADT) ใช้ Apache Ant สำหรับ build สำหรับส่วนของ SDK นั้นก็ให้เครื่องมือมาครบ ทั้งตัวดีบั๊กสารพัดชนิด และ emulator ของ GPhoneสำหรับรันแอพพลิเคชันทดสอบ (เพราะตอนนี้ยังไม่มีตังซื้อเครื่องมาลองคับ)

  4. ทำไมถึงต้องเป็น Android ตอบง่ายๆ เลยว่า "กูเกิล" ครับ ปัจจุบันนี้ด้วยอิทธิพลทั้งด้านเทคโนโลยีและการเงินของกูเกิลนั้นน่ากลัวมากอยู่แล้ว กูเกิลตัดสินใจใช้ยุทธศาสตร์การสร้างสภาวะแวดล้อม (ecosystem) ของ Gphoneขึ้นมาแทนการสร้างอุปกรณ์ Gphoneของตัวเอง ยกหน้าที่การพัฒนาฮาร์ดแวร์ให้กับพันธมิตร และหน้าที่ในการพัฒนาแอพพลิเคชันให้กับนักพัฒนาภายนอก โดยเปิด API ของตัวระบบอย่างเต็มที่ ตามโมเดลโอเพนซอร์ส

  5. พันธมิตรและ นปช.(แนวร่วมประยุกต์ใช้)Android พันธมิตร 34 รายของกูเกิลรวมตัวกันชื่อ Open Handset Alliance เรามาดูกันว่ากูเกิลชวนใครมาได้บ้าง

  6. ผู้ผลิตตัวเครื่องมือถือผู้ผลิตตัวเครื่องมือถือ HTC - ผู้ผลิตเครื่องให้ O2 และเจ้าของแบรนด์Dopod LG - พวกนี้คงไม่ต้องอธิบาย Motorola Samsung จะเห็นว่ากูเกิลได้ผู้ผลิตมือถือรายใหญ่มา คือ HTC , Motorola , Samsung และ LG ขาดแต่ Nokia กับ Sony Ericsson เท่านั้น ทั้งสี่รายนี้มีส่วนแบ่งตลาดปัจจุบันรวมกัน 34.8% ของตลาดโลก (ตัวเลข Q207 จาก Gartner)ก็พอสู้กับ Nokia ซึ่งมีส่วนแบ่งตลาดอยู่ 36.9% (Nokia เป็นผู้สนับสนุนหลักของแพลตฟอร์ม Symbianแต่ก็แอบไปทำ Maemoเป็นทางเลือกไว้แล้ว ปัจจุบัน Maemoถูกใช้ใน Internet Tablet อย่างพวก N770, N800 ซึ่งคาดว่าจะเป็นฐานสำคัญของมือถือ Nokia ในอนาคต)

  7. ผู้ผลิตชิ้นส่วนฮาร์ดแวร์ผู้ผลิตชิ้นส่วนฮาร์ดแวร์ Audience - ผลิตชิปเสียง Broadcom - ชิปเน็ตเวิร์คที่เราใช้กันทุกวันนี้ Intel - ไม่ต้องอธิบาย Marvell - ชิปเซ็ตสารพัดชนิด Nvidia - ไม่ต้องอธิบาย แต่เสริมนิดว่าเดี๋ยวนี้มือถือมีการ์ด 3D กันแล้วนะ Qualcomm - ชิปเน็ตเวิร์คสารพัดชนิด SiRF - ทำ GPS Synaptics - clickwheelใน iPod ไง (รวมถึง ZEN ด้วย) Texas Instrument - เจ้าพ่อใหญ่ ไม่ต้องอธิบายอีกเหมือนกัน ตามรายชื่อนี้มีพี่เบิ้มมากันหมด ดังนั้นรับประกันได้ว่า Android จะไม่มีปัญหาขาดแคลนไดรเวอร์อุปกรณ์แน่นอน

  8. ผู้ให้บริการเครือข่ายผู้ให้บริการเครือข่าย China Mobile - ผู้ให้บริการมือถือที่มีลูกค้ามากที่สุดในโลก แค่จีนประเทศเดียวซัดไปแล้ว 350 ล้านเลขหมาย KDDI - เบอร์สองของญี่ปุ่น NTT DoCoMo - เบอร์หนึ่งของญี่ปุ่น Sprint Nextel - เบอร์สามของสหรัฐ T-Mobile - เบอร์หนึ่งของเยอรมนีและหลายประเทศในยุโรป รวมถึงเป็นเบอร์สี่ของสหรัฐ ถ้ารวมทั้งโลกอยู่อันดับหก Telecom Italia - เบอร์หนึ่งของอิตาลี Telefónica-เบอร์สามของโลก มาจากสเปน ปัจจุบันซื้อ O2 ไปครอบครองเรียบร้อยแล้ว รายใหญ่ที่ขาดไปก็มีแค่ Vodafone, Orange, AT&T เท่านั้น ที่น่าสังเกตคือโอเปอเรเตอร์จากญี่ปุ่นมาถึงสองราย แถมเป็นสองรายใหญ่ และรูปแบบการผลิตเครื่องมือถือในญี่ปุ่นคือโอเปอเรเตอร์เป็นคนกำหนดสเปกเครื่อง

  9. ผู้สนับสนุนอื่นๆ นอกจากสามหมวดหลักแล้วก็ยังมีบริษัทซอฟต์แวร์อื่นๆ ที่พอคุ้นหน่อยก็เช่น eBay และ Wind River ตรงนี้คงไม่ต้องลงรายละเอียดนะครับ บริษัทพวกนี้คงไม่ผลักดัน Android สุดตัวชนิดร่วมเป็นร่วมตายกับกูเกิล หลายค่ายอย่าง Motorola ก็มีแพลตฟอร์มลินุกซ์เป็นของตัวเองเอาไว้กันเหนียว แต่ด้วยชื่อชั้นของบริษัทที่ยกมา ก็น่าจะพอเป็นปัจจัยหนุนให้เรามั่นใจว่า Android จะประสบความสำเร็จได้บ้าง ที่เหลือก็ขึ้นกับฝีมือของกูเกิลแล้ว นอกจากพันธมิตรระดับใหญ่แล้ว อีกสาเหตุหนึ่งที่ผมคิดว่า Android ได้เปรียบก็คือการเป็นแพลตฟอร์มรุ่นใหม่ที่มารอรับการเปลี่ยนยุคอีกครั้งของมือถือ (หลัง iPhone) ซึ่งมือถือรุ่นใหม่ๆ จะมีลักษณะเป็น personal internet device มากขึ้น หน้าจอใหญ่ขึ้น มีระบบอินพุตดีขึ้น ความจุมากขึ้น ฯลฯ ตรงนี้จะเหนือกว่าแพลตฟอร์มเก่าๆ อย่าง Symbian, Palm OS และ Windows Mobile (ที่พอฟัดเหวี่ยงได้ก็คือ OS X ของ iPhoneซึ่งผมก็คิดว่าแอปเปิลจะยังใช้ระบบทำเองคนเดียวต่อไปอีกนาน)

  10. เครื่องมือสำหรับพัฒนาซอฟต์แวร์บนAndroidเครื่องมือสำหรับพัฒนาซอฟต์แวร์บนAndroid 1.Java Runtime Engine : JRE จะเป็นชุดของโปรแกรมที่ไว้ใช้สำหรับรันจาวา 2. Eclipse IDE for Java Developers เป็น IDE ที่ใช้ในการเขียนโปรแกรม และต้องเป็น version 3.3 ขึ้นไป 3. Android SDK คือ Software Developer Kit ของ Android เค้า 4. ADT Plug-in เป็น ปลั๊กอินของ Android Developers Tools

  11. ขั้นตอนการเซตค่าโปรแกรมขั้นตอนการเซตค่าโปรแกรม หลังจากลง JRE และ Eclipse เรียบร้อยแล้ว ก็แตกไฟล์ Android SDK ตามปกติวางไว้ Folder ไหนก็ได้แล้วแต่เราครับ จากนั้นก็ติดตั้ง ADT Plug-in โดยไฟล์ที่จะนำมาใช้นั้นต้องเป็นไฟล์ .ZIP หรือ .RAR นะครับ โดยการ เปิด eclipse ไปที่ help > install new software แล้วก็เลือก Add > Archive แล้วก็ Browse ไปที่ Zip file ของ Pluginมันก็จะขึ้นรายละเอียดขึ้นมาแล้วก็ Finish ได้เลยครับ คราวนี้ Eclipse ก็จะมี Plugin ADT แล้ว ลองไปที่ Menu File > New > Other ดูก็จะเห็น Android โผล่ขึ้นมาแล้วครับ

  12. ขั้นตอนการเซตค่าโปรแกรมขั้นตอนการเซตค่าโปรแกรม ก่อนที่จะดำเนินการอะไรต่อไป กรุณาเปลี่ยน Regional เป็น "English" ก่อนนะครับ หลังจากไหนไปที่ Windows > Preferences > Android ตรง SDK Location ให้ Browse ไปที่ folder ของ SDK ที่เราได้แตก Zip ไว้ครับ หลังจากนั้นกด Apply หรือ OK ก็ได้

  13. ขั้นตอนการเซตค่าโปรแกรมขั้นตอนการเซตค่าโปรแกรม ขั้นตอนต่อไปเป็นการ Set Android AVD Manager ซึ่งก็คือ Emulator ที่เราจะใช้ในการ Run Android App นะเองครับไปที่ Windows > Android AVD Manager แล้ว Click จะปรากฏหน้า AVD Manager ขึ้นมาใส่ค่าต่าง ๆ ดังนี้- Name ใส่ชื่อ AVD- Target ให้เลือก API ที่เราจะ Run ในที่นี้ผมเลือกเป็น Google APIs- SD Card เหมือนเป็นการจำลอง Memory Card สามารถใส่ได้ตั้งแต่ 128k - 64M อย่าลืมใส่ตัว k กับ M ต่อท้ายตัวเลขด้วยนะครับ- Skin ก็เป็นการเลือก Skin ของ Emulator ชอบแบบไหนก็เลือกแบบนั้นหลังจากนั้นกดปุ่ม Create AVD ก็เป็นการเสร็จสิ้นการ Setup AVD ครับหลังจากนี้คุณก็พร้อมแล้วที่จะเขียน App เพื่อ Run ใน Emulator ได้แล้วครับ

  14. เริ่มต้นเขียนโปรแกรม เราจะลอง App ง่ายๆ บน Android กัน ด้วยโปรแกรมพื้นฐานสำหรับทุกการเขียนโปรแกรมอย่าง HelloAndroid

  15. เริ่มต้นด้วยการสร้างโปรเจคAndroid ในEclipse เปิดโปรแกรม Eclipse ขึ้นมา จากนั้นเลือกที่ File > New > Project ในหน้าต่าง New Project ภายใต้ Android เลือก Andrild project ดังรูป หลังจากนั้นให้กด Next

  16. สร้างโปรเจคAndroid (ต่อ) เมื่อเสร็จจากขั้นตอนแรกแล้วจะได้ดังรูปนี้ โดยกรอกข้อมูลต่อไปนี้ - Project Name: HelloAndroid - Build Target : Android 1.6 - Application Name: Hello, Android - Package Name: com.example.helloandroid - Create Activity: HelloAndroid - Min SDK Version: 4 จากนั้นคลิกที่ Finish คำอธิบายของแต่ละฟิลด์: - Project Name : นี้คือชื่อโปรเจกของ Eclipse - ชื่อของไดเรกทอรีที่จะมีไฟล์โปรเจกอยู่ - Build Target : ได้เลือกใช้ Android 1.6 platform ซึ่งหมายความว่าแอปพลิเคชันของเราจะถูก compiled กับ Android 1.6 platform library - Application Name : นี้เป็นชื่อสำหรับแอปพลิเคชันของเรา - ชื่อที่จะปรากฏในอุปกรณ์ Android - Package name : นี้คือ namespace แพคเกจ (ตามกฎเดียวกันกับสำหรับแพคเกจในภาษา Java) ถ้าจะเปรียบเทียบให้ง่ายๆก็เหมือนเป็นโฟลเดอร์ที่ทำหน้าที่จัดเก็บ Class ต่างๆ ไว้ให้เป็นหมวดหมู่ - Create Activity : นี้คือชื่อสำหรับ class stub ที่จะสร้างโดยปลั๊กอินนี้ ซึ่งจะเป็น subclass ของ Android's Activity class - Min SDK Version : ค่านี้ระบุ API ระดับต่ำสุดที่จำเป็นสำหรับแอปพลิเคชันของเรา

  17. สร้างโปรเจคAndroid (ต่อ) ตอนนี้โปรเจกAndroid ของเราพร้อมแล้ว เราจะมองเห็นใน Package Explorer อยู่ด้านซ้าย คลิกเปิดไฟล์ HelloAndroid.java (HlloAndroid> src > com.example.helloandroid) ซึ่งจะมีลักษณะเช่นนี้ package com.example.helloandroid;import android.app.Activity;import android.os.Bundle;public class HelloAndroid extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);}}

  18. สร้างโปรเจคAndroid(จบ) หลังจากสร้างโปรเจกเรียบร้อยแล้ว ขึ้นตอนต่อมาคือการรันแอปพลิเคชัน 1. คลิกเลือกที่ Run > Run 2. เลือก "Android Application" หลังจากนั้นโปรแกรมจะทำการเปิด Emulator ของ Android SDK 1.6 ที่เราเคยสร้างไว้ขึ้นมาอย่างอัตโนมัติ กดที่ Manu เพื่อปลดล็อกเครื่อง ซึ่งจะเห็น HelloAndroidดังรูป

  19. แนวทางการพัฒนาต่อ 1. Storage 2. Network 3. Multimedia 4. Global positioning system (GPS) 5. Phone services

  20. สรุป จากการศึกษาการเขียนแอปพลีเคชัน บน Android ครั้งนี้ อาจจะดูสับสนในช่วงแรกๆ เพราะมีโครงสร้างที่แตกต่างจากการเรียนโปรแกรมบน Nokia และ Blackberry ที่มีรูปแบบง่ายกว่า แต่ด้วยรูปแบบที่แบ่งซอสไฟล์ออกเป็นส่วนๆ ทำให้สามารถ นำไปต่อยอดเป็นโปรแกรมได้หลากหลายรูปแบบ ที่สำคัญเป็นโอเพนซอสด้วย(สำคัญมากเลย) ถึงแม้เราจะไม่มีอะไรการันตีว่าถือที่ใช้ Android จะขึ้นมาเป็นที่ 1 หรือไม่ในอนาคต แต่ด้วยชื่อชั้นขนาดนี้ ก็รับประกันว่าเร็วๆนี้เราจะเห็นมือถือ Android ในท้องตลาด (กระแสหลัก) แน่นอน ทัศไนย เหมาะจิระกุล

More Related